NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

port-macppc/48600: Add support for powermac 7200/PPC 601



>Number:         48600
>Category:       port-macppc
>Synopsis:       Add support for powermac 7200/PPC 601
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    port-macppc-maintainer
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Sun Feb 16 19:35:00 +0000 2014
>Originator:     scole_mail
>Release:        current
>Organization:
>Environment:
NetBSD pmac 6.99.31 NetBSD 6.99.31 (GENERIC-$Revision: 1.311 $) #41: Sat Feb 15 
19:12:03 MST 2014
>Description:
I've attached the patches used to get my powermac 7200/90Mhz ppc601 to
boot multiuser, for serial console only.  The machine I have doesn't
have working floppy/cdrom/hard-disk, so I only tested with nfs root.

These changes seem pretty stable; I'm able to ssh and compile pkgsrc
packages with crashing or noticable issues.

The main issues I had related to the 601
 1) segment registers, especially reg 0xf - trying to set this to certain 
values or clearing seemed to wedge machine.  So I did't modify until in pmap.c 
and only when it seemed required

 2) Use rtc realtime register instead of timebase register, which 601 doesn't 
have.  It's possible I may have missed some asm calls to mftb/mttb

 3) alignment exceptions - the 601 will throw alignment exceptions if operands 
cross page boundaries.   I updated trap.c to handle that, and  changed memcpy.S 
to always use byte-copy (not word-copy) when in kernel.  There may be a more 
optimal way to handle. Also, I'm not that familiar with other powerpc's, so my 
handler changes may need tweaking for other cpus

  4) use CPUFLAGS+= -mcpu=601.  Also, the kernel apparently has to be  < 4M to 
netboot

  5) /platinum video - video console is not working. I'm not that familar with 
this area, but I'll be glad to test any changes

Here is list of files I changed, those with (*) are new:
 src/common/lib/libc/arch/powerpc/string/memcpy.S
 src/sys/arch/macppc/conf/GENERIC_601*
 src/sys/arch/macppc/conf/std.macppc.601*
 src/sys/arch/macppc/stand/ofwboot/Locore.c
 src/sys/arch/powerpc/include/cpu.h
 src/sys/arch/powerpc/include/trap.h
 src/sys/arch/powerpc/oea/oea_machdep.c
 src/sys/arch/powerpc/oea/ofwoea_machdep.c
 src/sys/arch/powerpc/oea/pmap.c
 src/sys/arch/powerpc/powerpc/clock.c
 src/sys/arch/powerpc/powerpc/trap.c
 src/sys/arch/powerpc/powerpc/fixup.c

These 2 mail threads were useful in getting started...
 http://mail-index.netbsd.org/port-macppc/2005/04/22/0004.html
 http://mail-index.netbsd.org/port-macppc/2008/09/28/msg000422.html
-----------------------------------------------------------------------
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
    The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 6.99.31 (GENERIC-$Revision: 1.311 $) #41: Sat Feb 15 19:12:03 MST 2014
        scole@dstar:/home/scole/nbsd/src/sys/arch/macppc/compile/obj/GENERIC_601
