PERFORCE change 34605 for review
Marcel Moolenaar
marcel at FreeBSD.org
Wed Jul 16 22:59:04 PDT 2003
http://perforce.freebsd.org/chv.cgi?CH=34605
Change 34605 by marcel at 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 <sys/cdefs.h>
-__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 <stand.h>
#include <string.h>
@@ -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 <sys/cdefs.h>
-__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 <sys/param.h>
#include <sys/systm.h>
@@ -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) <<<
More information about the p4-projects
mailing list