From owner-p4-projects@FreeBSD.ORG Wed Jul 16 22:59:03 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 052BD37B404; Wed, 16 Jul 2003 22:59:03 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A57EC37B401 for ; Wed, 16 Jul 2003 22:59:02 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7253E43F85 for ; Wed, 16 Jul 2003 22:59:01 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h6H5x10U054846 for ; Wed, 16 Jul 2003 22:59:01 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h6H5x0dP054843 for perforce@freebsd.org; Wed, 16 Jul 2003 22:59:00 -0700 (PDT) Date: Wed, 16 Jul 2003 22:59:00 -0700 (PDT) Message-Id: <200307170559.h6H5x0dP054843@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 34605 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 17 Jul 2003 05:59:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=34605 Change 34605 by marcel@marcel_nfs on 2003/07/16 22:58:55 IFC @34603 Affected files ... .. //depot/projects/uart/boot/efi/libefi/arch/ia64/ldscript.ia64#2 integrate .. //depot/projects/uart/boot/ia64/skiload/Makefile#2 integrate .. //depot/projects/uart/boot/ia64/skiload/ldscript.ia64#2 integrate .. //depot/projects/uart/boot/ia64/skiload/main.c#2 integrate .. //depot/projects/uart/boot/ia64/skiload/start.S#1 branch .. //depot/projects/uart/conf/NOTES#3 integrate .. //depot/projects/uart/conf/files#7 integrate .. //depot/projects/uart/conf/options#3 integrate .. //depot/projects/uart/contrib/dev/acpica/acfreebsd.h#3 integrate .. //depot/projects/uart/dev/acpica/acpi_ec.c#3 integrate .. //depot/projects/uart/dev/acpica/acpivar.h#2 integrate .. //depot/projects/uart/dev/bge/if_bge.c#3 integrate .. //depot/projects/uart/dev/bge/if_bgereg.h#2 integrate .. //depot/projects/uart/dev/en/midway.c#4 integrate .. //depot/projects/uart/dev/mii/brgphy.c#2 integrate .. //depot/projects/uart/dev/mii/miidevs#2 integrate .. //depot/projects/uart/dev/patm/genrtab/Makefile#1 branch .. //depot/projects/uart/dev/patm/genrtab/genrtab.c#1 branch .. //depot/projects/uart/dev/patm/idt77252reg.h#1 branch .. //depot/projects/uart/dev/patm/if_patm.c#1 branch .. //depot/projects/uart/dev/patm/if_patm_attach.c#1 branch .. //depot/projects/uart/dev/patm/if_patm_intr.c#1 branch .. //depot/projects/uart/dev/patm/if_patm_ioctl.c#1 branch .. //depot/projects/uart/dev/patm/if_patm_rtables.c#1 branch .. //depot/projects/uart/dev/patm/if_patm_rx.c#1 branch .. //depot/projects/uart/dev/patm/if_patm_tx.c#1 branch .. //depot/projects/uart/dev/patm/if_patmvar.h#1 branch .. //depot/projects/uart/dev/pccard/pccarddevs#3 integrate .. //depot/projects/uart/dev/pccard/pccarddevs.h#3 integrate .. //depot/projects/uart/dev/usb/ehci.c#2 integrate .. //depot/projects/uart/dev/usb/ehci_pci.c#3 integrate .. //depot/projects/uart/dev/usb/if_aue.c#3 integrate .. //depot/projects/uart/dev/usb/if_axe.c#3 integrate .. //depot/projects/uart/dev/usb/if_cue.c#3 integrate .. //depot/projects/uart/dev/usb/if_kue.c#2 integrate .. //depot/projects/uart/dev/usb/if_rue.c#2 integrate .. //depot/projects/uart/dev/usb/ohci.c#4 integrate .. //depot/projects/uart/dev/usb/ohcireg.h#3 integrate .. //depot/projects/uart/dev/usb/ohcivar.h#2 integrate .. //depot/projects/uart/dev/usb/udbp.c#3 integrate .. //depot/projects/uart/dev/usb/uhci.c#4 integrate .. //depot/projects/uart/dev/usb/uhcivar.h#3 integrate .. //depot/projects/uart/dev/usb/usb_mem.c#1 branch .. //depot/projects/uart/dev/usb/usb_mem.h#3 integrate .. //depot/projects/uart/dev/usb/usb_port.h#4 integrate .. //depot/projects/uart/dev/usb/usbdi.c#4 integrate .. //depot/projects/uart/dev/usb/usbdivar.h#4 integrate .. //depot/projects/uart/dev/wi/if_wi_pccard.c#4 integrate .. //depot/projects/uart/kern/kern_acct.c#2 integrate .. //depot/projects/uart/kern/kern_lock.c#3 integrate .. //depot/projects/uart/kern/kern_mtxpool.c#3 integrate .. //depot/projects/uart/kern/kern_thread.c#5 integrate .. //depot/projects/uart/kern/subr_mbpool.c#1 branch .. //depot/projects/uart/modules/Makefile#2 integrate .. //depot/projects/uart/modules/acpi/Makefile#4 integrate .. //depot/projects/uart/modules/libmbpool/Makefile#1 branch .. //depot/projects/uart/modules/patm/Makefile#1 branch .. //depot/projects/uart/modules/usb/Makefile#2 integrate .. //depot/projects/uart/net/if_atm.h#2 integrate .. //depot/projects/uart/net/if_atmsubr.c#2 integrate .. //depot/projects/uart/netgraph/atm/ng_atm.c#3 integrate .. //depot/projects/uart/netgraph/bluetooth/drivers/ubt/ng_ubt.c#2 integrate .. //depot/projects/uart/netinet/ip_fw.h#3 integrate .. //depot/projects/uart/netinet/ip_fw2.c#5 integrate .. //depot/projects/uart/netinet/tcp_input.c#2 integrate .. //depot/projects/uart/netinet/tcp_seq.h#2 integrate .. //depot/projects/uart/netinet/tcp_timer.c#2 integrate .. //depot/projects/uart/netinet/tcp_var.h#2 integrate .. //depot/projects/uart/netnatm/natm.c#2 integrate .. //depot/projects/uart/sparc64/include/asmacros.h#2 integrate .. //depot/projects/uart/sparc64/include/elf.h#2 integrate .. //depot/projects/uart/sparc64/include/intr_machdep.h#2 integrate .. //depot/projects/uart/sparc64/sparc64/exception.S#2 integrate .. //depot/projects/uart/sparc64/sparc64/genassym.c#2 integrate .. //depot/projects/uart/sparc64/sparc64/interrupt.S#2 integrate .. //depot/projects/uart/sparc64/sparc64/intr_machdep.c#2 integrate .. //depot/projects/uart/sys/kernel.h#3 integrate .. //depot/projects/uart/sys/mbpool.h#1 branch .. //depot/projects/uart/sys/mutex.h#3 integrate Differences ... ==== //depot/projects/uart/boot/efi/libefi/arch/ia64/ldscript.ia64#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/boot/efi/libefi/arch/ia64/ldscript.ia64,v 1.6 2002/04/06 03:39:22 peter Exp $ */ +/* $FreeBSD: src/sys/boot/efi/libefi/arch/ia64/ldscript.ia64,v 1.7 2003/07/17 00:32:08 marcel Exp $ */ OUTPUT_FORMAT("elf64-ia64-little", "elf64-ia64-little", "elf64-ia64-little") OUTPUT_ARCH(ia64) ENTRY(_start_plabel) @@ -7,74 +7,67 @@ /* Read-only sections, merged into text segment: */ . = 0; ImageBase = .; - . += 4096; - .text : - { - *(.text) - *(.stub) - /* .gnu.warning sections are handled specially by elf32.em. */ + . = SIZEOF_HEADERS; + . = ALIGN(4096); + .text : { + *(.text .stub .text.* .gnu.linkonce.t.*) + /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) - *(.gnu.linkonce.t*) *(.plt) - } + } =0x00300000010070000002000001000400 . = ALIGN(4096); - .hash : { *(.hash) } - . = ALIGN(4096); - .data : - { - *(.rodata*) + .data : { + *(.rodata .rodata.* .gnu.linkonce.r.*) + *(.rodata1) + *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) + *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) + *(.opd) + *(.IA_64.unwind_info* .gnu.linkonce.ia64unwi.*) + *(.IA_64.unwind* .gnu.linkonce.ia64unw.*) __start_set_Xcommand_set = .; *(set_Xcommand_set) __stop_set_Xcommand_set = .; - *(.ctors) - *(.data) + *(.data .data.* .gnu.linkonce.d.*) *(.data1) - *(.gnu.linkonce.d*) *(.plabel) - *(.IA_64.unwind) - *(.IA_64.unwind_info) - *(.bss) *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) } . = ALIGN(4096); __gp = .; - .sdata : - { - *(.got.plt) - *(.got) + .sdata : { + *(.got.plt .got) *(.IA_64.pltoff) - *(.sdata) - *(.sbss) + *(.sdata .sdata.* .gnu.linkonce.s.*) + *(dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) *(.scommon) } . = ALIGN(4096); - .dynamic : { *(.dynamic) } + .dynamic : { *(.dynamic) } . = ALIGN(4096); - .rela : - { - *(.rela.text) - *(.rela.gnu.linkonce.t*) - *(.rela.set.*) - *(.rela.sdata) - *(.rela.data) - *(.rela.gnu.linkonce.d*) + .rela : { + *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) + *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) + *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.got) - *(.rela.stab) - *(.rela.ctors) + *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) + *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) + *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) + *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) + *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) + *(.rela.plt) + *(.rela.IA_64.pltoff) *(.relaset_*) - *(.rela.IA_64.pltoff) + *(.rela.dyn .rela.dyn.*) } . = ALIGN(4096); - .reloc : { *(.reloc) } + .reloc : { *(.reloc) } + . = ALIGN(4096); + .hash : { *(.hash) } . = ALIGN(4096); - .dynsym : { *(.dynsym) } + .dynsym : { *(.dynsym) } . = ALIGN(4096); - .dynstr : { *(.dynstr) } - .ignored : - { - *(.rela.plabel) - *(.rela.reloc) - } + .dynstr : { *(.dynstr) } } - ==== //depot/projects/uart/boot/ia64/skiload/Makefile#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/boot/ia64/skiload/Makefile,v 1.10 2003/02/26 06:18:52 obrien Exp $ +# $FreeBSD: src/sys/boot/ia64/skiload/Makefile,v 1.11 2003/07/17 01:49:59 marcel Exp $ .PATH: ${.CURDIR}/../common @@ -7,7 +7,7 @@ NEWVERSWHAT= "ia64 SKI boot" ${MACHINE_ARCH} BINDIR?= /boot -SRCS+= main.c conf.c +SRCS+= conf.c main.c start.S CFLAGS+= -ffreestanding ==== //depot/projects/uart/boot/ia64/skiload/ldscript.ia64#2 (text+ko) ==== @@ -1,135 +1,61 @@ -/* $FreeBSD: src/sys/boot/ia64/skiload/ldscript.ia64,v 1.1 2001/09/12 08:34:27 dfr Exp $ */ +/* $FreeBSD: src/sys/boot/ia64/skiload/ldscript.ia64,v 1.2 2003/07/17 01:49:59 marcel Exp $ */ OUTPUT_FORMAT("elf64-ia64-little", "elf64-ia64-little", "elf64-ia64-little") OUTPUT_ARCH(ia64) -ENTRY(__start) +ENTRY(_start) SECTIONS { /* Read-only sections, merged into text segment: */ . = 0x100000; - - .text : - { - *(.text.ivt) - . += 8192; - *(.text) - *(.stub) - /* .gnu.warning sections are handled specially by elf32.em. */ + .text : { + *(.text .stub .text.* .gnu.linkonce.t.*) + /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) - *(.gnu.linkonce.t*) - } =0x47ff041f - .interp : { *(.interp) } - .hash : { *(.hash) } - .dynsym : { *(.dynsym) } - .dynstr : { *(.dynstr) } - .gnu.version : { *(.gnu.version) } - .gnu.version_d : { *(.gnu.version_d) } - .gnu.version_r : { *(.gnu.version_r) } - .rel.text : - { *(.rel.text) *(.rel.gnu.linkonce.t*) } - .rela.text : - { *(.rela.text) *(.rela.gnu.linkonce.t*) } - .rel.data : - { *(.rel.data) *(.rel.gnu.linkonce.d*) } - .rela.data : - { *(.rela.data) *(.rela.gnu.linkonce.d*) } - .rel.rodata : - { *(.rel.rodata) *(.rel.gnu.linkonce.r*) } - .rela.rodata : - { *(.rela.rodata) *(.rela.gnu.linkonce.r*) } - .rel.got : { *(.rel.got) } - .rela.got : { *(.rela.got) } - .rel.ctors : { *(.rel.ctors) } - .rela.ctors : { *(.rela.ctors) } - .rel.dtors : { *(.rel.dtors) } - .rela.dtors : { *(.rela.dtors) } - .rel.init : { *(.rel.init) } - .rela.init : { *(.rela.init) } - .rel.fini : { *(.rel.fini) } - .rela.fini : { *(.rela.fini) } - .rel.bss : { *(.rel.bss) } - .rela.bss : { *(.rela.bss) } - .rel.plt : { *(.rel.plt) } - .rela.plt : { *(.rela.plt) } - .init : { *(.init) } =0x47ff041f - _etext = .; - PROVIDE (etext = .); - .fini : { *(.fini) } =0x47ff041f - .rodata : { *(.rodata) *(.gnu.linkonce.r*) } - .rodata1 : { *(.rodata1) } - .reginfo : { *(.reginfo) } - /* Adjust the address for the data segment. We want to adjust up to - the same address within the page on the next page up. */ - . = .; - .data : - { - *(.data) - *(.gnu.linkonce.d*) - CONSTRUCTORS + *(.plt) + } =0x00300000010070000002000001000400 + .data : { + *(.rodata .rodata.* .gnu.linkonce.r.*) + *(.rodata1) + *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) + *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) + *(.opd) + *(.IA_64.unwind_info* .gnu.linkonce.ia64unwi.*) + *(.IA_64.unwind* .gnu.linkonce.ia64unw.*) + __start_set_Xcommand_set = .; + *(set_Xcommand_set) + __stop_set_Xcommand_set = .; + *(.data .data.* .gnu.linkonce.d.*) + *(.data1) + *(.plabel) + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + *(COMMON) } - .data1 : { *(.data1) } - .ctors : - { - *(.ctors) + __gp = .; + .sdata : { + *(.got.plt .got) + *(.IA_64.pltoff) + *(.sdata .sdata.* .gnu.linkonce.s.*) + *(dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + *(.scommon) } - .dtors : - { - *(.dtors) + .dynamic : { *(.dynamic) } + .rela : { + *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) + *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) + *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) + *(.rela.got) + *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) + *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) + *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) + *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) + *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) + *(.rela.plt) + *(.rela.IA_64.pltoff) + *(.relaset_*) + *(.rela.dyn .rela.dyn.*) } - .plt : { *(.plt) } - /* gp points at .got+(1<<21) */ - __gp = ALIGN(8) + 0x200000; - .got : { *(.got.plt) *(.got) } - .dynamic : { *(.dynamic) } - /* We want the small data sections together, so single-instruction offsets - can access them all, and initialized data all before uninitialized, so - we can shorten the on-disk segment size. */ - .sdata : { *(.sdata) } - _edata = .; - PROVIDE (edata = .); - __bss_start = .; - .sbss : { *(.sbss) *(.scommon) } - .bss : - { - *(.dynbss) - *(.bss) - *(COMMON) - } - . = ALIGN(64 / 8); - _end = . ; - PROVIDE (end = .); - /* Stabs debugging sections. */ - .stab 0 : { *(.stab) } - .stabstr 0 : { *(.stabstr) } - .stab.excl 0 : { *(.stab.excl) } - .stab.exclstr 0 : { *(.stab.exclstr) } - .stab.index 0 : { *(.stab.index) } - .stab.indexstr 0 : { *(.stab.indexstr) } - .comment 0 : { *(.comment) } - /* DWARF debug sections. - Symbols in the DWARF debugging sections are relative to the beginning - of the section so we begin them at 0. */ - /* DWARF 1 */ - .debug 0 : { *(.debug) } - .line 0 : { *(.line) } - /* GNU DWARF 1 extensions */ - .debug_srcinfo 0 : { *(.debug_srcinfo) } - .debug_sfnames 0 : { *(.debug_sfnames) } - /* DWARF 1.1 and DWARF 2 */ - .debug_aranges 0 : { *(.debug_aranges) } - .debug_pubnames 0 : { *(.debug_pubnames) } - /* DWARF 2 */ - .debug_info 0 : { *(.debug_info) } - .debug_abbrev 0 : { *(.debug_abbrev) } - .debug_line 0 : { *(.debug_line) } - .debug_frame 0 : { *(.debug_frame) } - .debug_str 0 : { *(.debug_str) } - .debug_loc 0 : { *(.debug_loc) } - .debug_macinfo 0 : { *(.debug_macinfo) } - /* SGI/MIPS DWARF 2 extensions */ - .debug_weaknames 0 : { *(.debug_weaknames) } - .debug_funcnames 0 : { *(.debug_funcnames) } - .debug_typenames 0 : { *(.debug_typenames) } - .debug_varnames 0 : { *(.debug_varnames) } - /* These must appear regardless of . */ + .hash : { *(.hash) } + .dynsym : { *(.dynsym) } + .dynstr : { *(.dynstr) } } - ==== //depot/projects/uart/boot/ia64/skiload/main.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/ia64/skiload/main.c,v 1.3 2003/04/03 21:36:29 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/ia64/skiload/main.c,v 1.4 2003/07/17 01:49:59 marcel Exp $"); #include #include @@ -45,17 +45,11 @@ struct arch_switch archsw; /* MI/MD interface boundary */ void -__start(void) +ski_main(void) { - static char stack[16384] __aligned(16); static char malloc[512*1024]; int i; - __asm __volatile("movl gp=__gp;;"); - __asm __volatile("mov sp=%0" :: "r"(&stack[16384])); - __asm __volatile("bsw.1;;"); - __asm __volatile("mov ar.fpsr=%0" :: "r"(IA64_FPSR_DEFAULT)); - /* * initialise the heap as early as possible. Once this is done, * alloc() is usable. The stack is buried inside us, so this is ==== //depot/projects/uart/conf/NOTES#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1161 2003/07/07 21:19:04 wollman Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1163 2003/07/15 11:57:23 harti Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -1683,6 +1683,9 @@ # # The `fatm' device provides support for Fore PCA200E ATM PCI cards. # +# The `patm' device provides support for IDT77252 based cards like +# ProSum's ProATM-155 and ProATM-25 and IDT's evaluation boards. +# # atm device provides generic atm functions and is required for # atm devices. # NATM enables the netnatm protocol family that can be used to @@ -1699,9 +1702,12 @@ device en device fatm #Fore PCA200E device hatm #Fore/Marconi HE155/622 +device patm #IDT77252 cards (ProATM and IDT) device utopia #ATM PHY driver options NATM #native ATM +options LIBMBPOOL #needed by patm, iatm + # # Audio drivers: `pcm', `sbc', `gusc' # ==== //depot/projects/uart/conf/files#7 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.804 2003/07/14 17:43:09 njl Exp $ +# $FreeBSD: src/sys/conf/files,v 1.807 2003/07/15 22:42:36 jmg Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -539,6 +539,13 @@ dev/nge/if_nge.c optional nge dev/null/null.c standard dev/nmdm/nmdm.c optional nmdm +dev/patm/if_patm.c optional patm pci +dev/patm/if_patm_intr.c optional patm pci +dev/patm/if_patm_ioctl.c optional patm pci +dev/patm/if_patm_rx.c optional patm pci +dev/patm/if_patm_tx.c optional patm pci +dev/patm/if_patm_attach.c optional patm pci +dev/patm/if_patm_rtables.c optional patm pci dev/pccard/card_if.m standard dev/pccard/pccard.c optional pccard dev/pccard/pccard_cis.c optional pccard @@ -819,7 +826,7 @@ dev/usb/uvscom.c optional uvscom ucom dev/usb/usb.c optional usb dev/usb/usb_ethersubr.c optional usb -#dev/usb/usb_mem.c optional usb +dev/usb/usb_mem.c optional usb dev/usb/usb_quirks.c optional usb dev/usb/usb_subr.c optional usb dev/usb/usbdi.c optional usb @@ -1109,6 +1116,7 @@ kern/subr_hints.c standard kern/subr_kobj.c standard kern/subr_log.c standard +kern/subr_mbpool.c optional libmbpool kern/subr_mbuf.c standard kern/subr_mchain.c optional libmchain kern/subr_module.c standard ==== //depot/projects/uart/conf/options#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options,v 1.401 2003/07/11 17:04:37 imp Exp $ +# $FreeBSD: src/sys/conf/options,v 1.402 2003/07/15 08:59:37 harti Exp $ # # On the handling of kernel options # @@ -346,6 +346,7 @@ IPSTEALTH IPX IPXIP opt_ipx.h +LIBMBPOOL LIBMCHAIN NCP NETATALK opt_atalk.h ==== //depot/projects/uart/contrib/dev/acpica/acfreebsd.h#3 (text+ko) ==== @@ -134,6 +134,7 @@ #ifdef ACPI_DEBUG #define ACPI_DEBUG_OUTPUT /* for backward compatibility */ +#define ACPI_DISASSEMBLER #endif #ifdef _KERNEL ==== //depot/projects/uart/dev/acpica/acpi_ec.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/acpica/acpi_ec.c,v 1.32 2003/07/13 22:57:16 njl Exp $ + * $FreeBSD: src/sys/dev/acpica/acpi_ec.c,v 1.33 2003/07/15 19:24:36 njl Exp $ */ /****************************************************************************** * @@ -261,6 +261,12 @@ /* Total time in ms spent in the poll loop waiting for a response. */ #define EC_POLL_TIMEOUT 50 +#define EVENT_READY(event, status) \ + (((event) == EC_EVENT_OUTPUT_BUFFER_FULL && \ + ((status) & EC_FLAG_OUTPUT_BUFFER) != 0) || \ + ((event) == EC_EVENT_INPUT_BUFFER_EMPTY && \ + ((status) & EC_FLAG_INPUT_BUFFER) == 0)) + static __inline ACPI_STATUS EcLock(struct acpi_ec_softc *sc) { @@ -439,8 +445,7 @@ if (ACPI_FAILURE(Status)) { device_printf(dev, "can't install address space handler for %s - %s\n", acpi_name(sc->ec_handle), AcpiFormatException(Status)); - Status = AcpiRemoveGpeHandler(sc->ec_handle, sc->ec_gpebit, - &EcGpeHandler); + Status = AcpiRemoveGpeHandler(NULL, sc->ec_gpebit, &EcGpeHandler); if (ACPI_FAILURE(Status)) panic("Added GPE handler but can't remove it"); errval = ENXIO; @@ -461,6 +466,7 @@ if (sc->ec_data_res) bus_release_resource(sc->ec_dev, SYS_RES_IOPORT, sc->ec_data_rid, sc->ec_data_res); + mtx_destroy(&sc->ec_mtx); return (errval); } @@ -512,8 +518,11 @@ mtx_lock(&sc->ec_mtx); EcStatus = EC_GET_CSR(sc); mtx_unlock(&sc->ec_mtx); - if ((EcStatus & EC_EVENT_SCI) == 0) + if ((EcStatus & EC_EVENT_SCI) == 0) { + /* If it's not an SCI, wakeup the EcWaitEvent sleep. */ + wakeup(&sc->ec_polldelay); goto re_enable; + } /* Find out why the EC is signaling us. */ Status = EcQuery(sc, &Data); @@ -655,40 +664,42 @@ /* * Poll the EC status register to detect completion of the last - * command. Wait up to 50 ms (in chunks of sc->ec_polldelay - * microseconds for the first 1 ms, in 1 ms chunks for the remainder - * of the period) for this to occur. + * command. First, wait up to 1 ms in chunks of sc->ec_polldelay + * microseconds. */ - for (i = 0; i < (1000 / sc->ec_polldelay) + EC_POLL_TIMEOUT; i++) { + for (i = 0; i < 1000 / sc->ec_polldelay; i++) { EcStatus = EC_GET_CSR(sc); + if (EVENT_READY(Event, EcStatus)) { + Status = AE_OK; + break; + } + AcpiOsStall(sc->ec_polldelay); + } - /* Check if the user's event occurred. */ - if ((Event == EC_EVENT_OUTPUT_BUFFER_FULL && - (EcStatus & EC_FLAG_OUTPUT_BUFFER) != 0) || - (Event == EC_EVENT_INPUT_BUFFER_EMPTY && - (EcStatus & EC_FLAG_INPUT_BUFFER) == 0)) { + /* Scale poll delay by the amount of time actually waited. */ + period = i * sc->ec_polldelay; + if (period <= 5) + sc->ec_polldelay = 1; + else if (period <= 20) + sc->ec_polldelay = 5; + else if (period <= 100) + sc->ec_polldelay = 10; + else + sc->ec_polldelay = 100; + + /* + * If we still don't have a response, wait up to EC_POLL_TIMEOUT ms + * for completion, sleeping for chunks of 10 ms. + */ + if (Status != AE_OK) { + for (i = 0; i < EC_POLL_TIMEOUT / 10; i++) { + EcStatus = EC_GET_CSR(sc); + if (EVENT_READY(Event, EcStatus)) { Status = AE_OK; break; + } + msleep(&sc->ec_polldelay, &sc->ec_mtx, PZERO, "ecpoll", 10/*ms*/); } - - /* For the first 1 ms, DELAY, after that, msleep. */ - if (i < 1000) - AcpiOsStall(sc->ec_polldelay); - else - msleep(&sc->ec_polldelay, &sc->ec_mtx, PZERO, "ecpoll", 1/*ms*/); - } - - /* Scale poll delay by the amount of time actually waited. */ - if (Status == AE_OK) { - period = i * sc->ec_polldelay; - if (period <= 5) - sc->ec_polldelay = 1; - else if (period <= 20) - sc->ec_polldelay = 5; - else if (period <= 100) - sc->ec_polldelay = 10; - else - sc->ec_polldelay = 100; } return (Status); ==== //depot/projects/uart/dev/acpica/acpivar.h#2 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/acpica/acpivar.h,v 1.41 2003/05/13 16:59:46 jhb Exp $ + * $FreeBSD: src/sys/dev/acpica/acpivar.h,v 1.42 2003/07/15 19:19:54 njl Exp $ */ #include "bus_if.h" @@ -104,22 +104,10 @@ # define ACPI_LOCK_DECL int s # define kthread_create(a, b, c, d, e, f) kthread_create(a, b, c, f) # define tc_init(a) init_timecounter(a) -#elif 0 -/* - * The ACPI subsystem lives under a single mutex. You *must* - * acquire this mutex before calling any of the acpi_ or Acpi* functions. - */ -extern struct mtx acpi_mutex; -# define ACPI_LOCK mtx_lock(&acpi_mutex) -# define ACPI_UNLOCK mtx_unlock(&acpi_mutex) -# define ACPI_ASSERTLOCK mtx_assert(&acpi_mutex, MA_OWNED) -# define ACPI_MSLEEP(a, b, c, d, e) msleep(a, b, c, d, e) -# define ACPI_LOCK_DECL #else # define ACPI_LOCK # define ACPI_UNLOCK # define ACPI_ASSERTLOCK -# define ACPI_MSLEEP(a, b, c, d, e) tsleep(a, c, d, e) # define ACPI_LOCK_DECL #endif ==== //depot/projects/uart/dev/bge/if_bge.c#3 (text+ko) ==== @@ -64,7 +64,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/bge/if_bge.c,v 1.43 2003/07/11 08:19:52 wpaul Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/bge/if_bge.c,v 1.44 2003/07/16 00:09:56 wpaul Exp $"); #include #include @@ -135,14 +135,26 @@ "Broadcom BCM5700 Gigabit Ethernet" }, { BCOM_VENDORID, BCOM_DEVICEID_BCM5701, "Broadcom BCM5701 Gigabit Ethernet" }, + { BCOM_VENDORID, BCOM_DEVICEID_BCM5702, + "Broadcom BCM5702 Gigabit Ethernet" }, { BCOM_VENDORID, BCOM_DEVICEID_BCM5702X, "Broadcom BCM5702X Gigabit Ethernet" }, + { BCOM_VENDORID, BCOM_DEVICEID_BCM5703, + "Broadcom BCM5703 Gigabit Ethernet" }, { BCOM_VENDORID, BCOM_DEVICEID_BCM5703X, "Broadcom BCM5703X Gigabit Ethernet" }, { BCOM_VENDORID, BCOM_DEVICEID_BCM5704C, "Broadcom BCM5704C Dual Gigabit Ethernet" }, { BCOM_VENDORID, BCOM_DEVICEID_BCM5704S, "Broadcom BCM5704S Dual Gigabit Ethernet" }, + { BCOM_VENDORID, BCOM_DEVICEID_BCM5705, + "Broadcom BCM5705 Gigabit Ethernet" }, + { BCOM_VENDORID, BCOM_DEVICEID_BCM5705M, + "Broadcom BCM5705M Gigabit Ethernet" }, + { BCOM_VENDORID, BCOM_DEVICEID_BCM5705M_ALT, + "Broadcom BCM5705M Gigabit Ethernet" }, + { BCOM_VENDORID, BCOM_DEVICEID_BCM5782, + "Broadcom BCM5782 Gigabit Ethernet" }, { SK_VENDORID, SK_DEVICEID_ALTIMA, "SysKonnect Gigabit Ethernet" }, { ALTIMA_VENDORID, ALTIMA_DEVICE_AC1000, @@ -162,6 +174,8 @@ static void bge_tick (void *); static void bge_stats_update (struct bge_softc *); +static void bge_stats_update_regs + (struct bge_softc *); static int bge_encap (struct bge_softc *, struct mbuf *, u_int32_t *); @@ -480,13 +494,17 @@ sc = device_get_softc(dev); + /* + * Broadcom's own driver always assumes the internal + * PHY is at GMII address 1. On some chips, the PHY responds + * to accesses at all addresses, which could cause us to + * bogusly attach the PHY 32 times at probe type. Always + * restricting the lookup to address 1 is simpler than + * trying to figure out which chips revisions should be + * special-cased. + */ if (phy != 1) - switch(sc->bge_chipid) { - case BGE_CHIPID_BCM5701_B5: - case BGE_CHIPID_BCM5703_A2: - case BGE_CHIPID_BCM5704_A0: - return(0); - } + return(0); /* Reading with autopolling on may trigger PCI errors */ autopoll = CSR_READ_4(sc, BGE_MI_MODE); @@ -1084,7 +1102,8 @@ } if (sc->bge_asicrev == BGE_ASICREV_BCM5703 || - sc->bge_asicrev == BGE_ASICREV_BCM5704) + sc->bge_asicrev == BGE_ASICREV_BCM5704 || + sc->bge_asicrev == BGE_ASICREV_BCM5705) dma_rw_ctl &= ~BGE_PCIDMARWCTL_MINDMA; pci_write_config(sc->bge_dev, BGE_PCI_DMA_RW_CTL, dma_rw_ctl, 4); @@ -1136,22 +1155,32 @@ */ CSR_WRITE_4(sc, BGE_PCI_MEMWIN_BASEADDR, 0); - /* Configure mbuf memory pool */ - if (sc->bge_extram) { - CSR_WRITE_4(sc, BGE_BMAN_MBUFPOOL_BASEADDR, BGE_EXT_SSRAM); - CSR_WRITE_4(sc, BGE_BMAN_MBUFPOOL_LEN, 0x18000); - } else { - CSR_WRITE_4(sc, BGE_BMAN_MBUFPOOL_BASEADDR, BGE_BUFFPOOL_1); - CSR_WRITE_4(sc, BGE_BMAN_MBUFPOOL_LEN, 0x18000); + if (sc->bge_asicrev != BGE_ASICREV_BCM5705) { + /* Configure mbuf memory pool */ + if (sc->bge_extram) { + CSR_WRITE_4(sc, BGE_BMAN_MBUFPOOL_BASEADDR, + BGE_EXT_SSRAM); + CSR_WRITE_4(sc, BGE_BMAN_MBUFPOOL_LEN, 0x18000); + } else { + CSR_WRITE_4(sc, BGE_BMAN_MBUFPOOL_BASEADDR, + BGE_BUFFPOOL_1); + CSR_WRITE_4(sc, BGE_BMAN_MBUFPOOL_LEN, 0x18000); + } + + /* Configure DMA resource pool */ + CSR_WRITE_4(sc, BGE_BMAN_DMA_DESCPOOL_BASEADDR, + BGE_DMA_DESCRIPTORS); + CSR_WRITE_4(sc, BGE_BMAN_DMA_DESCPOOL_LEN, 0x2000); } - /* Configure DMA resource pool */ - CSR_WRITE_4(sc, BGE_BMAN_DMA_DESCPOOL_BASEADDR, BGE_DMA_DESCRIPTORS); - CSR_WRITE_4(sc, BGE_BMAN_DMA_DESCPOOL_LEN, 0x2000); - /* Configure mbuf pool watermarks */ - CSR_WRITE_4(sc, BGE_BMAN_MBUFPOOL_READDMA_LOWAT, 0x50); - CSR_WRITE_4(sc, BGE_BMAN_MBUFPOOL_MACRX_LOWAT, 0x20); + if (sc->bge_asicrev == BGE_ASICREV_BCM5705) { + CSR_WRITE_4(sc, BGE_BMAN_MBUFPOOL_READDMA_LOWAT, 0x0); + CSR_WRITE_4(sc, BGE_BMAN_MBUFPOOL_MACRX_LOWAT, 0x10); + } else { + CSR_WRITE_4(sc, BGE_BMAN_MBUFPOOL_READDMA_LOWAT, 0x50); + CSR_WRITE_4(sc, BGE_BMAN_MBUFPOOL_MACRX_LOWAT, 0x20); + } CSR_WRITE_4(sc, BGE_BMAN_MBUFPOOL_HIWAT, 0x60); /* Configure DMA resource watermarks */ @@ -1159,20 +1188,22 @@ CSR_WRITE_4(sc, BGE_BMAN_DMA_DESCPOOL_HIWAT, 10); /* Enable buffer manager */ - CSR_WRITE_4(sc, BGE_BMAN_MODE, - BGE_BMANMODE_ENABLE|BGE_BMANMODE_LOMBUF_ATTN); + if (sc->bge_asicrev != BGE_ASICREV_BCM5705) { + CSR_WRITE_4(sc, BGE_BMAN_MODE, + BGE_BMANMODE_ENABLE|BGE_BMANMODE_LOMBUF_ATTN); - /* Poll for buffer manager start indication */ - for (i = 0; i < BGE_TIMEOUT; i++) { - if (CSR_READ_4(sc, BGE_BMAN_MODE) & BGE_BMANMODE_ENABLE) - break; - DELAY(10); - } + /* Poll for buffer manager start indication */ + for (i = 0; i < BGE_TIMEOUT; i++) { + if (CSR_READ_4(sc, BGE_BMAN_MODE) & BGE_BMANMODE_ENABLE) + break; + DELAY(10); + } - if (i == BGE_TIMEOUT) { - printf("bge%d: buffer manager failed to start\n", - sc->bge_unit); - return(ENXIO); + if (i == BGE_TIMEOUT) { + printf("bge%d: buffer manager failed to start\n", + sc->bge_unit); + return(ENXIO); + } } /* Enable flow-through queues */ @@ -1196,7 +1227,11 @@ rcb = &sc->bge_rdata->bge_info.bge_std_rx_rcb; BGE_HOSTADDR(rcb->bge_hostaddr, vtophys(&sc->bge_rdata->bge_rx_std_ring)); - rcb->bge_maxlen_flags = BGE_RCB_MAXLEN_FLAGS(BGE_MAX_FRAMELEN, 0); + if (sc->bge_asicrev == BGE_ASICREV_BCM5705) + rcb->bge_maxlen_flags = BGE_RCB_MAXLEN_FLAGS(512, 0); + else + rcb->bge_maxlen_flags = + BGE_RCB_MAXLEN_FLAGS(BGE_MAX_FRAMELEN, 0); if (sc->bge_extram) rcb->bge_nicaddr = BGE_EXT_STD_RX_RINGS; else @@ -1213,27 +1248,32 @@ * using this ring (i.e. once we set the MTU * high enough to require it). */ - rcb = &sc->bge_rdata->bge_info.bge_jumbo_rx_rcb; - BGE_HOSTADDR(rcb->bge_hostaddr, - vtophys(&sc->bge_rdata->bge_rx_jumbo_ring)); - rcb->bge_maxlen_flags = - BGE_RCB_MAXLEN_FLAGS(BGE_MAX_FRAMELEN, BGE_RCB_FLAG_RING_DISABLED); - if (sc->bge_extram) - rcb->bge_nicaddr = BGE_EXT_JUMBO_RX_RINGS; - else - rcb->bge_nicaddr = BGE_JUMBO_RX_RINGS; - CSR_WRITE_4(sc, BGE_RX_JUMBO_RCB_HADDR_HI, - rcb->bge_hostaddr.bge_addr_hi); - CSR_WRITE_4(sc, BGE_RX_JUMBO_RCB_HADDR_LO, - rcb->bge_hostaddr.bge_addr_lo); - CSR_WRITE_4(sc, BGE_RX_JUMBO_RCB_MAXLEN_FLAGS, rcb->bge_maxlen_flags); - CSR_WRITE_4(sc, BGE_RX_JUMBO_RCB_NICADDR, rcb->bge_nicaddr); + if (sc->bge_asicrev != BGE_ASICREV_BCM5705) { + rcb = &sc->bge_rdata->bge_info.bge_jumbo_rx_rcb; + BGE_HOSTADDR(rcb->bge_hostaddr, + vtophys(&sc->bge_rdata->bge_rx_jumbo_ring)); + rcb->bge_maxlen_flags = + BGE_RCB_MAXLEN_FLAGS(BGE_MAX_FRAMELEN, + BGE_RCB_FLAG_RING_DISABLED); + if (sc->bge_extram) + rcb->bge_nicaddr = BGE_EXT_JUMBO_RX_RINGS; + else + rcb->bge_nicaddr = BGE_JUMBO_RX_RINGS; + CSR_WRITE_4(sc, BGE_RX_JUMBO_RCB_HADDR_HI, + rcb->bge_hostaddr.bge_addr_hi); + CSR_WRITE_4(sc, BGE_RX_JUMBO_RCB_HADDR_LO, + rcb->bge_hostaddr.bge_addr_lo); + CSR_WRITE_4(sc, BGE_RX_JUMBO_RCB_MAXLEN_FLAGS, + rcb->bge_maxlen_flags); + CSR_WRITE_4(sc, BGE_RX_JUMBO_RCB_NICADDR, rcb->bge_nicaddr); - /* Set up dummy disabled mini ring RCB */ - rcb = &sc->bge_rdata->bge_info.bge_mini_rx_rcb; - rcb->bge_maxlen_flags = - BGE_RCB_MAXLEN_FLAGS(0, BGE_RCB_FLAG_RING_DISABLED); - CSR_WRITE_4(sc, BGE_RX_MINI_RCB_MAXLEN_FLAGS, rcb->bge_maxlen_flags); + /* Set up dummy disabled mini ring RCB */ + rcb = &sc->bge_rdata->bge_info.bge_mini_rx_rcb; + rcb->bge_maxlen_flags = + BGE_RCB_MAXLEN_FLAGS(0, BGE_RCB_FLAG_RING_DISABLED); + CSR_WRITE_4(sc, BGE_RX_MINI_RCB_MAXLEN_FLAGS, + rcb->bge_maxlen_flags); + } /* * Set the BD ring replentish thresholds. The recommended @@ -1263,7 +1303,9 @@ vrcb->bge_hostaddr.bge_addr_hi = 0; BGE_HOSTADDR(vrcb->bge_hostaddr, vtophys(&sc->bge_rdata->bge_tx_ring)); vrcb->bge_nicaddr = BGE_NIC_TXRING_ADDR(0, BGE_TX_RING_CNT); - vrcb->bge_maxlen_flags = BGE_RCB_MAXLEN_FLAGS(BGE_TX_RING_CNT, 0); + if (sc->bge_asicrev != BGE_ASICREV_BCM5705) + vrcb->bge_maxlen_flags = + BGE_RCB_MAXLEN_FLAGS(BGE_TX_RING_CNT, 0); /* Disable all unused RX return rings */ vrcb = (volatile struct bge_rcb *)(sc->bge_vhandle + BGE_MEMWIN_START + @@ -1272,7 +1314,7 @@ vrcb->bge_hostaddr.bge_addr_hi = 0; vrcb->bge_hostaddr.bge_addr_lo = 0; vrcb->bge_maxlen_flags = - BGE_RCB_MAXLEN_FLAGS(BGE_RETURN_RING_CNT, + BGE_RCB_MAXLEN_FLAGS(sc->bge_return_ring_cnt, BGE_RCB_FLAG_RING_DISABLED); vrcb->bge_nicaddr = 0; CSR_WRITE_4(sc, BGE_MBX_RX_CONS0_LO + @@ -1297,7 +1339,8 @@ BGE_HOSTADDR(vrcb->bge_hostaddr, vtophys(&sc->bge_rdata->bge_rx_return_ring)); vrcb->bge_nicaddr = 0x00000000; - vrcb->bge_maxlen_flags = BGE_RCB_MAXLEN_FLAGS(BGE_RETURN_RING_CNT, 0); + vrcb->bge_maxlen_flags = + BGE_RCB_MAXLEN_FLAGS(sc->bge_return_ring_cnt, 0); /* Set random backoff seed for TX */ CSR_WRITE_4(sc, BGE_TX_RANDOM_BACKOFF, @@ -1346,23 +1389,29 @@ CSR_WRITE_4(sc, BGE_HCC_TX_COAL_TICKS, sc->bge_tx_coal_ticks); CSR_WRITE_4(sc, BGE_HCC_RX_MAX_COAL_BDS, sc->bge_rx_max_coal_bds); CSR_WRITE_4(sc, BGE_HCC_TX_MAX_COAL_BDS, sc->bge_tx_max_coal_bds); - CSR_WRITE_4(sc, BGE_HCC_RX_COAL_TICKS_INT, 0); - CSR_WRITE_4(sc, BGE_HCC_TX_COAL_TICKS_INT, 0); + if (sc->bge_asicrev != BGE_ASICREV_BCM5705) { + CSR_WRITE_4(sc, BGE_HCC_RX_COAL_TICKS_INT, 0); + CSR_WRITE_4(sc, BGE_HCC_TX_COAL_TICKS_INT, 0); + } CSR_WRITE_4(sc, BGE_HCC_RX_MAX_COAL_BDS_INT, 0); CSR_WRITE_4(sc, BGE_HCC_TX_MAX_COAL_BDS_INT, 0); - CSR_WRITE_4(sc, BGE_HCC_STATS_TICKS, sc->bge_stat_ticks); /* Set up address of statistics block */ - CSR_WRITE_4(sc, BGE_HCC_STATS_BASEADDR, BGE_STATS_BLOCK); - CSR_WRITE_4(sc, BGE_HCC_STATS_ADDR_HI, 0); - CSR_WRITE_4(sc, BGE_HCC_STATS_ADDR_LO, - vtophys(&sc->bge_rdata->bge_info.bge_stats)); + if (sc->bge_asicrev != BGE_ASICREV_BCM5705) { + CSR_WRITE_4(sc, BGE_HCC_STATS_ADDR_HI, 0); + CSR_WRITE_4(sc, BGE_HCC_STATS_ADDR_LO, + vtophys(&sc->bge_rdata->bge_info.bge_stats)); + + CSR_WRITE_4(sc, BGE_HCC_STATS_BASEADDR, BGE_STATS_BLOCK); + CSR_WRITE_4(sc, BGE_HCC_STATUSBLK_BASEADDR, BGE_STATUS_BLOCK); + CSR_WRITE_4(sc, BGE_HCC_STATS_TICKS, sc->bge_stat_ticks); + } /* Set up address of status block */ - CSR_WRITE_4(sc, BGE_HCC_STATUSBLK_BASEADDR, BGE_STATUS_BLOCK); >>> TRUNCATED FOR MAIL (1000 lines) <<<