total memory = 256 MB
avail memory = 244 MB
timecounter: Timecounters tick every 10.000 msec
found Grand Central PIC at f3000000
bootpath: enet/netbsd
mainbus0 (root)
cpu0 at mainbus0: 601 (Revision 2), ID 0 (primary)
cpu0: HID0 0x818100a0<CE,BA,BD,ES,EIU,DRF>, powersave: -1
memory0 at mainbus0
bandit0 at mainbus0
pci0 at bandit0 bus 0
pci0: i/o space, memory space enabled
pchb0 at pci0 dev 11 function 0
WARNING: module error: vfs load failed for `pciverbose', error 45
WARNING: module error: vfs load failed for `pciverbose', error 45
pchb0: vendor 0x106b product 0x0001 (rev. 0x03)
obio0 at pci0 dev 16 function 0: addr 0xf3000000
esp0 at obio0 offset 0x10000 irq 12: NCR53C94, 25MHz, SCSI ID 7
scsibus0 at esp0: 8 targets, 8 luns per target
mc0 at obio0 offset 0x11000: irq 14,2,3: address 00:a0:40:02:bb:b5
zsc0 at obio0 irq 15,16
zstty0 at zsc0 channel 0 (console i/o)
zstty1 at zsc0 channel 1
awacs at obio0 offset 0x14000 not configured
swim3 at obio0 offset 0x15000 not configured
cuda0 at obio0 offset 0x16000 irq 18
nadb0 at cuda0: Apple Desktop Bus
iic0 at cuda0: I2C bus
nvram0 at obio0 offset 0x1d000
vmmask 7e000000 schedmask 7e000000 highmask 7e000000
timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
timecounter: Timecounter "rtc" frequency 1000000000 Hz quality 100
scsibus0: waiting 2 seconds for devices to settle...
adbkbd0 at nadb0 addr 2: extended keyboard
wskbd0 at adbkbd0 mux 1
cd0 at scsibus0 target 3 lun 0: <SONY, CD-ROM CDU-8005, 1.0j> cdrom removable
cd0: sync (200.00ns offset 15), 8-bit (5.000MB/s) transfers
boot device: mc0
root on mc0
mountroot: trying nfs...
nfs_boot: trying DHCP/BOOTP
nfs_boot: DHCP next-server: 192.168.0.3
nfs_boot: my_name=macppc
nfs_boot: my_addr=192.168.0.99
nfs_boot: my_mask=255.255.255.0
nfs_boot: gateway=192.168.0.1
root on 192.168.0.3:/export/client/root
root time: 0x53000def
root file system type: nfs
init: copying out path `/sbin/init' 11
192.168.0.3:/export/client/root: inaccurate wcc data (ctime) detected, 
disabling wcc (ctime 1392563376.000000000)
short packet len=2
short packet len=2
short packet len=2
Kernel RNG "sysctl" runs test FAILURE: too many runs of 1 0s (2712 > 2685)
cprng sysctl: failed statistical RNG test

NetBSD/macppc (pmac) (ttyZ0)

login: root
Password:
Feb 16 11:37:59 pmac login: ROOT LOGIN (root) on tty ttyZ0
Last login: Sun Feb 16 11:34:22 2014 on ttyZ0
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
    The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 6.99.31 (GENERIC-$Revision: 1.311 $) #41: Sat Feb 15 19:12:03 MST 2014

Welcome to NetBSD!

This system is running a development snapshot of the NetBSD operating system,
also known as NetBSD-current.  It is very possible that it has serious bugs,
regressions, broken features or other problems.  Please bear this in mind
and use the system with care.

You are encouraged to test this version as thoroughly as possible.  Should you
encounter any problem, please report it back to the development team using the
send-pr(1) utility (requires a working MTA).  If yours is not properly set up,
use the web interface at: http://www.NetBSD.org/support/send-pr.html

Thank you for helping us test and improve NetBSD.

You have new mail.
Terminal type is vt100.                                                 
We recommend that you create a non-root account and use su(1) for root access.
pmac# uname -a
NetBSD pmac 6.99.31 NetBSD 6.99.31 (GENERIC-$Revision: 1.311 $) #41: Sat Feb 15 
19:12:03 MST 2014
===================================================================
===================================================================
===================================================================
===================================================================
===================================================================


Index: common/lib/libc/arch/powerpc/string/memcpy.S
===================================================================
RCS file: /cvsroot/src/common/lib/libc/arch/powerpc/string/memcpy.S,v
retrieving revision 1.3
diff -b -u -r1.3 memcpy.S
--- common/lib/libc/arch/powerpc/string/memcpy.S        15 Jan 2011 07:31:12 
-0000      1.3
+++ common/lib/libc/arch/powerpc/string/memcpy.S        16 Feb 2014 18:18:48 
-0000
@@ -63,6 +63,32 @@
        cmpwi   %r5,0
        beqlr-
 
+#if defined(_KERNEL)  /* XXX - " && defined(__ppc601__)" ? */
+       /*
+       * 601 will generate alignment exceptions if operand crosses
+        * 4k page boundary, so do byte copy when exception handler
+        * not available.  Maybe want to have a different memcpy for 601
+        * that checks for page boundaries/word alignment...
+        */
+       mfspr   %r6, 287                /* mfpvbr %r6 PVR = 287       */
+       srwi    %r6, %r6, 0x10          /* get version field from PVR */
+       cmpwi   %r6, 0x1                /* 601 CPU = 0x0001           */
+       bne     bnorm                   /* skip byte-only unless 601  */
+
+bcpy:
+       mtctr   %r5                     /* byte copy everything */
+       li      %r6, 0
+bloop:         
+       lbzx    %r7, %r4, %r6
+       stbx    %r7, %r3, %r6
+       addi    %r6, %r6, 1
+       bdnz    bloop
+       blr
+
+bnorm:
+
+#endif 
+
        mr      %r8, %r3                /* Copy dst (return value)      */
 
        addi    %r4, %r4, -4            /* Prepare for main loop's auto */
Index: sys/arch/macppc/stand/ofwboot/Locore.c
===================================================================
RCS file: /cvsroot/src/sys/arch/macppc/stand/ofwboot/Locore.c,v
retrieving revision 1.24
diff -b -u -r1.24 Locore.c
--- sys/arch/macppc/stand/ofwboot/Locore.c      17 Jul 2011 20:54:43 -0000      
1.24
+++ sys/arch/macppc/stand/ofwboot/Locore.c      16 Feb 2014 18:20:17 -0000
@@ -69,6 +69,12 @@
 "      mtmsr   %r0             \n"
 "      isync                   \n"
 "                              \n"
+"                              \n" /* test for 601 */
+"       mfspr   %r0,287        \n" /* mfpvbr %r0 PVR = 287 */
+"       srwi    %r0,%r0,0x10           \n"
+"       cmpi    0,1,%r0,0x02   \n" /* 601 CPU = 0x0001 */
+"       blt     1f             \n" /* skip over non-601 BAT setup */
+       /*non PPC 601 BATs*/
 "      mtibatu 0,%r0           \n"
 "      mtibatu 1,%r0           \n"
 "      mtibatu 2,%r0           \n"
@@ -84,7 +90,41 @@
 "      li      %r9,0x1ffe      \n"     /* BATU(0, BAT_BL_256M, BAT_Vs) */
 "      mtibatu 0,%r9           \n"
 "      mtdbatu 0,%r9           \n"
-"      isync                   \n"
+"      b 2f                    \n"
+
+       /* PPC 601 BATs*/
+"1:    mtibatu 0,%r0           \n"
+"              mtibatu 1,%r0           \n"
+"              mtibatu 2,%r0           \n"
+"              mtibatu 3,%r0           \n"
+"                                      \n"
+"              li      %r9,0x7f        \n"
+"              mtibatl 0,%r9           \n"
+"              li      %r9,0x1a        \n"
+"              mtibatu 0,%r9           \n"
+"                              \n"
+"              lis %r9,0x80            \n"
+"              addi %r9,%r9,0x7f       \n"
+"              mtibatl 1,%r9           \n"
+"              lis %r9,0x80            \n"
+"              addi %r9,%r9,0x1a       \n"
+"              mtibatu 1,%r9           \n"
+"                              \n"
+"              lis %r9,0x100           \n"
+"              addi %r9,%r9,0x7f       \n"
+"              mtibatl 2,%r9           \n"
+"              lis %r9,0x100           \n"
+"              addi %r9,%r9,0x1a       \n"
+"              mtibatu 2,%r9           \n"
+"                              \n"
+"              lis %r9,0x180           \n"
+"              addi %r9,%r9,0x7f       \n"
+"              mtibatl 3,%r9           \n"
+"      lis %r9,0x180           \n"
+"              addi %r9,%r9,0x1a       \n"
+"              mtibatu 3,%r9           \n"
+"                              \n"
+"2:    isync                   \n"
 "                              \n"
 "      mtmsr   %r8             \n"
 "      isync                   \n"
Index: sys/arch/powerpc/include/cpu.h
===================================================================
RCS file: /cvsroot/src/sys/arch/powerpc/include/cpu.h,v
retrieving revision 1.98
diff -b -u -r1.98 cpu.h
--- sys/arch/powerpc/include/cpu.h      8 Nov 2013 03:59:35 -0000       1.98
+++ sys/arch/powerpc/include/cpu.h      16 Feb 2014 18:21:18 -0000
@@ -316,6 +316,26 @@
            : [rtcu] "=r"(rtcp[0]), [rtcl] "=r"(rtcp[1]), [tmp] "=r"(tmp)
            :: "cr0");
 }
+
+static __inline uint64_t
+rtc_nanosecs(void)
+{
+    /* 
+     * 601 RTC/DEC registers share clock of 7.8125 MHz, 128 ns per tick.
+     * DEC has max of 25 bits, FFFFFF => 2.14748352 seconds.
+     * RTCU is seconds, 32 bits.
+     * RTCL is nano-seconds, 23 bit counter from 0 - 999,999,872 (999,999,999 
- 128 ns)
+     */
+    uint64_t cycles;
+    uint32_t tmp[2];
+
+    mfrtc(tmp);
+
+    cycles = tmp[0] * 1000000000;
+    cycles += (tmp[1] >> 7);
+
+    return cycles;
+}
 #endif /* !_MODULE */
 
 static __inline uint32_t
Index: sys/arch/powerpc/include/trap.h
===================================================================
RCS file: /cvsroot/src/sys/arch/powerpc/include/trap.h,v
retrieving revision 1.12
diff -b -u -r1.12 trap.h
--- sys/arch/powerpc/include/trap.h     18 Jul 2012 16:44:52 -0000      1.12
+++ sys/arch/powerpc/include/trap.h     16 Feb 2014 18:21:38 -0000
@@ -47,7 +47,8 @@
 #define        EXC_TRC         0x0d00          /* Trace */
 #define        EXC_FPA         0x0e00          /* Floating-point Assist */
 
-/* The following is only available on the 601: */
+/* The following are only available on the 601: */
+#define EXC_IOC         0x0a00          /* I/O Controller Interface Exception 
*/
 #define        EXC_RUNMODETRC  0x2000          /* Run Mode/Trace Exception */
 
 /* The following are only available on 7400(G4): */
@@ -112,12 +113,78 @@
  */
 
 #define EXC_ALI_OPCODE_INDICATOR(dsisr) ((dsisr >> 10) & 0x7f)
+
+#define EXC_ALI_LWARX_LWZ  0x00
+#define EXC_ALI_LDARX      0x01
+#define EXC_ALI_STW        0x02
+#define EXC_ALI_LHZ        0x04
+#define EXC_ALI_LHA        0x05
+#define EXC_ALI_STH        0x06
+#define EXC_ALI_LMW        0x07
+#define EXC_ALI_LFS        0x08
 #define EXC_ALI_LFD    0x09
+#define EXC_ALI_STFS       0x0a
 #define EXC_ALI_STFD   0x0b
+#define EXC_ALI_LD_LDU_LWA 0x0d
+#define EXC_ALI_STD_STDU   0x0f
+#define EXC_ALI_LWZU       0x10
+#define EXC_ALI_STWU       0x12
+#define EXC_ALI_LHZU       0x14
+#define EXC_ALI_LHAU       0x15
+#define EXC_ALI_STHU       0x16
+#define EXC_ALI_STMW       0x17
+#define EXC_ALI_LFSU       0x18
+#define EXC_ALI_LFDU       0x19
+#define EXC_ALI_STFSU      0x1a
+#define EXC_ALI_STFDU      0x1b
+#define EXC_ALI_LDX        0x20
+#define EXC_ALI_STDX       0x22
+#define EXC_ALI_LWAX       0x25
+#define EXC_ALI_LSWX       0x28
+#define EXC_ALI_LSWI       0x29
+#define EXC_ALI_STSWX      0x2a
+#define EXC_ALI_STSWI      0x2b
+#define EXC_ALI_LDUX       0x30
+#define EXC_ALI_STDUX      0x32
+#define EXC_ALI_LWAUX      0x35
+#define EXC_ALI_STWCX      0x42  /* stwcx. */
+#define EXC_ALI_STDCX      0x43  /* stdcx. */
+#define EXC_ALI_LWBRX      0x48
+#define EXC_ALI_STWBRX     0x4a
+#define EXC_ALI_LHBRX      0x4c
+#define EXC_ALI_STHBRX     0x4e
+#define EXC_ALI_ECIWX      0x54
+#define EXC_ALI_ECOWX      0x56
 #define EXC_ALI_DCBZ   0x5f
+#define EXC_ALI_LWZX       0x60
+#define EXC_ALI_STWX       0x62
+#define EXC_ALI_LHZX       0x64
+#define EXC_ALI_LHAX       0x65
+#define EXC_ALI_STHX       0x66
+#define EXC_ALI_LSFX       0x68
+#define EXC_ALI_LDFX       0x69
+#define EXC_ALI_STFSX      0x6a
+#define EXC_ALI_STFDX      0x6b
+#define EXC_ALI_STFIWX     0x6f
+#define EXC_ALI_LWZUX      0x70
+#define EXC_ALI_STWUX      0x72
+#define EXC_ALI_LHZUX      0x74
+#define EXC_ALI_LHAUX      0x75
+#define EXC_ALI_STHUX      0x76
+#define EXC_ALI_LFSUX      0x78
+#define EXC_ALI_LFDUX      0x79
+#define EXC_ALI_STFSUX     0x7a
+#define EXC_ALI_STFDUX     0x7b
 
 /* Macros to extract register information */
 #define EXC_ALI_RST(dsisr) ((dsisr >> 5) & 0x1f)   /* source or target */
 #define EXC_ALI_RA(dsisr) (dsisr & 0x1f)
 
+/* Helper defines to classify EXC_ALI_ */
+#define DSI_OP_ZERO      0x0001
+#define DSI_OP_UPDATE    0x0002
+#define DSI_OP_INDEXED   0x0004
+#define DSI_OP_ALGEBRAIC 0x0008
+#define DSI_OP_REVERSED  0x0010
+
 #endif /* _POWERPC_TRAP_H_ */
Index: sys/arch/powerpc/oea/oea_machdep.c
===================================================================
RCS file: /cvsroot/src/sys/arch/powerpc/oea/oea_machdep.c,v
retrieving revision 1.68
diff -b -u -r1.68 oea_machdep.c
--- sys/arch/powerpc/oea/oea_machdep.c  3 Nov 2013 22:27:27 -0000       1.68
+++ sys/arch/powerpc/oea/oea_machdep.c  16 Feb 2014 18:22:05 -0000
@@ -496,9 +496,16 @@
         * in pmap_bootstrap().
         */
        iosrtable[i] = SR601(SR601_Ks, SR601_BUID_MEMFORCED, 0, i);
+
+       /*
+        * XXX Setting segment register 0xf on my powermac 7200
+        * wedges machine so set later in pmap.c
+        */
+       /*
        __asm volatile ("mtsrin %0,%1"
            ::  "r"(iosrtable[i]),
                "r"(pa));
+       */
 }
 #endif /* PPC_OEA601 */
  
Index: sys/arch/powerpc/oea/ofwoea_machdep.c
===================================================================
RCS file: /cvsroot/src/sys/arch/powerpc/oea/ofwoea_machdep.c,v
retrieving revision 1.35
diff -b -u -r1.35 ofwoea_machdep.c
--- sys/arch/powerpc/oea/ofwoea_machdep.c       3 Nov 2013 22:27:27 -0000       
1.35
+++ sys/arch/powerpc/oea/ofwoea_machdep.c       16 Feb 2014 18:22:26 -0000
@@ -63,6 +63,7 @@
 #include <powerpc/oea/bat.h>
 #include <powerpc/oea/ofw_rasconsvar.h>
 #include <powerpc/oea/cpufeat.h>
+#include <powerpc/include/oea/spr.h>
 #include <powerpc/ofw_cons.h>
 #include <powerpc/spr.h>
 #include <powerpc/pic/picvar.h>
@@ -120,6 +121,11 @@
 #if NKSYMS || defined(DDB) || defined(MODULAR)
 void *startsym, *endsym;
 #endif
+
+#if PPC_OEA601
+#define TIMEBASE_FREQ (1000000000)  /* RTC register */
+#endif
+
 #ifdef TIMEBASE_FREQ
 u_int timebase_freq = TIMEBASE_FREQ;
 #else
@@ -334,7 +340,14 @@
        ns_per_tick = 1000000000 / ticks_per_sec;
        ticks_per_intr = ticks_per_sec / hz;
        cpu_timebase = ticks_per_sec;
+
+#ifdef PPC_OEA601
+       if ((mfpvr() >> 16) == MPC601)
+           curcpu()->ci_lasttb = rtc_nanosecs();
+       else
+#endif
        curcpu()->ci_lasttb = mftbl();
+
        mtspr(SPR_DEC, ticks_per_intr);
        mtmsr(msr);
 }
@@ -457,6 +470,24 @@
        /*
         * cover PCI and register space but not the firmware ROM
         */
+#ifdef PPC_OEA601
+
+        /*
+        * use segment registers for the 601
+        */
+       if ((mfpvr() >> 16 ) == MPC601)
+           oea_batinit(
+               0x80000000, BAT_BL_256M,
+               0x90000000, BAT_BL_256M,
+               0xa0000000, BAT_BL_256M,
+               0xb0000000, BAT_BL_256M,
+               0xf0000000, BAT_BL_256M,
+               0);
+       else
+#endif
+       /*
+        * map to bats
+        */
        oea_batinit(0x80000000, BAT_BL_1G,
                    0xf0000000, BAT_BL_128M,
                    0xf8000000, BAT_BL_64M,
Index: sys/arch/powerpc/oea/pmap.c
===================================================================
RCS file: /cvsroot/src/sys/arch/powerpc/oea/pmap.c,v
retrieving revision 1.90
diff -b -u -r1.90 pmap.c
--- sys/arch/powerpc/oea/pmap.c 3 Nov 2013 22:15:57 -0000       1.90
+++ sys/arch/powerpc/oea/pmap.c 16 Feb 2014 18:22:56 -0000
@@ -3403,6 +3403,11 @@
 /* PMAP_OEA64_BRIDGE does support these instructions */
 #if defined (PMAP_OEA) || defined (PMAP_OEA64_BRIDGE)
        for (i = 0; i < 16; i++) {
+#if defined(PPC_OEA601)
+           /* XXX wedges for segment register 0xf , so set later */
+           if ((iosrtable[i] & SR601_T) && ((MFPVR() >> 16) == MPC601))
+                   continue;
+#endif
                pmap_kernel()->pm_sr[i] = KERNELN_SEGMENT(i)|SR_PRKEY;
                __asm volatile ("mtsrin %0,%1"
                              :: "r"(KERNELN_SEGMENT(i)|SR_PRKEY), "r"(i << 
ADDR_SR_SHFT));
@@ -3530,4 +3535,9 @@
                              :: "r"(sr), "r"(kernelstart));
        }
 #endif
+
+#if defined(PMAPDEBUG)
+       if ( pmapdebug )
+           pmap_print_mmuregs();
+#endif
 }
Index: sys/arch/powerpc/powerpc/clock.c
===================================================================
RCS file: /cvsroot/src/sys/arch/powerpc/powerpc/clock.c,v
retrieving revision 1.13
diff -b -u -r1.13 clock.c
--- sys/arch/powerpc/powerpc/clock.c    25 Apr 2013 00:11:35 -0000      1.13
+++ sys/arch/powerpc/powerpc/clock.c    16 Feb 2014 18:23:19 -0000
@@ -68,7 +68,11 @@
        0,                      /* no poll_pps */
        0x7fffffff,             /* counter_mask */
        0,                      /* frequency */
+#if PPC_OEA601
+       "rtc",                  /* name */
+#else
        "mftb",                 /* name */
+#endif
        100,                    /* quality */
        NULL,                   /* tc_priv */
        NULL                    /* tc_next */
@@ -88,8 +92,7 @@
        cpu_timebase = ticks_per_sec;
 #ifdef PPC_OEA601
        if ((mfpvr() >> 16) == MPC601)
-               __asm volatile 
-                   ("mfspr %0,%1" : "=r"(ci->ci_lasttb) : "n"(SPR_RTCL_R));
+               ci->ci_lasttb = rtc_nanosecs();
        else
 #endif
                __asm volatile ("mftb %0" : "=r"(ci->ci_lasttb));
@@ -154,8 +157,7 @@
                 */
 #ifdef PPC_OEA601
                if ((mfpvr() >> 16) == MPC601)
-                       __asm volatile 
-                           ("mfspr %0,%1" : "=r"(tb) : "n"(SPR_RTCL_R));
+                       tb = rtc_nanosecs();
                else
 #endif
                        __asm volatile ("mftb %0" : "=r"(tb));
@@ -241,7 +243,7 @@
                      : "=r"(msr), "=r"(scratch) : "K"((u_short)~PSL_EE));
 #ifdef PPC_OEA601
        if ((mfpvr() >> 16) == MPC601)
-               __asm volatile ("mfspr %0,%1" : "=r"(tb) : "n"(SPR_RTCL_R));
+               tb = rtc_nanosecs();
        else
 #endif
                __asm volatile ("mftb %0" : "=r"(tb));
Index: sys/arch/powerpc/powerpc/trap.c
===================================================================
RCS file: /cvsroot/src/sys/arch/powerpc/powerpc/trap.c,v
retrieving revision 1.148
diff -b -u -r1.148 trap.c
--- sys/arch/powerpc/powerpc/trap.c     2 Aug 2012 14:06:34 -0000       1.148
+++ sys/arch/powerpc/powerpc/trap.c     16 Feb 2014 18:23:34 -0000
@@ -77,6 +77,13 @@
 int badaddr(void *, size_t);
 int badaddr_read(void *, size_t, int *);
 
+struct dsi_info {
+    uint16_t indicator;
+    uint16_t flags;
+};
+
+static struct dsi_info* get_dsi_info(register_t);
+
 void
 trap(struct trapframe *tf)
 {
@@ -695,9 +702,12 @@
 static int
 fix_unaligned(struct lwp *l, struct trapframe *tf)
 {
-       int indicator = EXC_ALI_OPCODE_INDICATOR(tf->tf_dsisr);
+       struct dsi_info* dsi = get_dsi_info(tf->tf_dsisr);
+
+       if ( !dsi )
+           return -1;
 
-       switch (indicator) {
+       switch (dsi->indicator) {
        case EXC_ALI_DCBZ:
                {
                        /*
@@ -716,13 +726,18 @@
                                return -1;
                        return 0;
                }
+               break;
 
        case EXC_ALI_LFD:
-       case EXC_ALI_STFD:
+       case EXC_ALI_LFDU:
+       case EXC_ALI_LDFX:
+       case EXC_ALI_LFDUX:
                {
                        struct pcb * const pcb = lwp_getpcb(l);
                        const int reg = EXC_ALI_RST(tf->tf_dsisr);
+                       const int a_reg = EXC_ALI_RA(tf->tf_dsisr);
                        double * const fpreg = &pcb->pcb_fpu.fpreg[reg];
+                       register_t* a_reg_addr = &tf->tf_fixreg[a_reg];
 
                        /*
                         * Juggle the FPU to ensure that we've initialized
@@ -737,19 +752,260 @@
                        } else {
                                fpu_save();
                        }
-                       if (indicator == EXC_ALI_LFD) {
+
                                if (copyin((void *)tf->tf_dar, fpreg,
                                    sizeof(double)) != 0)
                                        return -1;
+
+                       if (dsi->flags & DSI_OP_INDEXED) {
+                           /* do nothing */
+                       }
+
+                       if (dsi->flags & DSI_OP_UPDATE) {
+                           /* this is valid for 601, but to simplify logic 
don't pass for any */
+                           if (a_reg == 0)
+                               return -1;
+                           else
+                               *a_reg_addr = tf->tf_dar;
+                       }
+
+                       fpu_load();
+                       return 0;
+               }
+               break;
+
+       case EXC_ALI_STFD:
+       case EXC_ALI_STFDU:
+       case EXC_ALI_STFDX:
+       case EXC_ALI_STFDUX:
+               {
+                       struct pcb * const pcb = lwp_getpcb(l);
+                       const int reg = EXC_ALI_RST(tf->tf_dsisr);
+                       const int a_reg = EXC_ALI_RA(tf->tf_dsisr);
+                       double * const fpreg = &pcb->pcb_fpu.fpreg[reg];
+                       register_t* a_reg_addr = &tf->tf_fixreg[a_reg];
+
+                       /*
+                        * Juggle the FPU to ensure that we've initialized
+                        * the FPRs, and that their current state is in
+                        * the PCB.
+                        */
+
+                       KASSERT(l == curlwp);
+                       if (!fpu_used_p(l)) {
+                               memset(&pcb->pcb_fpu, 0, sizeof(pcb->pcb_fpu));
+                               fpu_mark_used(l);
                        } else {
+                               fpu_save();
+                       }
+
                                if (copyout(fpreg, (void *)tf->tf_dar,
                                    sizeof(double)) != 0)
                                        return -1;
+
+                       if (dsi->flags & DSI_OP_INDEXED) {
+                           /* do nothing */
                        }
+
+                       if (dsi->flags & DSI_OP_UPDATE) {
+                           /* this is valid for 601, but to simplify logic 
don't pass for any */
+                           if (a_reg == 0)
+                               return -1;
+                           else
+                               *a_reg_addr = tf->tf_dar;
+                       }
+
                        fpu_load();
                        return 0;
                }
                break;
+
+       case EXC_ALI_LHZ:
+       case EXC_ALI_LHZU:
+       case EXC_ALI_LHZX:
+       case EXC_ALI_LHZUX:
+       case EXC_ALI_LHA:
+       case EXC_ALI_LHAU:
+       case EXC_ALI_LHAX:
+       case EXC_ALI_LHAUX:
+       case EXC_ALI_LHBRX:
+               {
+                   const register_t ea_addr = tf->tf_dar;
+                   const unsigned int t_reg = EXC_ALI_RST(tf->tf_dsisr);
+                   const unsigned int a_reg = EXC_ALI_RA(tf->tf_dsisr);
+                   register_t* t_reg_addr = &tf->tf_fixreg[t_reg];
+                   register_t* a_reg_addr = &tf->tf_fixreg[a_reg];
+
+                   /* load into lower 2 bytes of reg */
+                   if (copyin((void *)ea_addr,
+                              t_reg_addr+2,
+                              sizeof(uint16_t)) != 0)
+                       return -1;
+
+                   if (dsi->flags & DSI_OP_UPDATE) {
+                       /* this is valid for 601, but to simplify logic don't 
pass for any */
+                       if (a_reg == 0)
+                           return -1;
+                       else
+                           *a_reg_addr = ea_addr;
+                   }
+
+                   if (dsi->flags & DSI_OP_INDEXED) {
+                       /* do nothing , indexed address already in ea */
+                   }
+
+                   if (dsi->flags & DSI_OP_ZERO) {
+                       /* clear upper 2 bytes */
+                       *t_reg_addr &= 0x0000ffff;
+                   } else if (dsi->flags & DSI_OP_ALGEBRAIC) {
+                       /* sign extend upper 2 bytes */
+                       if (*t_reg_addr & 0x00008000)
+                           *t_reg_addr |= 0xffff0000;
+                       else
+                           *t_reg_addr &= 0x0000ffff;
+                   }
+
+                   if (dsi->flags & DSI_OP_REVERSED) {
+                       /* reverse lower 2 bytes */
+                       uint32_t temp = *t_reg_addr;
+
+                       *t_reg_addr = ((temp & 0x000000ff) << 8 ) |
+                                     ((temp & 0x0000ff00) >> 8 );
+                   }
+                   return 0;
+               }
+               break;
+
+       case EXC_ALI_STH:
+       case EXC_ALI_STHU:
+       case EXC_ALI_STHX:
+       case EXC_ALI_STHUX:
+       case EXC_ALI_STHBRX:
+               {
+                   const register_t ea_addr = tf->tf_dar;
+                   const unsigned int s_reg = EXC_ALI_RST(tf->tf_dsisr);
+                   const unsigned int a_reg = EXC_ALI_RA(tf->tf_dsisr);
+                   register_t* s_reg_addr = &tf->tf_fixreg[s_reg];
+                   register_t* a_reg_addr = &tf->tf_fixreg[a_reg];
+
+                   /* byte-reversed write out of lower 2 bytes */
+                   if (dsi->flags & DSI_OP_REVERSED) {
+                       uint16_t tmp = *s_reg_addr & 0xffff;
+                       tmp = bswap16(tmp);
+
+                       if (copyout(&tmp,
+                                   (void *)ea_addr,
+                                   sizeof(uint16_t)) != 0)
+                           return -1;
+                   }
+                   /* write out lower 2 bytes */
+                   else if (copyout(s_reg_addr+2,
+                                    (void *)ea_addr,
+                                    sizeof(uint16_t)) != 0) {
+                       return -1;
+                   }
+
+                   if (dsi->flags & DSI_OP_INDEXED) {
+                       /* do nothing, indexed address already in ea */
+                   }
+
+                   if (dsi->flags & DSI_OP_UPDATE) {
+                       /* this is valid for 601, but to simplify logic don't 
pass for any */
+                       if (a_reg == 0)
+                           return -1;
+                       else
+                           *a_reg_addr = ea_addr;
+                   }
+
+                   return 0;
+               }
+               break;
+
+       case EXC_ALI_LWARX_LWZ:
+       case EXC_ALI_LWZU:
+       case EXC_ALI_LWZX:
+       case EXC_ALI_LWZUX:
+       case EXC_ALI_LWBRX:
+               {
+                   const register_t ea_addr = tf->tf_dar;
+                   const unsigned int t_reg = EXC_ALI_RST(tf->tf_dsisr);
+                   const unsigned int a_reg = EXC_ALI_RA(tf->tf_dsisr);
+                   register_t* t_reg_addr = &tf->tf_fixreg[t_reg];
+                   register_t* a_reg_addr = &tf->tf_fixreg[a_reg];
+
+                   if (copyin((void *)ea_addr,
+                              t_reg_addr,
+                              sizeof(uint32_t)) != 0)
+                       return -1;
+
+                   if (dsi->flags & DSI_OP_UPDATE) {
+                       /* this is valid for 601, but to simplify logic don't 
pass for any */
+                       if (a_reg == 0)
+                           return -1;
+                       else
+                           *a_reg_addr = ea_addr;
+                   }
+
+                   if (dsi->flags & DSI_OP_INDEXED) {
+                       /* do nothing , indexed address already in ea */
+                   }
+
+                   if (dsi->flags & DSI_OP_ZERO) {
+                       /* XXX - 64bit clear upper word */
+                   }
+
+                   if (dsi->flags & DSI_OP_REVERSED) {
+                       /* reverse  bytes */
+                       register_t temp = bswap32(*t_reg_addr);
+                       *t_reg_addr = temp;
+                   }
+
+                   return 0;
+               }
+               break;
+
+       case EXC_ALI_STW:
+       case EXC_ALI_STWU:
+       case EXC_ALI_STWX:
+       case EXC_ALI_STWUX:
+       case EXC_ALI_STWBRX:
+               {
+                   const register_t ea_addr = tf->tf_dar;
+                   const unsigned int s_reg = EXC_ALI_RST(tf->tf_dsisr);
+                   const unsigned int a_reg = EXC_ALI_RA(tf->tf_dsisr);
+                   register_t* s_reg_addr = &tf->tf_fixreg[s_reg];
+                   register_t* a_reg_addr = &tf->tf_fixreg[a_reg];
+
+                   if (dsi->flags & DSI_OP_REVERSED) {
+                       /* byte-reversed write out */
+                       register_t temp = bswap32(*s_reg_addr);
+
+                       if (copyout(&temp,
+                                   (void *)ea_addr,
+                                   sizeof(uint32_t)) != 0)
+                           return -1;
+                   }
+                   /* write out word */
+                   else if (copyout(s_reg_addr,
+                                    (void *)ea_addr,
+                                    sizeof(uint32_t)) != 0)
+                       return -1;
+
+                   if (dsi->flags & DSI_OP_INDEXED) {
+                       /* do nothing, indexed address already in ea */
+                   }
+
+                   if (dsi->flags & DSI_OP_UPDATE) {
+                       /* this is valid for 601, but to simplify logic don't 
pass for any */
+                       if (a_reg == 0)
+                           return -1;
+                       else
+                           *a_reg_addr = ea_addr;
+                   }
+
+                   return 0;
+               }
+               break;
        }
 
        return -1;
@@ -892,3 +1148,123 @@
        curpcb->pcb_onfault = 0;
        return rv;
 }
+
+struct dsi_info*
+get_dsi_info(register_t dsisr)
+{
+    static struct dsi_info dsi[] = 
+       {
+           /* data cache block zero */
+           {EXC_ALI_DCBZ, 0},
+
+           /* load halfwords */
+           {EXC_ALI_LHZ,   DSI_OP_ZERO},
+           {EXC_ALI_LHZU,  DSI_OP_ZERO|DSI_OP_UPDATE},
+           {EXC_ALI_LHZX,  DSI_OP_ZERO|DSI_OP_INDEXED},
+           {EXC_ALI_LHZUX, DSI_OP_ZERO|DSI_OP_UPDATE|DSI_OP_INDEXED},
+           {EXC_ALI_LHA,   DSI_OP_ALGEBRAIC},
+           {EXC_ALI_LHAU,  DSI_OP_ALGEBRAIC|DSI_OP_UPDATE},
+           {EXC_ALI_LHAX,  DSI_OP_ALGEBRAIC|DSI_OP_INDEXED},
+           {EXC_ALI_LHAUX, DSI_OP_ALGEBRAIC|DSI_OP_UPDATE|DSI_OP_INDEXED},
+
+           /* store halfwords */
+           {EXC_ALI_STH,   0},
+           {EXC_ALI_STHU,  DSI_OP_UPDATE},
+           {EXC_ALI_STHX,  DSI_OP_INDEXED},
+           {EXC_ALI_STHUX, DSI_OP_UPDATE|DSI_OP_INDEXED},
+
+           /* load words */
+           {EXC_ALI_LWARX_LWZ, DSI_OP_ZERO},
+           {EXC_ALI_LWZU,      DSI_OP_ZERO|DSI_OP_UPDATE},
+           {EXC_ALI_LWZX,      DSI_OP_ZERO|DSI_OP_INDEXED},
+           {EXC_ALI_LWZUX,     DSI_OP_ZERO|DSI_OP_UPDATE|DSI_OP_INDEXED},
+
+           /* store words */
+           {EXC_ALI_STW,   0},                           
+           {EXC_ALI_STWU,  DSI_OP_UPDATE},               
+           {EXC_ALI_STWX,  DSI_OP_INDEXED},              
+           {EXC_ALI_STWUX, DSI_OP_UPDATE|DSI_OP_INDEXED},
+
+           /* load byte-reversed */
+           {EXC_ALI_LHBRX, DSI_OP_REVERSED|DSI_OP_INDEXED|DSI_OP_ZERO},
+           {EXC_ALI_LWBRX, DSI_OP_REVERSED|DSI_OP_INDEXED},
+
+           /* store byte-reversed */
+           {EXC_ALI_STHBRX, DSI_OP_REVERSED|DSI_OP_INDEXED},
+           {EXC_ALI_STWBRX, DSI_OP_REVERSED|DSI_OP_INDEXED},
+
+           /* load float double-precision */
+           {EXC_ALI_LFD,   0},
+           {EXC_ALI_LFDU,  DSI_OP_UPDATE},
+           {EXC_ALI_LDFX,  DSI_OP_INDEXED},
+           {EXC_ALI_LFDUX, DSI_OP_UPDATE|DSI_OP_INDEXED},
+
+           /* store float double precision */
+           {EXC_ALI_STFD,   0},
+           {EXC_ALI_STFDU,  DSI_OP_UPDATE},
+           {EXC_ALI_STFDX,  DSI_OP_INDEXED},
+           {EXC_ALI_STFDUX, DSI_OP_UPDATE|DSI_OP_INDEXED},
+
+           /* XXX - ones below here not yet implemented in fix_unaligned() */
+           /* load float single precision */
+           {EXC_ALI_LFS,   0},
+           {EXC_ALI_LFSU,  DSI_OP_UPDATE},
+           {EXC_ALI_LSFX,  DSI_OP_INDEXED},
+           {EXC_ALI_LFSUX, DSI_OP_UPDATE|DSI_OP_INDEXED},
+
+           /* store float single precision */
+           {EXC_ALI_STFS,   0},
+           {EXC_ALI_STFSU,  DSI_OP_UPDATE},
+           {EXC_ALI_STFSX,  DSI_OP_INDEXED},
+           {EXC_ALI_STFSUX, DSI_OP_UPDATE|DSI_OP_INDEXED},
+
+           /* multiple */
+           {EXC_ALI_LMW,  0},
+           {EXC_ALI_STMW, 0},
+
+           /* load & store string */
+           {EXC_ALI_LSWI, 0},
+           {EXC_ALI_LSWX, DSI_OP_INDEXED},
+           {EXC_ALI_STSWI, 0},
+           {EXC_ALI_STSWX, DSI_OP_INDEXED},
+
+           /* get/send word from external */
+           {EXC_ALI_ECIWX, DSI_OP_INDEXED},
+           {EXC_ALI_ECOWX, DSI_OP_INDEXED},
+
+           /* store float as integer word */
+           {EXC_ALI_STFIWX, 0},
+
+           /* store conditional */
+           {EXC_ALI_LDARX, DSI_OP_INDEXED}, /* stdcx */
+           {EXC_ALI_STDCX, DSI_OP_INDEXED},
+           {EXC_ALI_STWCX, DSI_OP_INDEXED},  /* lwarx */
+
+#ifdef PPC_OEA64
+           /* 64 bit, load word algebriac */ 
+           {EXC_ALI_LWAX,  DSI_OP_ALGEBRAIC|DSI_OP_INDEXED},
+           {EXC_ALI_LWAUX, DSI_OP_ALGEBRAIC|DSI_OP_UPDATE|DSI_OP_INDEXED},
+
+           /* 64 bit load doubleword */
+           {EXC_ALI_LD_LDU_LWA, 0},
+           {EXC_ALI_LDX,        DSI_OP_INDEXED},
+           {EXC_ALI_LDUX,       DSI_OP_UPDATE|DSI_OP_INDEXED},
+
+           /* 64 bit store double word */
+           {EXC_ALI_STD_STDU, 0},
+           {EXC_ALI_STDX,     DSI_OP_INDEXED},
+           {EXC_ALI_STDUX,    DSI_OP_UPDATE|DSI_OP_INDEXED},
+#endif
+       };
+
+    int num_elems = sizeof(dsi)/sizeof(dsi[0]);
+    int indicator = EXC_ALI_OPCODE_INDICATOR(dsisr);
+    int i;
+
+    for (i = 0 ; i < num_elems; i++) {
+       if (indicator == dsi[i].indicator){
+           return &dsi[i];
+       }
+    }
+    return 0;
+}
Index: sys/arch/powerpc/powerpc/fixup.c
===================================================================
RCS file: /cvsroot/src/sys/arch/powerpc/powerpc/fixup.c,v
retrieving revision 1.6
diff -b -u -r1.6 fixup.c
--- sys/arch/powerpc/powerpc/fixup.c    7 Nov 2013 15:26:36 -0000       1.6
+++ sys/arch/powerpc/powerpc/fixup.c    16 Feb 2014 18:23:53 -0000
@@ -43,6 +43,8 @@
 
 #include <powerpc/instr.h>
 #include <powerpc/spr.h>
+#include <powerpc/include/cpu.h>
+#include <powerpc/include/oea/spr.h>
 
 static inline void
 fixup_jump(uint32_t *insnp, const struct powerpc_jump_fixup_info *jfi)
@@ -71,7 +73,13 @@
        extern uint32_t __stub_start[], __stub_end[];
 #ifdef DEBUG
        size_t fixups_done = 0;
-       uint64_t cycles = mftb();
+       uint64_t cycles = 0;
+#ifdef PPC_OEA601
+       if ((mfpvr() >> 16) == MPC601)
+           cycles = rtc_nanosecs()/128;
+       else
+#endif
+           cycles = mftb();
 #endif
 
        if (stub_start == NULL) {
@@ -209,7 +217,14 @@
        }
 
 #ifdef DEBUG
+
+#ifdef PPC_OEA601
+       if ((mfpvr() >> 16) == MPC601)
+           cycles = rtc_nanosecs()/128 - cycles;
+       else
+#endif
        cycles = mftb() - cycles;
+
        printf("%s: %zu fixup%s done in %"PRIu64" cycles\n", __func__,
            fixups_done, fixups_done == 1 ? "" : "s",
            cycles);

===================================================================
New file
sys/arch/macppc/conf/std.macppc.601
===================================================================
#       $NetBSD: std.macppc,v 1.23 2008/12/11 05:42:18 alc Exp $
#
# Standard/required options for NetBSD/macppc.

machine macppc powerpc
include         "conf/std"      # MI standard options

# standard ("mandatory") kernel options.
options         PPC_OEA         # OEA class PowerPC chips
options         PPC_OEA601      # 601 cpu
makeoptions     PPCDIR="oea"    # Tell Makefile.powerpc what dir to use
makeoptions     PPC_ARCH_MODE="ppc32"
makeoptions     CPUFLAGS+="-mcpu=601"

# Executable support:
options         EXEC_ELF32      # (native) ELF32 binary support
options         EXEC_AOUT       # (native) a.out binary support (deprecated)
options         EXEC_SCRIPT     # shell script support

options         INTSTK=0x2000

# Atheros HAL options
include "external/isc/atheros_hal/conf/std.ath_hal"
New file, diffed between GENERIC.  Most of changes are to reduce
kernel size < 4M
GENERIC_601
======================================================================
--- sys/arch/macppc/conf/GENERIC        2013-11-09 08:45:35.000000000 -0700
+++ sys/arch/macppc/conf/GENERIC_601    2014-02-12 09:05:13.000000000 -0700
@@ -1,4 +1,4 @@
-# $NetBSD: GENERIC,v 1.312 2013/10/23 09:28:57 macallan Exp $
+# $NetBSD: GENERIC,v 1.311 2013/06/30 21:38:57 rmind Exp $
 #
 # GENERIC machine description file
 # 
@@ -17,16 +17,20 @@
 # for this architecture, see the options(4) man page.  For an explanation
 # of each device driver in this file see the section 4 man page for the
 # device.
-
-include                "arch/macppc/conf/std.macppc"
+#
+# For PPC 601, need "CPUFLAGS+= -mcpu=601"
+#
+# Openfirmware 1.0.5 require a kernel < 4M for netbooting
+#
+include                "arch/macppc/conf/std.macppc.601"
 
 options        INCLUDE_CONFIG_FILE     # embed config file in kernel binary
 
-#ident                 "GENERIC-$Revision: 1.312 $"
+ident          "GENERIC-$Revision: 1.311 $"
 
 maxusers       32
 
-options        ALTIVEC         # Include AltiVec support
+#options       ALTIVEC         # Include AltiVec support
 
 # Standard system options
 options        INSECURE        # disable kernel security levels
@@ -39,9 +43,9 @@
 options        SYSVSEM         # System V semaphores
 options        SYSVSHM         # System V shared memory
 
-options        MODULAR         # new style module(7) framework
+#options       MODULAR         # new style module(7) framework
 
-options        USERCONF        # userconf(4) support
+#options       USERCONF        # userconf(4) support
 #options       PIPE_SOCKETPAIR # smaller, but slower pipe(2)
 options        SYSCTL_INCLUDE_DESCR    # Include sysctl descriptions in kernel
 
@@ -51,95 +55,98 @@
 #options       BUFQ_PRIOCSCAN
 
 # Diagnostic/debugging support options
-#options       DIAGNOSTIC      # cheap kernel consistency checks
-#options       DEBUG           # expensive debugging checks/support
+options        DIAGNOSTIC      # cheap kernel consistency checks
+options        DEBUG           # expensive debugging checks/support
 options        ZS_CONSOLE_ABORT# allow break to get into DDB on serial
 options        DDB             # in-kernel debugger
 #options       DDB_ONPANIC=0   # don't go into ddb on panic.
 options        DDB_HISTORY_SIZE=512    # enable history editing in DDB
-#options       TRAP_PANICWAIT
+options        TRAP_PANICWAIT
 options                DDB_COMMANDONENTER="bt"
 
-#makeoptions   DEBUG="-g"      # compile full symbol table
+options        PMAPCHECK
+options        PMAPDEBUG
+
+makeoptions    DEBUG="-g"      # compile full symbol table
 
 # Compatibility options
-options        COMPAT_09       # NetBSD 0.9,
-options        COMPAT_10       # NetBSD 1.0,
-options        COMPAT_11       # NetBSD 1.1,
-options        COMPAT_12       # NetBSD 1.2,
-options        COMPAT_13       # NetBSD 1.3,
-options        COMPAT_14       # NetBSD 1.4,
-options        COMPAT_15       # NetBSD 1.5,
-options        COMPAT_16       # NetBSD 1.6,
-options        COMPAT_20       # NetBSD 2.0,
-options        COMPAT_30       # NetBSD 3.0,
-options        COMPAT_40       # NetBSD 4.0 compatibility.
-options        COMPAT_50       # NetBSD 5.0 compatibility.
+#options       COMPAT_09       # NetBSD 0.9,
+#options       COMPAT_10       # NetBSD 1.0,
+#options       COMPAT_11       # NetBSD 1.1,
+#options       COMPAT_12       # NetBSD 1.2,
+#options       COMPAT_13       # NetBSD 1.3,
+#options       COMPAT_14       # NetBSD 1.4,
+#options       COMPAT_15       # NetBSD 1.5,
+#options       COMPAT_16       # NetBSD 1.6,
+#options       COMPAT_20       # NetBSD 2.0,
+#options       COMPAT_30       # NetBSD 3.0,
+#options       COMPAT_40       # NetBSD 4.0 compatibility.
+#options       COMPAT_50       # NetBSD 5.0 compatibility.
 options        COMPAT_60       # NetBSD 6.0 compatibility.
 options        COMPAT_43       # and 4.3BSD
 #options       COMPAT_386BSD_MBRPART # recognize old partition ID
 #options       COMPAT_LINUX    # Linux binary compatibility
 #options       TCP_COMPAT_42   # 4.2BSD TCP/IP bug compat. Not recommended.
-options        COMPAT_BSDPTY   # /dev/[pt]ty?? ptys.
+#options       COMPAT_BSDPTY   # /dev/[pt]ty?? ptys.

 # Wedge support
-options         DKWEDGE_AUTODISCOVER    # Automatically add dk(4) instances
-options         DKWEDGE_METHOD_GPT      # Supports GPT partitions as wedges
+#options         DKWEDGE_AUTODISCOVER    # Automatically add dk(4) instances
+#options         DKWEDGE_METHOD_GPT      # Supports GPT partitions as wedges
 # The following two options can break /etc/fstab, so handle with care
 #options        DKWEDGE_METHOD_BSDLABEL # Support disklabel entries as wedges
 #options        DKWEDGE_METHOD_MBR      # Support MBR partitions as wedges
 
 # File systems
 file-system    FFS             # UFS
-file-system    EXT2FS          # second extended file system (linux)
-file-system    LFS             # log-structured file system
+#file-system   EXT2FS          # second extended file system (linux)
+#file-system   LFS             # log-structured file system
 file-system    MFS             # memory file system
 file-system    NFS             # Network File System client
 file-system    CD9660          # ISO 9660 + Rock Ridge file system
 file-system    MSDOSFS         # MS-DOS file system
-file-system    FDESC           # /dev/fd
-file-system    KERNFS          # /kern
-file-system    NULLFS          # loopback file system
-file-system    OVERLAY         # overlay file system
-file-system    PUFFS           # Userspace file systems (e.g. ntfs-3g & sshfs)
+#file-system   FDESC           # /dev/fd
+#file-system   KERNFS          # /kern
+#file-system   NULLFS          # loopback file system
+#file-system   OVERLAY         # overlay file system
+#file-system   PUFFS           # Userspace file systems (e.g. ntfs-3g & sshfs)
 file-system    PROCFS          # /proc
-file-system    UMAPFS          # NULLFS + uid and gid remapping
-file-system    UNION           # union file system
-file-system    SMBFS           # CIFS; also needs nsmb (below)
+#file-system   UMAPFS          # NULLFS + uid and gid remapping
+#file-system   UNION           # union file system
+#file-system   SMBFS           # CIFS; also needs nsmb (below)
 file-system    PTYFS           # /dev/pts/N support
-file-system    TMPFS           # Efficient memory file-system
+#file-system   TMPFS           # Efficient memory file-system
 #file-system   UDF             # experimental - OSTA UDF CD/DVD file-system
 #file-system   HFS             # experimental - Apple HFS+ (read-only)
  
 # File system options
-options        QUOTA           # legacy UFS quotas
-options        QUOTA2          # new, in-filesystem UFS quotas
+#options       QUOTA           # legacy UFS quotas
+#options       QUOTA2          # new, in-filesystem UFS quotas
 #options       FFS_EI          # FFS Endian Independent support
-options        WAPBL           # File system journaling support
+#options       WAPBL           # File system journaling support
 #options       UFS_DIRHASH     # UFS Large Directory Hashing - Experimental
-options        NFSSERVER       # Network File System server
+#options       NFSSERVER       # Network File System server
 #options       FFS_NO_SNAPSHOT # No FFS snapshot support
 #options       EXT2FS_SYSTEM_FLAGS # makes ext2fs file flags (append and
                                # immutable) behave as system flags.
-options        APPLE_UFS       # Apple UFS support in FFS
+#options       APPLE_UFS       # Apple UFS support in FFS
 
 options        NFS_BOOT_DHCP   # Support DHCP NFS root
 
 # Networking options
 #options       GATEWAY         # packet forwarding
 options        INET            # IP + ICMP + TCP + UDP
-options        INET6           # IPV6
+#options       INET6           # IPV6
 #options       IPSEC           # IP security
 #options       IPSEC_DEBUG     # debug for IP security
 #options       MROUTING        # IP multicast routing
 #options       PIM             # Protocol Independent Multicast
-options        NETATALK        # AppleTalk networking protocols
-options        PPP_BSDCOMP     # BSD-Compress compression support for PPP
-options        PPP_DEFLATE     # Deflate compression support for PPP
-options        PPP_FILTER      # Active filter support for PPP (requires bpf)
-options        IPFILTER_LOG    # ipmon(8) log support
-options        IPFILTER_LOOKUP # ippool(8) support
-options        IPFILTER_COMPAT # Compat for IP-Filter
+#options       NETATALK        # AppleTalk networking protocols
+#options       PPP_BSDCOMP     # BSD-Compress compression support for PPP
+#options       PPP_DEFLATE     # Deflate compression support for PPP
+#options       PPP_FILTER      # Active filter support for PPP (requires bpf)
+#options       IPFILTER_LOG    # ipmon(8) log support
+#options       IPFILTER_LOOKUP # ippool(8) support
+#options       IPFILTER_COMPAT # Compat for IP-Filter
 #options       IPFILTER_DEFAULT_BLOCK  # block all packets by default
 #options       TCP_DEBUG       # Record last TCP_NDEBUG packets with SO_DEBUG
 @@ -158,11 +165,11 @@
 
 # These options enable verbose messages for several subsystems.
 # Warning, these may compile large string tables into the kernel!
-options        PCIVERBOSE      # verbose PCI device autoconfig messages
-options        MIIVERBOSE      # verbose PHY autoconfig messages
+#options       PCIVERBOSE      # verbose PCI device autoconfig messages
+#options       MIIVERBOSE      # verbose PHY autoconfig messages
 #options       PCI_CONFIG_DUMP # verbosely dump PCI config space
-options        SCSIVERBOSE     # human readable SCSI error messages
-options        USBVERBOSE      # verbose USB device autoconfig messages
+#options       SCSIVERBOSE     # human readable SCSI error messages
+#options       USBVERBOSE      # verbose USB device autoconfig messages
 
 # wscons options
 #options       WSEMUL_SUN                      # sun terminal emulation
@@ -222,60 +229,60 @@
 pchb*  at pci? dev ? function ?        # PCI-Host bridges
 ppb*   at pci? dev ? function ?        # PCI-PCI bridges
 # XXX 'puc's aren't really bridges, but there's no better place for them here
-puc*   at pci? dev ? function ?        # PCI "universal" comm. cards
-lpt*   at puc? port ?                  # || ports on > "universal" comm boards
+#puc*  at pci? dev ? function ?        # PCI "universal" comm. cards
+#lpt*  at puc? port ?                  # || ports on > "universal" comm boards
 
 # PCI Network devices
-an*    at pci? dev ? function ?        # Aironet PC4500/PC4800 (802.11)
-ath*   at pci? dev ? function ?        # Atheros 5210/5211/5212 802.11
-atw*   at pci? dev ? function ?        # ADMtek ADM8211 (802.11)
-bge*   at pci? dev ? function ?        # Broadcom 570x Gigabit Ethernet
-bwi*   at pci? dev ? function ?        # Broadcom / Apple Airport Extreme
-ep*    at pci? dev ? function ?        # 3Com 3c59x
-epic*  at pci? dev ? function ?        # SMC EPIC/100 Ethernet
-ex*    at pci? dev ? function ?        # 3Com 90x[BC]
-fpa*   at pci? dev ? function ?        # DEC PCI FDDI (DEFPA) Controller
-fxp*   at pci? dev ? function ?        # Intel EtherExpress PRO 10+/100B
-gem*   at pci? dev ? function ?        # gmac ethernet
-#gm*   at pci? dev ? function ?        # gmac ethernet (old)
-gsip*  at pci? dev ? function ?        # NS83820 Gigabit Ethernet
-le*    at pci? dev ? function ?        # PCnet-PCI Ethernet
-lmc*   at pci? dev ? function ?        # Lan Media Corp SSI/HSSI/DS3
-mtd*   at pci? dev ? function ?        # Myson MTD803 3-in-1 Ethernet
-ne*    at pci? dev ? function ?        # NE2000-compatible Ethernet
-pcn*   at pci? dev ? function ?        # AMD PCnet-PCI Ethernet
-ral*   at pci? dev ? function ?        # Ralink Technology RT25x0 802.11a/b/g
-re*    at pci? dev ? function ?        # Realtek 8139C+/8169/8169S/8110S
-rtk*   at pci? dev ? function ?        # Realtek 8129/8139
-sf*    at pci? dev ? function ?        # Adaptec AIC-6915 Ethernet
-sip*   at pci? dev ? function ?        # SiS 900/7016 Ethernet
-skc*   at pci? dev ? function ?        # SysKonnect SK9821 Gigabit Ethernet
-sk*    at skc?                         # SysKonnect SK9821 Gigabit Ethernet
-ste*   at pci? dev ? function ?        # Sundance ST-201 Ethernet
-stge*  at pci? dev ? function ?        # Sundance/Tamarack TC9021 Gigabit
-#ti*   at pci? dev ? function ?        # Alteon ACEnic gigabit Ethernet
-tl*    at pci? dev ? function ?        # ThunderLAN-based Ethernet
-tlp*   at pci? dev ? function ?        # DECchip 21x4x and clones
-vge*   at pci? dev ? function ?        # VIA VT612x Gigabit Ethernet
-vr*    at pci? dev ? function ?        # VIA Rhine Fast Ethernet
-wi*    at pci? dev ? function ?        # Intersil Prism Mini-PCI (802.11b)
-wm*    at pci? dev ? function ?        # Intel 82543/82544 gigabit
+# an*  at pci? dev ? function ?        # Aironet PC4500/PC4800 (802.11)
+# ath* at pci? dev ? function ?        # Atheros 5210/5211/5212 802.11
+# atw* at pci? dev ? function ?        # ADMtek ADM8211 (802.11)
+# bge* at pci? dev ? function ?        # Broadcom 570x Gigabit Ethernet
+# bwi* at pci? dev ? function ?        # Broadcom / Apple Airport Extreme
+# ep*  at pci? dev ? function ?        # 3Com 3c59x
+# epic*        at pci? dev ? function ?        # SMC EPIC/100 Ethernet
+# ex*  at pci? dev ? function ?        # 3Com 90x[BC]
+# fpa* at pci? dev ? function ?        # DEC PCI FDDI (DEFPA) Controller
+# fxp* at pci? dev ? function ?        # Intel EtherExpress PRO 10+/100B
+# gem* at pci? dev ? function ?        # gmac ethernet
+# #gm* at pci? dev ? function ?        # gmac ethernet (old)
+# gsip*        at pci? dev ? function ?        # NS83820 Gigabit Ethernet
+# le*  at pci? dev ? function ?        # PCnet-PCI Ethernet
+# lmc* at pci? dev ? function ?        # Lan Media Corp SSI/HSSI/DS3
+# mtd* at pci? dev ? function ?        # Myson MTD803 3-in-1 Ethernet
+# ne*  at pci? dev ? function ?        # NE2000-compatible Ethernet
+# pcn* at pci? dev ? function ?        # AMD PCnet-PCI Ethernet
+# ral* at pci? dev ? function ?        # Ralink Technology RT25x0 802.11a/b/g
+# re*  at pci? dev ? function ?        # Realtek 8139C+/8169/8169S/8110S
+# rtk* at pci? dev ? function ?        # Realtek 8129/8139
+# sf*  at pci? dev ? function ?        # Adaptec AIC-6915 Ethernet
+# sip* at pci? dev ? function ?        # SiS 900/7016 Ethernet
+# skc* at pci? dev ? function ?        # SysKonnect SK9821 Gigabit Ethernet
+# sk*  at skc?                         # SysKonnect SK9821 Gigabit Ethernet
+# ste* at pci? dev ? function ?        # Sundance ST-201 Ethernet
+# stge*        at pci? dev ? function ?        # Sundance/Tamarack TC9021 
Gigabit
+# #ti* at pci? dev ? function ?        # Alteon ACEnic gigabit Ethernet
+# tl*  at pci? dev ? function ?        # ThunderLAN-based Ethernet
+# tlp* at pci? dev ? function ?        # DECchip 21x4x and clones
+# vge* at pci? dev ? function ?        # VIA VT612x Gigabit Ethernet
+# vr*  at pci? dev ? function ?        # VIA Rhine Fast Ethernet
+# wi*  at pci? dev ? function ?        # Intersil Prism Mini-PCI (802.11b)
+# wm*  at pci? dev ? function ?        # Intel 82543/82544 gigabit
 
 # PCI SCSI controllers
-adv*   at pci? dev ? function ?        # AdvanSys 1200[A,B], 9xx[U,UA] SCSI
-adw*   at pci? dev ? function ?        # AdvanSys 9x0UW[D], 3940U[2,3]W SCSI
-ahc*   at pci? dev ? function ?        # Adaptec 294x, aic78x0 SCSI
-bha*   at pci? dev ? function ?        # BusLogic 9xx SCSI
-esiop* at pci? dev ? function ?        # NCR 53c8xx SCSI (enhanced)
-iha*   at pci? dev ? function ?        # Initio INIC-940/950 SCSI
-isp*   at pci? dev ? function ?        # Qlogic ISP 10x0/2xx0 SCSI/Fibre Chan
-mpt*   at pci? dev ? function ?        # LSILogic 9x9 and 53c1030
-pcscp* at pci? dev ? function ?        # AMD Am53c974 PCscsi-PCI SCSI
-siop*  at pci? dev ? function ?        # NCR 53c8xx SCSI
-trm*   at pci? dev ? function ?        # Tekram DC-395U/UW/F, DC-315/U SCSI
+# adv* at pci? dev ? function ?        # AdvanSys 1200[A,B], 9xx[U,UA] SCSI
+# adw* at pci? dev ? function ?        # AdvanSys 9x0UW[D], 3940U[2,3]W SCSI
+# ahc* at pci? dev ? function ?        # Adaptec 294x, aic78x0 SCSI
+# bha* at pci? dev ? function ?        # BusLogic 9xx SCSI
+# esiop*       at pci? dev ? function ?        # NCR 53c8xx SCSI (enhanced)
+# iha* at pci? dev ? function ?        # Initio INIC-940/950 SCSI
+# isp* at pci? dev ? function ?        # Qlogic ISP 10x0/2xx0 SCSI/Fibre Chan
+# mpt* at pci? dev ? function ?        # LSILogic 9x9 and 53c1030
+# pcscp*       at pci? dev ? function ?        # AMD Am53c974 PCscsi-PCI SCSI
+# siop*        at pci? dev ? function ?        # NCR 53c8xx SCSI
+# trm* at pci? dev ? function ?        # Tekram DC-395U/UW/F, DC-315/U SCSI
 
 # Display devices
-# ofb* at pci? dev ? function ?        # Generic Open Firmware Framebuffer
+#ofb*  at pci? dev ? function ?        # Generic Open Firmware Framebuffer
 # OFB_ENABLE_CACHE speeds up the console on many machines, but should
 # not be enabled on some older machines, such as the rev. A-D iMacs or any
 # O'Hare based machine that uses external cache like the PowerBook 3400c
@@ -286,17 +293,14 @@
 # instead.
 
 chipsfb*       at pci? function ?      # C&T 65550
-gffb*          at pci? function ?      # NVIDIA GeForce2 MX
 machfb*                at pci? function ?      # ATI Mach 64, Rage, Rage Pro
-tdvfb*         at pci? function ?      # 3Dfx Voodoo2
-r128fb*                at pci? function ?      # ATI Rage 128
-voodoofb*      at pci? function ?      # 3Dfx Voodoo3 
-
-# ATI Radeon. Still has problems on some hardware
-radeonfb*      at pci? function ?
-options        RADEONFB_MMAP_BARS      # allow mmap()ing BARs - needed for X
 
-# generic PCI framebuffer, should work with everything supported by OF
+#radeonfb*     at pci? function ?      # ATI Radeon. R3xx is problematic
+#options       RADEONFB_MMAP_BARS      # allow mmap()ing BARs - needed for X
+
+#voodoofb*     at pci? function ?      # 3Dfx Voodoo3 
+#tdvfb*                at pci? function ?      # 3Dfx Voodoo2
+#r128fb*       at pci? function ?      # ATI Rage 128
 genfb*         at pci? function ?
 
 # make sure the console display is always wsdisplay0
@@ -307,60 +311,60 @@
 
 # Other  PCI devices
 pciide* at pci? dev ? function ? flags 0x0000  # GENERIC pciide driver
-acardide* at pci? dev ? function ?     # Acard IDE controllers
-aceride* at pci? dev ? function ?      # Acer Lab IDE controllers
-ahcisata*      at pci? dev ? function ?        # AHCI SATA controllers
-artsata* at pci? dev ? function ?      # Intel i31244 SATA controller
-cmdide* at pci? dev ? function ?       # CMD tech IDE controllers
-cypide* at pci? dev ? function ?       # Cypress IDE controllers
-hptide* at pci? dev ? function ?       # Triones/HighPoint IDE controllers
-iteide* at pci? dev ? function ?       # IT Express IDE controllers
-optiide* at pci? dev ? function ?      # Opti IDE controllers
-pdcide* at pci? dev ? function ?       # Promise IDE controllers
-pdcsata* at pci? dev ? function ?      # Promise SATA150 controllers
-satalink* at pci? dev ? function ?     # SiI SATALink controllers
-siside* at pci? dev ? function ?       # SiS IDE controllers
-slide*  at pci? dev ? function ?       # Symphony Labs IDE controllers
-stpcide*       at pci? dev ? function ?        # STMicro STPC IDE controllers
-viaide* at pci? dev ? function ?       # VIA/AMD/Nvidia IDE controllers
-wdc*   at pci? dev ? function ?        # Kauai ATA
-cbb*   at pci? dev ? function ?        # PCI-CardBus bridge
+#acardide* at pci? dev ? function ?    # Acard IDE controllers
+#aceride* at pci? dev ? function ?     # Acer Lab IDE controllers
+#ahcisata*     at pci? dev ? function ?        # AHCI SATA controllers
+#artsata* at pci? dev ? function ?     # Intel i31244 SATA controller
+#cmdide* at pci? dev ? function ?      # CMD tech IDE controllers
+#cypide* at pci? dev ? function ?      # Cypress IDE controllers
+#hptide* at pci? dev ? function ?      # Triones/HighPoint IDE controllers
+#iteide* at pci? dev ? function ?      # IT Express IDE controllers
+#optiide* at pci? dev ? function ?     # Opti IDE controllers
+#pdcide* at pci? dev ? function ?      # Promise IDE controllers
+#pdcsata* at pci? dev ? function ?     # Promise SATA150 controllers
+#satalink* at pci? dev ? function ?    # SiI SATALink controllers
+#siside* at pci? dev ? function ?      # SiS IDE controllers
+#slide*  at pci? dev ? function ?      # Symphony Labs IDE controllers
+#stpcide*      at pci? dev ? function ?        # STMicro STPC IDE controllers
+#viaide* at pci? dev ? function ?      # VIA/AMD/Nvidia IDE controllers
+#wdc*  at pci? dev ? function ?        # Kauai ATA
+#cbb*  at pci? dev ? function ?        # PCI-CardBus bridge
 obio*  at pci? dev ? function ?
 
-acphy* at mii? phy ?                   # DAltima AC101 and AMD Am79c874 PHYs
-amhphy*        at mii? phy ?                   # AMD 79c901 Ethernet PHYs
-bmtphy*        at mii? phy ?                   # Broadcom BCM5201/BCM5202 PHYs
-brgphy*        at mii? phy ?                   # Broadcom BCM5400 PHYs
-ciphy* at mii? phy ?                   # Cicada CS8201 Gig-E PHYs
-dmphy* at mii? phy ?                   # Davicom DM9101 PHYs
-exphy* at mii? phy ?                   # 3Com internal PHYs
-glxtphy* at mii? phy ?                 # Level One LXT-1000 PHYs
-gphyter* at mii? phy ?                 # NS83861 Gig-E PHY
-icsphy*        at mii? phy ?                   # Integrated Circuit Systems 
ICS189x
-ikphy* at mii? phy ?                   # Intel 82563 PHYs
-inphy* at mii? phy ?                   # Intel 82555 PHYs
-iophy* at mii? phy ?                   # Intel 82553 PHYs
-lxtphy*        at mii? phy ?                   # Level One LXT-970 PHYs
-makphy* at mii? phy ?                  # Marvell Semiconductor 88E1000 PHYs
-nsphy* at mii? phy ?                   # NS83840 PHYs
-nsphyter* at mii? phy ?                        # NS83843 PHYs
-pnaphy* at mii? phy ?                  # generic HomePNA PHYs
-qsphy* at mii? phy ?                   # Quality Semiconductor QS6612 PHYs
-rgephy* at mii? phy ?                  # Realtek 8169S/8110S internal PHYs
-rlphy* at mii? phy ?                   # Realtek 8139/8201L PHYs
-sqphy* at mii? phy ?                   # Seeq 80220/80221/80223 PHYs
-tlphy* at mii? phy ?                   # ThunderLAN PHYs
-tqphy* at mii? phy ?                   # TDK Semiconductor PHYs
-ukphy* at mii? phy ?                   # generic unknown PHYs
-urlphy* at mii? phy ?                  # Realtek RTL8150L internal PHYs
+# acphy*       at mii? phy ?                   # DAltima AC101 and AMD 
Am79c874 PHYs
+# amhphy*      at mii? phy ?                   # AMD 79c901 Ethernet PHYs
+# bmtphy*      at mii? phy ?                   # Broadcom BCM5201/BCM5202 PHYs
+# brgphy*      at mii? phy ?                   # Broadcom BCM5400 PHYs
+# ciphy*       at mii? phy ?                   # Cicada CS8201 Gig-E PHYs
+# dmphy*       at mii? phy ?                   # Davicom DM9101 PHYs
+# exphy*       at mii? phy ?                   # 3Com internal PHYs
+# glxtphy* at mii? phy ?                       # Level One LXT-1000 PHYs
+# gphyter* at mii? phy ?                       # NS83861 Gig-E PHY
+# icsphy*      at mii? phy ?                   # Integrated Circuit Systems 
ICS189x
+# ikphy*       at mii? phy ?                   # Intel 82563 PHYs
+# inphy*       at mii? phy ?                   # Intel 82555 PHYs
+# iophy*       at mii? phy ?                   # Intel 82553 PHYs
+# lxtphy*      at mii? phy ?                   # Level One LXT-970 PHYs
+# makphy* at mii? phy ?                        # Marvell Semiconductor 88E1000 
PHYs
+# nsphy*       at mii? phy ?                   # NS83840 PHYs
+# nsphyter* at mii? phy ?                      # NS83843 PHYs
+# pnaphy* at mii? phy ?                        # generic HomePNA PHYs
+# qsphy*       at mii? phy ?                   # Quality Semiconductor QS6612 
PHYs
+# rgephy* at mii? phy ?                        # Realtek 8169S/8110S internal 
PHYs
+# rlphy*       at mii? phy ?                   # Realtek 8139/8201L PHYs
+# sqphy*       at mii? phy ?                   # Seeq 80220/80221/80223 PHYs
+# tlphy*       at mii? phy ?                   # ThunderLAN PHYs
+# tqphy*       at mii? phy ?                   # TDK Semiconductor PHYs
+# ukphy*       at mii? phy ?                   # generic unknown PHYs
+# urlphy* at mii? phy ?                        # Realtek RTL8150L internal PHYs
 
 # PCI serial interfaces
-com*   at puc? port ?                  # 16x50s on "universal" comm boards
-cy*    at pci? dev ? function ?        # Cyclades Cyclom-Y serial boards
+#com*  at puc? port ?                  # 16x50s on "universal" comm boards
+#cy*   at pci? dev ? function ?        # Cyclades Cyclom-Y serial boards
 #cz*   at pci? dev ? function ?        # Cyclades-Z multi-port serial boards
 
-bktr*   at      pci? dev ? function ?           # Brooktree video/audio 
capture/tuner
-radio*  at      bktr?
+#bktr*   at      pci? dev ? function ?           # Brooktree video/audio 
capture/tuner
+#radio*  at      bktr?
 
 bm*    at obio?                        # bmac ethernet
 mc*    at obio?                        # MACE ethernet
@@ -383,17 +387,17 @@
 pmu*   at obio?                        # PMU, *Books and newer PowerMacs
 nadb*  at adb_bus?                     # ADB bus enumerator, at cuda or pmu
 adbkbd* at nadb?                       # ADB keyboard
-adbms* at nadb?                        # ADB mice and touchpads
-adbbt* at nadb?                        # button device found on *Books
+#adbms*        at nadb?                        # ADB mice and touchpads
+#adbbt*        at nadb?                        # button device found on *Books
 
 wskbd*         at wskbddev? console ?
-wsmouse*       at wsmousedev?
+#wsmouse*      at wsmousedev?
 
-battery* at pmu?               # legacy battery, for ohare-based PowerBooks
-smartbat* at pmu?              # Smart battery, found in newer *Books
+#battery* at pmu?              # legacy battery, for ohare-based PowerBooks
+#smartbat* at pmu?             # Smart battery, found in newer *Books
 
 iic0   at cuda0                # CUDA's IIC bus
-sgsmix0 at iic0 addr 0x8a      # additional mixer found in beige G3
+#sgsmix0 at iic0 addr 0x8a     # additional mixer found in beige G3
                                # use with awacs
 
 zsc*   at obio?
@@ -410,28 +414,28 @@
 iic*   at ki2c?
 dbcool*        at ki2c?                        # dbCool thermal monitor & fan 
control
 
-deq*   at ki2c?                        # mixer/equalizer, needed by snapper
-wi*    at obio?                        # AirMac
-snapper* at obio?                      # Snapper audio device
-
-cardslot* at cbb?
-cardbus* at cardslot?
-pcmcia*        at cardslot?
-
-com*   at pcmcia? function ?           # Modems and serial cards
-wdc*   at pcmcia? function ?           # PCMCIA IDE controllers
-ep*    at pcmcia? function ?           # 3Com 3c589 and 3c562 Ethernet
-mbe*   at pcmcia? function ?           # MB8696x based Ethernet
-ne*    at pcmcia? function ?           # NE2000-compatible Ethernet
-awi*   at pcmcia? function ?           # BayStack 650/660 (802.11FH/DS)
-wi*    at pcmcia? function ?           # Lucent WaveLan IEEE (802.11)
-ath*   at cardbus? function ?  # Atheros 5210/5211/5212 802.11
-atw*   at cardbus? function ?  # ADMtek ADM8211 (802.11)
-ex*    at cardbus? function ?  # 3Com 3C575TX
-tlp*   at cardbus? function ?  # DECchip 21143
-ral*   at cardbus? function ?  # Ralink Technology RT25x0 802.11a/b/g
-rtk*   at cardbus? function ?  # Realtek 8129/8139
-rtw*   at cardbus? function ?  # Realtek 8180L (802.11)
+#deq*  at ki2c?                        # mixer/equalizer, needed by snapper
+#wi*   at obio?                        # AirMac
+#snapper* at obio?                     # Snapper audio device
+
+#cardslot* at cbb?
+#cardbus* at cardslot?
+#pcmcia*       at cardslot?
+
+#com*  at pcmcia? function ?           # Modems and serial cards
+#wdc*  at pcmcia? function ?           # PCMCIA IDE controllers
+#ep*   at pcmcia? function ?           # 3Com 3c589 and 3c562 Ethernet
+#mbe*  at pcmcia? function ?           # MB8696x based Ethernet
+#ne*   at pcmcia? function ?           # NE2000-compatible Ethernet
+#awi*  at pcmcia? function ?           # BayStack 650/660 (802.11FH/DS)
+#wi*   at pcmcia? function ?           # Lucent WaveLan IEEE (802.11)
+#ath*  at cardbus? function ?  # Atheros 5210/5211/5212 802.11
+#atw*  at cardbus? function ?  # ADMtek ADM8211 (802.11)
+#ex*   at cardbus? function ?  # 3Com 3C575TX
+#tlp*  at cardbus? function ?  # DECchip 21143
+#ral*  at cardbus? function ?  # Ralink Technology RT25x0 802.11a/b/g
+#rtk*  at cardbus? function ?  # Realtek 8129/8139
+#rtw*  at cardbus? function ?  # Realtek 8180L (802.11)
 
 # Cryptographic Devices
 
@@ -444,113 +448,113 @@
 scsibus* at scsi?
 
 sd*    at scsibus? target ? lun ?      # SCSI disks
-st*    at scsibus? target ? lun ?      # SCSI tape drives
+#st*   at scsibus? target ? lun ?      # SCSI tape drives
 cd*    at scsibus? target ? lun ?      # SCSI CD-ROM drives
-ch*    at scsibus? target ? lun ?      # SCSI autochangers
-ss*    at scsibus? target ? lun ?      # SCSI scanners
-uk*    at scsibus? target ? lun ?      # SCSI unknown
+#ch*   at scsibus? target ? lun ?      # SCSI autochangers
+#ss*   at scsibus? target ? lun ?      # SCSI scanners
+#uk*   at scsibus? target ? lun ?      # SCSI unknown
 
 wdc*   at obio? flags 0x1
 atabus* at ata?
 wd*    at atabus? drive ? flags 0x0000
 
-atapibus* at atapi?
+#atapibus* at atapi?
 
-cd*    at atapibus? drive ? flags 0x0000       # ATAPI CD-ROM drives
-sd*    at atapibus? drive ? flags 0x0000       # ATAPI disk drives
-uk*    at atapibus? drive ? flags 0x0000       # ATAPI unknown
+#cd*   at atapibus? drive ? flags 0x0000       # ATAPI CD-ROM drives
+#sd*   at atapibus? drive ? flags 0x0000       # ATAPI disk drives
+#uk*   at atapibus? drive ? flags 0x0000       # ATAPI unknown
  
 # PCI USB controllers
-ohci*  at pci? dev ? function ?        # USB Open Host Controller
-ehci*  at pci? dev ? function ?        # USB Enhanced Host Controller
+#ohci* at pci? dev ? function ?        # USB Open Host Controller
+#ehci* at pci? dev ? function ?        # USB Enhanced Host Controller
 
-ohci*  at cardbus? function ?  # USB Open Host Controller
-ehci*  at cardbus? function ?  # USB Enhanced Host Controller
+#ohci* at cardbus? function ?  # USB Open Host Controller
+#ehci* at cardbus? function ?  # USB Enhanced Host Controller
 
-slhci* at pcmcia? function ?   # ScanLogic SL811HS
+#slhci*        at pcmcia? function ?   # ScanLogic SL811HS
 
-usb*   at ehci?                                        # USB bus support
-usb*   at ohci?                                        # USB bus support
-usb*   at slhci?                                       # USB bus support
-uhub*  at usb?                                         # USB Hubs
-uhub*  at uhub? port ?
+#usb*  at ehci?                                        # USB bus support
+#usb*  at ohci?                                        # USB bus support
+#usb*  at slhci?                                       # USB bus support
+#uhub* at usb?                                         # USB Hubs
+#uhub* at uhub? port ?
 
-uhidev*        at uhub? port ? configuration ? interface ?     # USB HID device
+#uhidev*       at uhub? port ? configuration ? interface ?     # USB HID device
 
-pbms*  at uhidev? reportid ?                           # PowerBook 15" mouse
+#pbms* at uhidev? reportid ?                           # PowerBook 15" mouse
 
-ums*   at uhidev? reportid ?                           # USB Mice
+#ums*  at uhidev? reportid ?                           # USB Mice
 
-ukbd*  at uhidev? reportid ?                           # USB Keyboards
+#ukbd* at uhidev? reportid ?                           # USB Keyboards
 
-uthum* at uhidev? reportid ?                           # TEMPerHUM sensors
+#uthum*        at uhidev? reportid ?                           # TEMPerHUM 
sensors
 
-ucycom*        at uhidev? reportid ?                           # USB serial 
adapter
+#ucycom*       at uhidev? reportid ?                           # USB serial 
adapter
 
-uhid*  at uhidev? reportid ?                           # USB Generic HID
+#uhid* at uhidev? reportid ?                           # USB Generic HID
 -ulpt* at uhub? port ? configuration ? interface ?     # USB Printer
+#ulpt* at uhub? port ? configuration ? interface ?     # USB Printer
 
-umodem*        at uhub? port ? configuration ?                 # USB Modem
-ucom*  at umodem?
+#umodem*       at uhub? port ? configuration ?                 # USB Modem
+#ucom* at umodem?
 
-ubsa*  at uhub? port ?                                 # Belkin serial adapter
-ucom*  at ubsa? portno ?
+#ubsa* at uhub? port ?                                 # Belkin serial adapter
+#ucom* at ubsa? portno ?
 
-uplcom* at uhub? port ?                                        # Prolific 
serial
-ucom* at uplcom? portno ?
+#uplcom* at uhub? port ?                                       # Prolific 
serial
+#ucom* at uplcom? portno ?
 
-uftdi* at uhub? port ?                                 # FTDI serial
-ucom* at uftdi? portno ?
+#uftdi* at uhub? port ?                                        # FTDI serial
+#ucom* at uftdi? portno ?
 
-uhso*  at uhub? port ? configuration ?                 # Option N.V. Wireless 
WAN modems
+#uhso* at uhub? port ? configuration ?                 # Option N.V. Wireless 
WAN modems
 
-umass* at uhub? port ? configuration ? interface ?     # USB Mass Storage
+#umass*        at uhub? port ? configuration ? interface ?     # USB Mass 
Storage
 
-uaudio*        at uhub? port ? configuration ?                 # USB audio
+#uaudio*       at uhub? port ? configuration ?                 # USB audio
 
 # D-Link DSB-R100 USB FM radio tuner
-udsbr* at uhub? port ?
-radio* at udsbr?
+#udsbr* at uhub? port ?
+#radio* at udsbr?
 
 # USB Ethernet adapters
-aue*   at uhub? port ?         # ADMtek AN986 Pegasus based adapters
-axe*   at uhub? port ?         # ASIX AX88172 based adapters
-cue*   at uhub? port ?         # CATC USB-EL1201A based adapters
-kue*   at uhub? port ?         # Kawasaki LSI KL5KUSB101B based adapters
-url*   at uhub? port ?         # Realtek RTL8150L based adapters
-udav*  at uhub? port ?         # Davicom DM9601 based adapters
-
-ukyopon* at uhub? port ?                               # Kyocera AIR-EDGE PHONE
-ucom*  at ukyopon? portno ?
-
-uscanner* at uhub? port ?                              # USB scanners
-uyap* at uhub? port ?                                  # Y@P firmware loader
-ugen*  at uhub? port ? configuration ? interface ?     # USB Generic driver
+#aue*  at uhub? port ?         # ADMtek AN986 Pegasus based adapters
+#axe*  at uhub? port ?         # ASIX AX88172 based adapters
+#cue*  at uhub? port ?         # CATC USB-EL1201A based adapters
+#kue*  at uhub? port ?         # Kawasaki LSI KL5KUSB101B based adapters
+#url*  at uhub? port ?         # Realtek RTL8150L based adapters
+#udav* at uhub? port ?         # Davicom DM9601 based adapters
+
+#ukyopon* at uhub? port ?                              # Kyocera AIR-EDGE PHONE
+#ucom* at ukyopon? portno ?
+
+#uscanner* at uhub? port ?                             # USB scanners
+#uyap* at uhub? port ?                                 # Y@P firmware loader
+#ugen* at uhub? port ? configuration ? interface ?     # USB Generic driver
 
 # USB 802.11 adapters
-atu*   at uhub? port ?         # Atmel at76c50x 802.11b
-otus*  at uhub? port ?         # Atheros AR9001U
-ural*  at uhub? port ?         # Ralink Technology RT2500USB 802.11a/b/g
-rum*   at uhub? port ?         # Ralink Technology RT2501/RT2601 802.11a/b/g
+#atu*  at uhub? port ?         # Atmel at76c50x 802.11b
+#otus* at uhub? port ?         # Atheros AR9001U
+#ural* at uhub? port ?         # Ralink Technology RT2500USB 802.11a/b/g
+#rum*  at uhub? port ?         # Ralink Technology RT2501/RT2601 802.11a/b/g
 #zyd*  at uhub? port ?         # Zydas ZD1211
 
 # PCI IEEE1394 controllers
-fwohci*        at pci? dev ? function ?        # IEEE1394 Open Host Controller
+#fwohci*       at pci? dev ? function ?        # IEEE1394 Open Host Controller
 
 # CardBus IEEE1394 controllers 
 #fwohci*       at cardbus? function ?  # IEEE1394 Open Host Controller
 
-ieee1394if* at fwohci?
-fwip*  at ieee1394if?                  # IP over IEEE1394
-sbp*   at ieee1394if? euihi ? euilo ?
+#ieee1394if* at fwohci?
+#fwip* at ieee1394if?                  # IP over IEEE1394
+#sbp*  at ieee1394if? euihi ? euilo ?
  # Audio Devices
 
 # PCI audio devices
 #clcs* at pci? dev ? function ?        # Cirrus Logic CS4280
 #cmpci*        at pci? dev ? function ?        # C-Media CMI8338/8738
-eap*   at pci? dev ? function ?        # Ensoniq AudioPCI
+#eap*  at pci? dev ? function ?        # Ensoniq AudioPCI
 #eso*  at pci? dev ? function ?        # ESS Solo-1 PCI AudioDrive
 #fms*  at pci? dev ? function ?        # Forte Media FM801
 #sv*   at pci? dev ? function ?        # S3 SonicVibes
@@ -561,7 +565,7 @@
 #opl*  at fms?
 
 # Audio support
-audio* at audiobus?
+#audio*        at audiobus?
 
 # MPU 401 UARTs
 #mpu*  at cmpci?
@@ -569,23 +573,23 @@
 #mpu*  at fms?
 
 # MIDI support
-midi*  at eap?                 # 137[01] MIDI port
+#midi* at eap?                 # 137[01] MIDI port
 #midi* at mpu?                 # MPU 401
 
 #
 # accept filters
-pseudo-device   accf_data              # "dataready" accept filter
-pseudo-device   accf_http              # "httpready" accept filter
+#pseudo-device   accf_data             # "dataready" accept filter
+#pseudo-device   accf_http             # "httpready" accept filter
 
 #pseudo-device         crypto                  # /dev/crypto device
                                        # (disabled, requires generic softints)
 #pseudo-device swcrypto                # software crypto implementation
-pseudo-device  vnd                     # disk-like interface to files
+#pseudo-device vnd                     # disk-like interface to files
 #options       VND_COMPRESSION         # compressed vnd(4)
-pseudo-device  ccd                     # concatenated/striped disk devices
+#pseudo-device ccd                     # concatenated/striped disk devices
 #pseudo-device cgd                     # cryptographic disk devices
-pseudo-device  raid                    # RAIDframe disk driver
-options        RAID_AUTOCONFIG         # auto-configuration of RAID components
+#pseudo-device raid                    # RAIDframe disk driver
+#options       RAID_AUTOCONFIG         # auto-configuration of RAID components
 # Options to enable various other RAIDframe RAID types.
 # options      RF_INCLUDE_EVENODD=1
 # options      RF_INCLUDE_RAID5_RS=1
@@ -594,34 +598,34 @@
 # options      RF_INCLUDE_INTERDECLUSTER=1
 # options      RF_INCLUDE_PARITY_DECLUSTERING=1
 # options      RF_INCLUDE_PARITY_DECLUSTERING_DS=1
-pseudo-device  fss                     # file system snapshot device
-pseudo-device  md                      # memory disk device
+#pseudo-device fss                     # file system snapshot device
+#pseudo-device md                      # memory disk device
 pseudo-device  loop                    # network loopback
 pseudo-device  bpfilter                # packet filter
-pseudo-device  ipfilter                # IP filter (firewall) and NAT
-pseudo-device  ppp                     # Point-to-Point Protocol
-pseudo-device  pppoe                   # PPP over Ethernet (RFC 2516)
-pseudo-device  sl                      # Serial Line IP
-pseudo-device  tun                     # network tunneling over tty
-pseudo-device  tap                     # virtual Ethernet
+#pseudo-device ipfilter                # IP filter (firewall) and NAT
+#pseudo-device ppp                     # Point-to-Point Protocol
+#pseudo-device pppoe                   # PPP over Ethernet (RFC 2516)
+#pseudo-device sl                      # Serial Line IP
+#pseudo-device tun                     # network tunneling over tty
+#pseudo-device tap                     # virtual Ethernet
 #pseudo-device gre                     # generic L3 over IP tunnel
-pseudo-device  gif                     # IPv[46] over IPv[46] tunnel (RFC1933)
+#pseudo-device gif                     # IPv[46] over IPv[46] tunnel (RFC1933)
 #pseudo-device faith                   # IPv[46] tcp relay translation i/f
-pseudo-device  stf                     # 6to4 IPv6 over IPv4 encapsulation
-pseudo-device  vlan                    # IEEE 802.1q encapsulation
-pseudo-device  bridge                  # simple inter-network bridging
+#pseudo-device stf                     # 6to4 IPv6 over IPv4 encapsulation
+#pseudo-device vlan                    # IEEE 802.1q encapsulation
+#pseudo-device bridge                  # simple inter-network bridging
 #options       BRIDGE_IPF              # bridge uses IP/IPv6 pfil hooks too
-pseudo-device  agr                     # IEEE 802.3ad link aggregation
+#pseudo-device agr                     # IEEE 802.3ad link aggregation
 pseudo-device  pty                     # pseudo-terminals
 pseudo-device  openfirm                # /dev/openfirm
 pseudo-device  wsmux                   # mouse and keyboard multiplexer
-pseudo-device  swwdog                  # software watchdog driver - swwdog(4)
+#pseudo-device swwdog                  # software watchdog driver - swwdog(4)
 pseudo-device  clockctl                # user control of clock subsystem
 pseudo-device  ksyms                   # /dev/ksyms
-pseudo-device  nsmb                    # SMB requester
+#pseudo-device nsmb                    # SMB requester
 #pseudo-device pf                      # PF packet filter
 #pseudo-device pflog                   # PF log if
-pseudo-device  putter                  # for puffs and pud
+#pseudo-device putter                  # for puffs and pud
 
 # userland interface to drivers, including autoconf and properties retrieval
 pseudo-device   drvctl

 
 


>How-To-Repeat:

>Fix:



Home | Main Index | Thread Index | Old Index