From owner-p4-projects@FreeBSD.ORG Mon Nov 13 22:09:27 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EE26B16A4C2; Mon, 13 Nov 2006 22:09:26 +0000 (UTC) X-Original-To: perforce@freebsd.org 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 AD63D16A415 for ; Mon, 13 Nov 2006 22:09:26 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 677FB43DAA for ; Mon, 13 Nov 2006 22:08:45 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id kADM8Xtq013047 for ; Mon, 13 Nov 2006 22:08:33 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id kADM8V96013043 for perforce@freebsd.org; Mon, 13 Nov 2006 22:08:31 GMT (envelope-from jhb@freebsd.org) Date: Mon, 13 Nov 2006 22:08:31 GMT Message-Id: <200611132208.kADM8V96013043@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 109891 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Nov 2006 22:09:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=109891 Change 109891 by jhb@jhb_mutex on 2006/11/13 22:08:01 IFC @109890. Affected files ... .. //depot/projects/smpng/sys/Makefile#14 integrate .. //depot/projects/smpng/sys/amd64/amd64/db_disasm.c#5 integrate .. //depot/projects/smpng/sys/amd64/amd64/pmap.c#69 integrate .. //depot/projects/smpng/sys/amd64/include/pmap.h#25 integrate .. //depot/projects/smpng/sys/amd64/linux32/linux32_proto.h#18 integrate .. //depot/projects/smpng/sys/amd64/linux32/linux32_syscall.h#18 integrate .. //depot/projects/smpng/sys/amd64/linux32/linux32_sysent.c#18 integrate .. //depot/projects/smpng/sys/arm/arm/pmap.c#36 integrate .. //depot/projects/smpng/sys/arm/at91/kb920x_machdep.c#12 integrate .. //depot/projects/smpng/sys/arm/include/pmap.h#20 integrate .. //depot/projects/smpng/sys/arm/sa11x0/assabet_machdep.c#13 integrate .. //depot/projects/smpng/sys/boot/arm/at91/Makefile#2 integrate .. //depot/projects/smpng/sys/boot/arm/at91/Makefile.inc#4 integrate .. //depot/projects/smpng/sys/boot/arm/at91/boot0iic/main.c#3 integrate .. //depot/projects/smpng/sys/boot/arm/at91/boot2/Makefile#2 integrate .. //depot/projects/smpng/sys/boot/arm/at91/boot2/board.h#1 branch .. //depot/projects/smpng/sys/boot/arm/at91/boot2/boot2.c#2 integrate .. //depot/projects/smpng/sys/boot/arm/at91/boot2/kb920x_board.c#2 integrate .. //depot/projects/smpng/sys/boot/arm/at91/bootiic/Makefile#3 integrate .. //depot/projects/smpng/sys/boot/arm/at91/bootspi/Makefile#4 integrate .. //depot/projects/smpng/sys/boot/arm/at91/libat91/Makefile#5 integrate .. //depot/projects/smpng/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.c#3 integrate .. //depot/projects/smpng/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.h#3 integrate .. //depot/projects/smpng/sys/boot/arm/at91/libat91/emac.c#5 integrate .. //depot/projects/smpng/sys/boot/arm/at91/libat91/emac.h#5 integrate .. //depot/projects/smpng/sys/boot/arm/at91/libat91/emac_init.c#3 integrate .. //depot/projects/smpng/sys/boot/arm/at91/libat91/mci_device.h#3 integrate .. //depot/projects/smpng/sys/boot/arm/at91/libat91/memcmp.c#2 integrate .. //depot/projects/smpng/sys/boot/arm/at91/libat91/memcpy.c#2 integrate .. //depot/projects/smpng/sys/boot/arm/at91/libat91/memset.c#2 integrate .. //depot/projects/smpng/sys/boot/arm/at91/libat91/sd-card.c#3 integrate .. //depot/projects/smpng/sys/boot/arm/at91/libat91/strcmp.c#2 integrate .. //depot/projects/smpng/sys/boot/arm/at91/libat91/strcpy.c#2 integrate .. //depot/projects/smpng/sys/boot/arm/at91/libat91/strcvt.c#2 integrate .. //depot/projects/smpng/sys/boot/arm/at91/libat91/strlen.c#2 integrate .. //depot/projects/smpng/sys/boot/pc98/btx/btx/btx.S#6 integrate .. //depot/projects/smpng/sys/boot/pc98/libpc98/biossmap.c#1 branch .. //depot/projects/smpng/sys/coda/coda_vnops.c#27 integrate .. //depot/projects/smpng/sys/coda/coda_vnops.h#11 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_proto.h#36 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_syscall.h#36 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_syscalls.c#36 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_sysent.c#36 integrate .. //depot/projects/smpng/sys/compat/linux/linux_misc.c#74 integrate .. //depot/projects/smpng/sys/compat/svr4/svr4_proto.h#19 integrate .. //depot/projects/smpng/sys/compat/svr4/svr4_syscall.h#18 integrate .. //depot/projects/smpng/sys/compat/svr4/svr4_syscallnames.c#18 integrate .. //depot/projects/smpng/sys/compat/svr4/svr4_sysent.c#18 integrate .. //depot/projects/smpng/sys/conf/NOTES#130 integrate .. //depot/projects/smpng/sys/conf/files#190 integrate .. //depot/projects/smpng/sys/conf/files.arm#10 integrate .. //depot/projects/smpng/sys/conf/files.sun4v#2 integrate .. //depot/projects/smpng/sys/conf/options#129 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_pci_link.c#36 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_pcib_acpi.c#22 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_pcib_pci.c#12 integrate .. //depot/projects/smpng/sys/dev/aha/ahareg.h#7 integrate .. //depot/projects/smpng/sys/dev/em/if_em.c#76 integrate .. //depot/projects/smpng/sys/dev/em/if_em.h#37 integrate .. //depot/projects/smpng/sys/dev/pci/pci.c#76 integrate .. //depot/projects/smpng/sys/dev/pci/pci_if.m#7 integrate .. //depot/projects/smpng/sys/dev/pci/pci_pci.c#30 integrate .. //depot/projects/smpng/sys/dev/pci/pci_private.h#18 integrate .. //depot/projects/smpng/sys/dev/pci/pcib_if.m#5 integrate .. //depot/projects/smpng/sys/dev/pci/pcib_private.h#8 integrate .. //depot/projects/smpng/sys/dev/pci/pcireg.h#16 integrate .. //depot/projects/smpng/sys/dev/pci/pcivar.h#21 integrate .. //depot/projects/smpng/sys/dev/usb/usb_quirks.c#21 integrate .. //depot/projects/smpng/sys/dev/usb/usbdevs#96 integrate .. //depot/projects/smpng/sys/fs/nullfs/null_vnops.c#28 integrate .. //depot/projects/smpng/sys/i386/i386/pmap.c#109 integrate .. //depot/projects/smpng/sys/i386/ibcs2/ibcs2_proto.h#18 integrate .. //depot/projects/smpng/sys/i386/ibcs2/ibcs2_xenix.h#13 integrate .. //depot/projects/smpng/sys/i386/include/pmap.h#32 integrate .. //depot/projects/smpng/sys/i386/linux/linux_proto.h#37 integrate .. //depot/projects/smpng/sys/i386/pci/pci_pir.c#11 integrate .. //depot/projects/smpng/sys/ia64/ia64/pmap.c#82 integrate .. //depot/projects/smpng/sys/ia64/include/pmap.h#25 integrate .. //depot/projects/smpng/sys/kern/Make.tags.inc#5 integrate .. //depot/projects/smpng/sys/kern/init_main.c#63 integrate .. //depot/projects/smpng/sys/kern/init_sysent.c#79 integrate .. //depot/projects/smpng/sys/kern/kern_idle.c#27 integrate .. //depot/projects/smpng/sys/kern/kern_lock.c#57 integrate .. //depot/projects/smpng/sys/kern/kern_mutex.c#137 integrate .. //depot/projects/smpng/sys/kern/kern_rwlock.c#9 integrate .. //depot/projects/smpng/sys/kern/kern_sig.c#128 integrate .. //depot/projects/smpng/sys/kern/kern_sx.c#39 integrate .. //depot/projects/smpng/sys/kern/kern_thr.c#39 integrate .. //depot/projects/smpng/sys/kern/kern_time.c#48 integrate .. //depot/projects/smpng/sys/kern/ksched.c#1 branch .. //depot/projects/smpng/sys/kern/makesyscalls.sh#23 integrate .. //depot/projects/smpng/sys/kern/p1003_1b.c#1 branch .. //depot/projects/smpng/sys/kern/posix4_mib.c#1 branch .. //depot/projects/smpng/sys/kern/sched_4bsd.c#62 integrate .. //depot/projects/smpng/sys/kern/subr_lock.c#4 integrate .. //depot/projects/smpng/sys/kern/subr_witness.c#156 integrate .. //depot/projects/smpng/sys/kern/syscalls.c#79 integrate .. //depot/projects/smpng/sys/kern/systrace_args.c#6 integrate .. //depot/projects/smpng/sys/kern/uipc_mqueue.c#10 integrate .. //depot/projects/smpng/sys/kern/uipc_sem.c#22 integrate .. //depot/projects/smpng/sys/kern/uipc_syscalls.c#96 integrate .. //depot/projects/smpng/sys/kern/vfs_aio.c#76 integrate .. //depot/projects/smpng/sys/kern/vfs_default.c#48 integrate .. //depot/projects/smpng/sys/kern/vfs_subr.c#136 integrate .. //depot/projects/smpng/sys/kern/vfs_vnops.c#77 integrate .. //depot/projects/smpng/sys/kern/vnode_if.src#29 integrate .. //depot/projects/smpng/sys/modules/Makefile#129 integrate .. //depot/projects/smpng/sys/modules/acpi/Makefile#30 integrate .. //depot/projects/smpng/sys/modules/if_ppp/Makefile#9 integrate .. //depot/projects/smpng/sys/net/bridgestp.c#15 integrate .. //depot/projects/smpng/sys/net/bridgestp.h#5 integrate .. //depot/projects/smpng/sys/net/if_bridge.c#40 integrate .. //depot/projects/smpng/sys/net/if_bridgevar.h#14 integrate .. //depot/projects/smpng/sys/net/if_ppp.c#44 integrate .. //depot/projects/smpng/sys/net/if_pppvar.h#11 integrate .. //depot/projects/smpng/sys/netinet/ip_fw2.c#80 integrate .. //depot/projects/smpng/sys/netinet/sctp_constants.h#2 integrate .. //depot/projects/smpng/sys/netinet/sctp_indata.c#2 integrate .. //depot/projects/smpng/sys/netinet/sctp_input.c#2 integrate .. //depot/projects/smpng/sys/netinet/sctp_output.c#2 integrate .. //depot/projects/smpng/sys/netinet/sctp_uio.h#2 integrate .. //depot/projects/smpng/sys/netinet/sctp_usrreq.c#2 integrate .. //depot/projects/smpng/sys/netinet/sctputil.c#2 integrate .. //depot/projects/smpng/sys/netinet/sctputil.h#2 integrate .. //depot/projects/smpng/sys/pc98/pc98/machdep.c#18 integrate .. //depot/projects/smpng/sys/posix4/_semaphore.h#6 delete .. //depot/projects/smpng/sys/posix4/ksched.c#21 delete .. //depot/projects/smpng/sys/posix4/ksem.h#2 delete .. //depot/projects/smpng/sys/posix4/p1003_1b.c#16 delete .. //depot/projects/smpng/sys/posix4/posix4.h#8 delete .. //depot/projects/smpng/sys/posix4/posix4_mib.c#7 delete .. //depot/projects/smpng/sys/posix4/sched.h#4 delete .. //depot/projects/smpng/sys/posix4/semaphore.h#7 delete .. //depot/projects/smpng/sys/powerpc/powerpc/mmu_oea.c#8 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/pmap_dispatch.c#7 integrate .. //depot/projects/smpng/sys/security/mac/mac_posix_sem.c#4 integrate .. //depot/projects/smpng/sys/security/mac_biba/mac_biba.c#42 integrate .. //depot/projects/smpng/sys/security/mac_mls/mac_mls.c#37 integrate .. //depot/projects/smpng/sys/security/mac_stub/mac_stub.c#18 integrate .. //depot/projects/smpng/sys/security/mac_test/mac_test.c#34 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/pmap.c#69 integrate .. //depot/projects/smpng/sys/sun4v/conf/GENERIC#2 integrate .. //depot/projects/smpng/sys/sun4v/include/cpufunc.h#2 integrate .. //depot/projects/smpng/sys/sun4v/include/pmap.h#2 integrate .. //depot/projects/smpng/sys/sun4v/sun4v/hcall.S#3 integrate .. //depot/projects/smpng/sys/sun4v/sun4v/interrupt.S#2 integrate .. //depot/projects/smpng/sys/sun4v/sun4v/intr_machdep.c#2 integrate .. //depot/projects/smpng/sys/sun4v/sun4v/pmap.c#4 integrate .. //depot/projects/smpng/sys/sun4v/sun4v/rtc.c#2 integrate .. //depot/projects/smpng/sys/sun4v/sun4v/support.S#3 integrate .. //depot/projects/smpng/sys/sun4v/sun4v/trap.c#4 integrate .. //depot/projects/smpng/sys/sys/_lock.h#14 integrate .. //depot/projects/smpng/sys/sys/_mutex.h#16 integrate .. //depot/projects/smpng/sys/sys/_semaphore.h#1 branch .. //depot/projects/smpng/sys/sys/ksem.h#1 branch .. //depot/projects/smpng/sys/sys/lock.h#40 integrate .. //depot/projects/smpng/sys/sys/lock_profile.h#1 branch .. //depot/projects/smpng/sys/sys/lockmgr.h#19 integrate .. //depot/projects/smpng/sys/sys/mutex.h#66 integrate .. //depot/projects/smpng/sys/sys/param.h#106 integrate .. //depot/projects/smpng/sys/sys/posix4.h#1 branch .. //depot/projects/smpng/sys/sys/proc.h#173 integrate .. //depot/projects/smpng/sys/sys/sched.h#24 integrate .. //depot/projects/smpng/sys/sys/semaphore.h#1 branch .. //depot/projects/smpng/sys/sys/syscall.h#78 integrate .. //depot/projects/smpng/sys/sys/syscall.mk#78 integrate .. //depot/projects/smpng/sys/sys/sysproto.h#82 integrate .. //depot/projects/smpng/sys/sys/thr.h#11 integrate .. //depot/projects/smpng/sys/sys/umtx.h#18 integrate .. //depot/projects/smpng/sys/sys/vnode.h#75 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_vnops.c#48 integrate .. //depot/projects/smpng/sys/vm/vm_fault.c#63 integrate .. //depot/projects/smpng/sys/vm/vm_kern.c#34 integrate Differences ... ==== //depot/projects/smpng/sys/Makefile#14 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/Makefile,v 1.38 2006/08/10 06:29:43 imp Exp $ +# $FreeBSD: src/sys/Makefile,v 1.39 2006/11/11 16:26:55 trhodes Exp $ .include @@ -11,7 +11,7 @@ CSCOPEDIRS= coda compat conf contrib crypto ddb dev fs geom gnu i4b isa \ isofs kern libkern modules net net80211 netatalk netatm \ netgraph netinet netinet6 netipx netkey netnatm netncp \ - netsmb nfs nfsclient nfs4client rpc pccard pci posix4 sys \ + netsmb nfs nfsclient nfs4client rpc pccard pci sys \ ufs vm ${ARCHDIR} ARCHDIR ?= ${MACHINE} ==== //depot/projects/smpng/sys/amd64/amd64/db_disasm.c#5 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_disasm.c,v 1.30 2005/03/30 22:57:41 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_disasm.c,v 1.31 2006/11/13 21:14:54 jhb Exp $"); /* * Instruction disassembler. @@ -84,6 +84,7 @@ #define Ib 21 /* byte immediate, unsigned */ #define Ibs 22 /* byte immediate, signed */ #define Iw 23 /* word immediate, unsigned */ +#define Ilq 24 /* long/quad immediate, unsigned */ #define O 25 /* direct address */ #define Db 26 /* byte displacement from EIP */ #define Dl 27 /* long displacement from EIP */ @@ -351,7 +352,6 @@ 0, 0, 0, - 0, db_inst_0f8x, db_inst_0f9x, db_inst_0fax, @@ -752,14 +752,14 @@ /*b6*/ { "mov", FALSE, BYTE, op2(I, Ri), 0 }, /*b7*/ { "mov", FALSE, BYTE, op2(I, Ri), 0 }, -/*b8*/ { "mov", FALSE, LONG, op2(I, Ri), 0 }, -/*b9*/ { "mov", FALSE, LONG, op2(I, Ri), 0 }, -/*ba*/ { "mov", FALSE, LONG, op2(I, Ri), 0 }, -/*bb*/ { "mov", FALSE, LONG, op2(I, Ri), 0 }, -/*bc*/ { "mov", FALSE, LONG, op2(I, Ri), 0 }, -/*bd*/ { "mov", FALSE, LONG, op2(I, Ri), 0 }, -/*be*/ { "mov", FALSE, LONG, op2(I, Ri), 0 }, -/*bf*/ { "mov", FALSE, LONG, op2(I, Ri), 0 }, +/*b8*/ { "mov", FALSE, LONG, op2(Ilq, Ri), 0 }, +/*b9*/ { "mov", FALSE, LONG, op2(Ilq, Ri), 0 }, +/*ba*/ { "mov", FALSE, LONG, op2(Ilq, Ri), 0 }, +/*bb*/ { "mov", FALSE, LONG, op2(Ilq, Ri), 0 }, +/*bc*/ { "mov", FALSE, LONG, op2(Ilq, Ri), 0 }, +/*bd*/ { "mov", FALSE, LONG, op2(Ilq, Ri), 0 }, +/*be*/ { "mov", FALSE, LONG, op2(Ilq, Ri), 0 }, +/*bf*/ { "mov", FALSE, LONG, op2(Ilq, Ri), 0 }, /*c0*/ { "", TRUE, BYTE, op2(Ib, E), db_Grp2 }, /*c1*/ { "", TRUE, LONG, op2(Ib, E), db_Grp2 }, @@ -854,17 +854,6 @@ int ss; }; -static const char * const db_index_reg_16[8] = { - "%bx,%si", - "%bx,%di", - "%bp,%si", - "%bp,%di", - "%si", - "%di", - "%bp", - "%bx" -}; - static const char * const db_reg[2][4][16] = { {{"%al", "%cl", "%dl", "%bl", "%ah", "%ch", "%dh", "%bh", @@ -927,7 +916,7 @@ int regmodrm; struct i_addr * addrp; /* out */ { - int mod, rm, sib, index, disp; + int mod, rm, sib, index, disp, size, have_sib; mod = f_mod(rex, regmodrm); rm = f_rm(rex, regmodrm); @@ -940,68 +929,49 @@ addrp->is_reg = FALSE; addrp->index = 0; - if (short_addr) { - addrp->index = 0; - addrp->ss = 0; - switch (mod) { - case 0: - if (rm == 6) { - get_value_inc(disp, loc, 2, FALSE); - addrp->disp = disp; - addrp->base = 0; - } - else { - addrp->disp = 0; - addrp->base = db_index_reg_16[rm]; - } - break; - case 1: - get_value_inc(disp, loc, 1, TRUE); - disp &= 0xFFFF; - addrp->disp = disp; - addrp->base = db_index_reg_16[rm]; - break; - case 2: - get_value_inc(disp, loc, 2, FALSE); - addrp->disp = disp; - addrp->base = db_index_reg_16[rm]; - break; - } - } - else { - if (mod != 3 && rm == 4) { - get_value_inc(sib, loc, 1, FALSE); - rm = sib_base(rex, sib); - index = sib_index(rex, sib); - if (index != 4) - addrp->index = db_reg[1][QUAD][index]; - addrp->ss = sib_ss(rex, sib); - } + if (short_addr) + size = LONG; + else + size = QUAD; + + if ((rm & 0x7) == 4) { + get_value_inc(sib, loc, 1, FALSE); + rm = sib_base(rex, sib); + index = sib_index(rex, sib); + if (index != 4) + addrp->index = db_reg[1][size][index]; + addrp->ss = sib_ss(rex, sib); + have_sib = 1; + } else + have_sib = 0; - switch (mod) { - case 0: - if (rm == 5) { - get_value_inc(addrp->disp, loc, 4, FALSE); + switch (mod) { + case 0: + if (rm == 5) { + get_value_inc(addrp->disp, loc, 4, FALSE); + if (have_sib) addrp->base = 0; - } - else { - addrp->disp = 0; - addrp->base = db_reg[1][QUAD][rm]; - } - break; + else if (short_addr) + addrp->base = "%eip"; + else + addrp->base = "%rip"; + } else { + addrp->disp = 0; + addrp->base = db_reg[1][size][rm]; + } + break; - case 1: - get_value_inc(disp, loc, 1, TRUE); - addrp->disp = disp; - addrp->base = db_reg[1][QUAD][rm]; - break; + case 1: + get_value_inc(disp, loc, 1, TRUE); + addrp->disp = disp; + addrp->base = db_reg[1][size][rm]; + break; - case 2: - get_value_inc(disp, loc, 4, FALSE); - addrp->disp = disp; - addrp->base = db_reg[1][QUAD][rm]; - break; - } + case 2: + get_value_inc(disp, loc, 4, FALSE); + addrp->disp = disp; + addrp->base = db_reg[1][size][rm]; + break; } return (loc); } @@ -1022,7 +992,8 @@ db_printf("%s:", seg); } - db_printsym((db_addr_t)addrp->disp, DB_STGY_ANY); + if (addrp->disp != 0 || (addrp->base == 0 && addrp->index == 0)) + db_printsym((db_addr_t)addrp->disp, DB_STGY_ANY); if (addrp->base != 0 || addrp->index != 0) { db_printf("("); if (addrp->base) @@ -1154,6 +1125,7 @@ int prefix; int imm; int imm2; + long imm64; int len; struct i_addr address; @@ -1426,6 +1398,12 @@ db_printf("$%#r", imm); break; + case Ilq: + len = db_lengths[rex & REX_W ? QUAD : LONG]; + get_value_inc(imm64, loc, len, FALSE); + db_printf("$%#lr", imm64); + break; + case O: len = (short_addr ? 2 : 4); get_value_inc(displ, loc, len, FALSE); ==== //depot/projects/smpng/sys/amd64/amd64/pmap.c#69 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.572 2006/10/22 04:18:01 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.573 2006/11/12 21:48:32 alc Exp $"); /* * Manages physical address maps. @@ -2357,8 +2357,10 @@ * Now validate mapping with desired protection/wiring. */ newpte = (pt_entry_t)(pa | PG_V); - if ((prot & VM_PROT_WRITE) != 0) + if ((prot & VM_PROT_WRITE) != 0) { newpte |= PG_RW; + vm_page_flag_set(m, PG_WRITEABLE); + } if ((prot & VM_PROT_EXECUTE) == 0) newpte |= pg_nx; if (wired) ==== //depot/projects/smpng/sys/amd64/include/pmap.h#25 (text+ko) ==== @@ -39,7 +39,7 @@ * * from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90 * from: @(#)pmap.h 7.4 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.134 2006/08/11 19:22:56 jhb Exp $ + * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.136 2006/11/13 20:33:54 ru Exp $ */ #ifndef _MACHINE_PMAP_H_ @@ -101,9 +101,10 @@ ((unsigned long)(l2) << PDRSHIFT) | \ ((unsigned long)(l1) << PAGE_SHIFT)) -/* Initial number of kernel page tables */ +/* Initial number of kernel page tables. */ #ifndef NKPT -#define NKPT 240 /* Enough for 16GB (2MB page tables) */ +/* 240 page tables needed to map 16G (120B "struct vm_page", 2M page tables). */ +#define NKPT 240 #endif #define NKPML4E 1 /* number of kernel PML4 slots */ @@ -262,7 +263,7 @@ /* * For each vm_page_t, there is a list of all currently valid virtual - * mappings of that page. An entry is a pv_entry_t, the list is pv_table. + * mappings of that page. An entry is a pv_entry_t, the list is pv_list. */ typedef struct pv_entry { vm_offset_t pv_va; /* virtual address for mapping */ ==== //depot/projects/smpng/sys/amd64/linux32/linux32_proto.h#18 (text+ko) ==== @@ -2,7 +2,7 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/amd64/linux32/linux32_proto.h,v 1.25 2006/10/29 14:12:44 netchild Exp $ + * $FreeBSD: src/sys/amd64/linux32/linux32_proto.h,v 1.26 2006/11/11 21:49:07 ru Exp $ * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.23 2006/10/29 14:02:38 netchild Exp */ @@ -11,7 +11,7 @@ #include #include -#include +#include #include #include ==== //depot/projects/smpng/sys/amd64/linux32/linux32_syscall.h#18 (text+ko) ==== @@ -2,7 +2,7 @@ * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/amd64/linux32/linux32_syscall.h,v 1.25 2006/10/29 14:12:44 netchild Exp $ + * $FreeBSD: src/sys/amd64/linux32/linux32_syscall.h,v 1.26 2006/11/11 21:49:07 ru Exp $ * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.23 2006/10/29 14:02:38 netchild Exp */ ==== //depot/projects/smpng/sys/amd64/linux32/linux32_sysent.c#18 (text+ko) ==== @@ -2,7 +2,7 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/amd64/linux32/linux32_sysent.c,v 1.25 2006/10/29 14:12:44 netchild Exp $ + * $FreeBSD: src/sys/amd64/linux32/linux32_sysent.c,v 1.26 2006/11/11 21:49:07 ru Exp $ * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.23 2006/10/29 14:02:38 netchild Exp */ ==== //depot/projects/smpng/sys/arm/arm/pmap.c#36 (text+ko) ==== @@ -147,7 +147,7 @@ #include "opt_vm.h" #include -__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.71 2006/11/08 06:31:28 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.73 2006/11/12 21:48:32 alc Exp $"); #include #include #include @@ -218,7 +218,6 @@ static MALLOC_DEFINE(M_VMPMAP, "pmap", "PMAP L1"); -vm_offset_t avail_end; /* PA of last available physical page */ vm_offset_t virtual_avail; /* VA of first avail page (after kernel bss) */ vm_offset_t virtual_end; /* VA of last avail page (end of kernel AS) */ vm_offset_t pmap_curmaxkvaddr; @@ -3397,8 +3396,11 @@ npte |= L2_TYPE_INV; } - if (prot & VM_PROT_WRITE) + if (prot & VM_PROT_WRITE) { npte |= L2_S_PROT_W; + if (m != NULL) + vm_page_flag_set(m, PG_WRITEABLE); + } npte |= pte_l2_s_cache_mode; if (m && m == opg) { /* ==== //depot/projects/smpng/sys/arm/at91/kb920x_machdep.c#12 (text) ==== @@ -48,7 +48,7 @@ #include "opt_at91.h" #include -__FBSDID("$FreeBSD: src/sys/arm/at91/kb920x_machdep.c,v 1.18 2006/10/26 21:42:17 jb Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/kb920x_machdep.c,v 1.19 2006/11/11 20:57:52 alc Exp $"); #define _ARM32_BUS_DMA_PRIVATE #include @@ -129,7 +129,6 @@ vm_paddr_t phys_avail[10]; vm_paddr_t dump_avail[4]; vm_offset_t physical_pages; -vm_offset_t clean_sva, clean_eva; struct pv_addr systempage; struct pv_addr msgbufpv; @@ -496,7 +495,6 @@ /* Do basic tuning, hz etc */ init_param1(); init_param2(physmem); - avail_end = KERNPHYSADDR + memsize - 1; kdb_init(); return ((void *)(kernelstack.pv_va + USPACE_SVC_STACK_TOP - sizeof(struct pcb))); ==== //depot/projects/smpng/sys/arm/include/pmap.h#20 (text+ko) ==== @@ -44,7 +44,7 @@ * from: @(#)pmap.h 7.4 (Berkeley) 5/12/91 * from: FreeBSD: src/sys/i386/include/pmap.h,v 1.70 2000/11/30 * - * $FreeBSD: src/sys/arm/include/pmap.h,v 1.21 2006/11/07 22:36:56 cognet Exp $ + * $FreeBSD: src/sys/arm/include/pmap.h,v 1.23 2006/11/13 06:26:56 ru Exp $ */ #ifndef _MACHINE_PMAP_H_ @@ -170,7 +170,7 @@ /* * For each vm_page_t, there is a list of all currently valid virtual - * mappings of that page. An entry is a pv_entry_t, the list is pv_table. + * mappings of that page. An entry is a pv_entry_t, the list is pv_list. */ typedef struct pv_entry { pmap_t pv_pmap; /* pmap where mapping lies */ @@ -213,9 +213,6 @@ return (ptep); } -extern vm_offset_t avail_end; -extern vm_offset_t clean_eva; -extern vm_offset_t clean_sva; extern vm_offset_t phys_avail[]; extern vm_offset_t virtual_avail; extern vm_offset_t virtual_end; ==== //depot/projects/smpng/sys/arm/sa11x0/assabet_machdep.c#13 (text+ko) ==== @@ -47,7 +47,7 @@ #include -__FBSDID("$FreeBSD: src/sys/arm/sa11x0/assabet_machdep.c,v 1.19 2006/10/26 21:42:17 jb Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/sa11x0/assabet_machdep.c,v 1.20 2006/11/11 20:57:52 alc Exp $"); #include "opt_md.h" @@ -146,7 +146,6 @@ vm_paddr_t physical_end; vm_paddr_t physical_freestart; vm_offset_t physical_pages; -vm_offset_t clean_sva, clean_eva; struct pv_addr systempage; struct pv_addr irqstack; @@ -455,7 +454,6 @@ init_param1(); init_param2(physmem); kdb_init(); - avail_end = 0xc0000000 + memsize - 1; return ((void *)(kernelstack.pv_va + USPACE_SVC_STACK_TOP - sizeof(struct pcb))); } ==== //depot/projects/smpng/sys/boot/arm/at91/Makefile#2 (text) ==== @@ -1,5 +1,5 @@ -# $FreeBSD: src/sys/boot/arm/at91/Makefile,v 1.2 2006/04/21 06:43:32 imp Exp $ +# $FreeBSD: src/sys/boot/arm/at91/Makefile,v 1.3 2006/11/09 20:45:21 imp Exp $ -SUBDIR= libat91 boot0 boot0iic boot0spi bootiic bootspi +SUBDIR= libat91 boot0 boot0iic boot0spi boot2 bootiic bootspi .include ==== //depot/projects/smpng/sys/boot/arm/at91/Makefile.inc#4 (text) ==== @@ -1,11 +1,14 @@ -# $FreeBSD: src/sys/boot/arm/at91/Makefile.inc,v 1.4 2006/10/21 22:51:20 imp Exp $ +# $FreeBSD: src/sys/boot/arm/at91/Makefile.inc,v 1.5 2006/11/09 19:58:14 imp Exp $ .if !target(__at91_boot_Makefile.inc__) .PATH: ${.CURDIR}/../../../../libkern ${.CURDIR}/../../../../libkern/arm __at91_boot_Makefile.inc__: -CFLAGS=-O2 -mcpu=arm9 -ffreestanding \ +# tsc, kb920x are the supported flavors +BOOT_FLAVOR=kb920x + +CFLAGS=-Os -mcpu=arm9 -ffreestanding \ -I${.CURDIR}/../libat91 \ -I${.CURDIR}/../../../.. \ -I${.CURDIR}/../../../../arm \ @@ -13,13 +16,12 @@ -Wall -Waggregate-return \ -Wnested-externs \ -Wpointer-arith -Wshadow -Wwrite-strings \ - -Werror -# -Wmissing-prototypes -# -Wmissing-declarations + -Werror \ + -Wmissing-prototypes \ + -Wmissing-declarations # -Wstrict-prototypes -#CFLAGS+=-DBOOT_TSC -CFLAGS+=-DBOOT_KB9202 +CFLAGS+=-DBOOT_${BOOT_FLAVOR:U} LIBAT91=${.OBJDIR}/../libat91/libat91.a ==== //depot/projects/smpng/sys/boot/arm/at91/boot0iic/main.c#3 (text) ==== @@ -21,7 +21,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/boot/arm/at91/boot0iic/main.c,v 1.2 2006/08/16 23:14:52 imp Exp $ + * $FreeBSD: src/sys/boot/arm/at91/boot0iic/main.c,v 1.3 2006/11/09 19:55:25 imp Exp $ */ #include "at91rm9200.h" @@ -36,8 +36,8 @@ while (xmodem_rx(addr) == -1) continue; InitEEPROM(); - printf("Writing EEPROM from 0x%x to addr 0\r\n", addr); + printf("Writing EEPROM from 0x%x to addr 0\n", addr); WriteEEPROM(0, addr, 8192); - printf("Write complete. Press reset\r\n"); + printf("Write complete. Press reset\n"); return (1); } ==== //depot/projects/smpng/sys/boot/arm/at91/boot2/Makefile#2 (text+ko) ==== @@ -1,16 +1,22 @@ -# $FreeBSD: src/sys/boot/arm/at91/boot2/Makefile,v 1.1 2006/10/20 09:12:05 imp Exp $ +# $FreeBSD: src/sys/boot/arm/at91/boot2/Makefile,v 1.2 2006/11/09 20:07:26 imp Exp $ -.PATH: ${.CURDIR}/../bootspi +.PATH: ${.CURDIR}/../libat91 P=boot2 FILES=${P} -SRCS=arm_init.S boot2.c kb920x_board.c ee.c +SRCS=arm_init.S boot2.c ${BOOT_FLAVOR}_board.c NO_MAN= LDFLAGS=-e 0 -T ${.CURDIR}/../linker.cfg OBJS+= ${SRCS:N*.h:R:S/$/.o/g} .include +.if ${BOOT_FLAVOR} == "tsc" +SRCS+=ee.c +.endif +.if ${BOOT_FLAVOR} == "kb920x" +CFLAGS+=-DBOOT_IIC +.endif CFLAGS+= \ -I${.CURDIR}/../bootspi \ -I${.CURDIR}/../../../common \ ==== //depot/projects/smpng/sys/boot/arm/at91/boot2/boot2.c#2 (text+ko) ==== @@ -14,7 +14,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/arm/at91/boot2/boot2.c,v 1.1 2006/10/20 09:12:05 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/arm/at91/boot2/boot2.c,v 1.2 2006/11/09 20:07:26 imp Exp $"); #include #include @@ -30,6 +30,7 @@ #include "lib.h" #include "sd-card.h" #include "ee.h" +#include "board.h" #define RBX_ASKNAME 0x0 /* -a */ #define RBX_SINGLE 0x1 /* -s */ @@ -66,7 +67,7 @@ #define PATH_CONFIG "/boot.config" //#define PATH_KERNEL "/boot/kernel/kernel" -#define PATH_KERNEL "/kernel.gz.tramp" +#define PATH_KERNEL "/boot/kernel/kernel.gz.tramp" #define NOPT 5 @@ -141,9 +142,6 @@ } } -// Each board has to provide one of these. -void board_init(void); - int main(void) { ==== //depot/projects/smpng/sys/boot/arm/at91/boot2/kb920x_board.c#2 (text+ko) ==== @@ -1,11 +1,36 @@ +/*- + * Copyright (c) 2006 M. Warner Losh. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + #include -__FBSDID("$FreeBSD: src/sys/boot/arm/at91/boot2/kb920x_board.c,v 1.1 2006/10/20 09:12:05 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/arm/at91/boot2/kb920x_board.c,v 1.3 2006/11/09 20:08:46 imp Exp $"); #include #include "emac.h" #include "lib.h" -#include "ee.h" +#include "board.h" extern unsigned char mac[]; @@ -14,10 +39,10 @@ { uint32_t sig; sig = 0; - EERead(12 * 1024, (uint8_t *)&sig, sizeof(sig)); + ReadEEPROM(12 * 1024, (uint8_t *)&sig, sizeof(sig)); if (sig != 0xaa55aa55) return; - EERead(12 * 1024 + 4, mac, 6); + ReadEEPROM(12 * 1024 + 4, mac, 6); printf("MAC %x:%x:%x:%x:%x:%x\n", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); } @@ -30,6 +55,6 @@ void board_init(void) { - EEInit(); + InitEEPROM(); MacFromEE(); } ==== //depot/projects/smpng/sys/boot/arm/at91/bootiic/Makefile#3 (text) ==== @@ -1,4 +1,6 @@ -# $FreeBSD: src/sys/boot/arm/at91/bootiic/Makefile,v 1.3 2006/08/10 19:55:52 imp Exp $ +# $FreeBSD: src/sys/boot/arm/at91/bootiic/Makefile,v 1.4 2006/11/09 20:23:51 imp Exp $ + +.PATH: ${.CURDIR}/../libat91 P=bootiic FILES=${P} @@ -8,3 +10,5 @@ OBJS+= ${SRCS:N*.h:R:S/$/.o/g} .include + +CFLAGS += -DBOOT_IIC ==== //depot/projects/smpng/sys/boot/arm/at91/bootspi/Makefile#4 (text) ==== @@ -1,4 +1,6 @@ -# $FreeBSD: src/sys/boot/arm/at91/bootspi/Makefile,v 1.4 2006/10/21 22:51:21 imp Exp $ +# $FreeBSD: src/sys/boot/arm/at91/bootspi/Makefile,v 1.5 2006/11/09 20:45:22 imp Exp $ + +.PATH: ${.CURDIR}/../libat91 P=bootspi FILES=${P} ==== //depot/projects/smpng/sys/boot/arm/at91/libat91/Makefile#5 (text) ==== @@ -1,12 +1,12 @@ -# $FreeBSD: src/sys/boot/arm/at91/libat91/Makefile,v 1.6 2006/10/20 16:57:30 imp Exp $ +# $FreeBSD: src/sys/boot/arm/at91/libat91/Makefile,v 1.7 2006/11/09 20:32:36 imp Exp $ .include "${.CURDIR}/../Makefile.inc" LIB= at91 INTERNALLIB= -SRCS=at91rm9200_lowlevel.c delay.c eeprom.c emac.c emac_init.c getc.c \ +SRCS=at91rm9200_lowlevel.c delay.c eeprom.c emac.c emac_init.c fpga.c getc.c \ putchar.c printf.c reset.c spi_flash.c xmodem.c \ - sd-card.c mci_device.c strcvt.c strlen.c strcmp.c memcpy.c strcpy.c \ + sd-card.c strcvt.c strlen.c strcmp.c memcpy.c strcpy.c \ memset.c memcmp.c SRCS+=ashldi3.c divsi3.S NO_MAN= ==== //depot/projects/smpng/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.c#3 (text) ==== @@ -24,7 +24,7 @@ * This software is derived from software provide by Kwikbyte who specifically * disclaimed copyright on the code. * - * $FreeBSD: src/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.c,v 1.3 2006/10/20 09:12:05 imp Exp $ + * $FreeBSD: src/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.c,v 1.4 2006/11/09 20:32:36 imp Exp $ */ #include "at91rm9200.h" @@ -53,7 +53,6 @@ register unsigned value; volatile sdram_size_t *p = (sdram_size_t *)SDRAM_BASE; -#if 0 #ifdef BOOT_TSC // For the TSC board, we turn ON the one LED we have while // early in boot. @@ -61,6 +60,15 @@ AT91C_BASE_PIOC->PIO_OER = AT91C_PIO_PC10; AT91C_BASE_PIOC->PIO_CODR = AT91C_PIO_PC10; #endif + +#ifdef BOOT_KB920X + AT91C_BASE_PIOC->PIO_PER = AT91C_PIO_PC18 | AT91C_PIO_PC19 | + AT91C_PIO_PC20; + AT91C_BASE_PIOC->PIO_OER = AT91C_PIO_PC18 | AT91C_PIO_PC19 | + AT91C_PIO_PC20; + AT91C_BASE_PIOC->PIO_SODR = AT91C_PIO_PC18 | AT91C_PIO_PC19 | + AT91C_PIO_PC20; + AT91C_BASE_PIOC->PIO_CODR = AT91C_PIO_PC18; #endif // configure clocks @@ -100,7 +108,7 @@ while (!(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY)) continue; -#ifdef BOOT_KB9202 +#ifdef BOOT_KB920X // setup flash access (allow ample margin) // 9 wait states, 1 setup, 1 hold, 1 float for 8-bit device ((AT91PS_SMC2)AT91C_BASE_SMC2)->SMC2_CSR[0] = ==== //depot/projects/smpng/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.h#3 (text) ==== @@ -21,7 +21,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.h,v 1.2 2006/08/10 17:59:22 imp Exp $ + * $FreeBSD: src/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.h,v 1.3 2006/11/09 20:32:36 imp Exp $ */ #ifndef _AT91RM9200_LOWLEVEL_H_ @@ -31,7 +31,7 @@ #define SDRAM_BASE 0x20000000 -#ifdef BOOT_KB9202 +#ifdef BOOT_KB920X /* The following divisor sets PLLA frequency: e.g. 10/5 * 90 = 180MHz */ #define OSC_MAIN_FREQ_DIV 5 /* for 10MHz osc */ #define SDRAM_WIDTH AT91C_SDRC_DBW_16_BITS ==== //depot/projects/smpng/sys/boot/arm/at91/libat91/emac.c#5 (text) ==== @@ -19,7 +19,7 @@ * only. * END_BLOCK * - * $FreeBSD: src/sys/boot/arm/at91/libat91/emac.c,v 1.4 2006/10/20 09:12:05 imp Exp $ + * $FreeBSD: src/sys/boot/arm/at91/libat91/emac.c,v 1.5 2006/11/09 20:32:36 imp Exp $ ******************************************************************************/ #include "at91rm9200.h" @@ -384,7 +384,7 @@ unsigned sec; int i; #endif -#ifdef BOOT_KB9202 +#ifdef BOOT_KB920X stat2 = AT91F_MII_ReadPhy(pEmac, MII_STS2_REG); if (!(stat2 & MII_STS2_LINK)) return ; ==== //depot/projects/smpng/sys/boot/arm/at91/libat91/emac.h#5 (text) ==== @@ -17,7 +17,7 @@ * only. * END_BLOCK * - * $FreeBSD: src/sys/boot/arm/at91/libat91/emac.h,v 1.4 2006/10/20 09:12:05 imp Exp $ + * $FreeBSD: src/sys/boot/arm/at91/libat91/emac.h,v 1.5 2006/11/09 20:32:36 imp Exp $ *****************************************************************************/ @@ -114,7 +114,7 @@ /* MII registers definition */ #define MII_STS_REG 0x01 #define MII_STS_LINK_STAT 0x04 -#ifdef BOOT_KB9202 +#ifdef BOOT_KB920X #define MII_STS2_REG 0x11 #define MII_STS2_LINK 0x400 #define MII_STS2_100TX 0x4000 ==== //depot/projects/smpng/sys/boot/arm/at91/libat91/emac_init.c#3 (text+ko) ==== >>> TRUNCATED FOR MAIL (1000 lines) <<<