Subject: NetBSD ported to the IBM MCA RS/6000 model 7006
To: None <netbsd-announce@netbsd.org>
From: Tim Rightnour <root@garbled.net>
List: port-prep
Date: 12/17/2007 13:25:33
[Please direct followup discussion to port-prep@netbsd.org]

I am proud to announce the port of NetBSD to the IBM RS/6000 class of MCA-based
PowerPC machines.  NetBSD is the first free Operating System to run on this
class of machines.

The port was made to an IBM 7006-41T, which is a 601-based machine with MCA. 
It has not yet been tested on any other machines, but most other MCA/PowerPC
based machines should be supportable.  This port does not yet run on the
7012-3xx class of machines, or any other machine that has a POWER, POWER-RSC,
POWER2 or POWER2-SC CPU.  POWER-class machines will require significant CPU
code to be written.

This port does not cover PReP-based IBM RS/6000 machines, for those, please see
port-prep.  For OpenFirmware based RS/6000 machines, please see port-ofppc.

The following machines are likely to run this port, or run it with minimal
effort:

7006-42T/W, 7011-250, 7007-N40, 7009-C10/C20

Additionally, it is probably possible to port this to the following machines,
with changes to the bootloader:

7012-G30, 7013-570/580/J30, 7015-98B/R30/R40/R50.

The port currently does not fully reach single user mode, as there is still no
bus_dma backend to talk to the MCA cards.  At this point it is capable of
booting the kernel, and talking to the com ports to provide console services. 
I hope to fix the lack of bus_dma in the next few months.

This port was made possible by Kevin Bowling, who provided both the hardware,
as well as a pile of excellent books and documentation for the port.

To build this port:

check out recent CVS sources.
cd to src
./build.sh -m rs6000 -T /usr/src/tools/ppc-hack -O /obj/rs6000
        tools kernel=GENERIC
cd sys/arch/rs6000/stand
/usr/src/tools/ppc-hack/bin/nbmake-rs6000
cd mkbootimage
make USETOOLS=NO
/usr/src/hackathon/sys/arch/rs6000/stand/mkbootimage/mkbootimage -b
        /usr/src/hackathon/sys/arch/rs6000/stand/boot/boot -k
        /obj/rs6000/sys/arch/rs6000/compile/GENERIC/netbsd -s
        /tftpboot/rs6000.boot

Create an entry in your bootptab or dhcpd.conf to boot the machine, set the
keyswitch to service and hook up a serial console.  Then you should be able to
boot the image over the network.  (the above paths are just examples, edit for
your environment)

dmesg:

>> NetBSD/rs6000 BOOT, Revision 1.1
>> (root@polaris.garbled.net, Mon Dec 17 12:51:36 MST 2007)

Boot: 
Loading in()
2477848+204140 [158896+150412]=0x2da88c
start=0x100000
NetBSD/rs6000 booting ...
Loaded initial symtab at 0x38ec84, strtab at 0x3b5d00, # entries 9377
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    2006, 2007
    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 4.99.42 (GENERIC) #11: Mon Dec 17 12:49:41 MST 2007
        root@polaris.garbled.net:/obj/rs6000/sys/arch/rs6000/compile/GENERIC
Model: rs6000
total memory = 192 MB
avail memory = 182 MB
mainbus0 (root)
cpu0 at mainbus0: 601 (Revision 2), ID 0 (primary)
cpu0: HID0 8000<EM>, powersave: -1
mca0 at mainbus0
mca0 slot 1: IBM 10/100 Mbps Ethernet MC Adapter (0x8f62) disabled
mca0 slot 3: IBM Fast SCSI-2 Adapter (0x8efc) disabled
mca0 slot 4: IBM Ultimedia Audio Adapter (0xdfe5) disabled
mca0 slot 14: IBM NCR 53C720 Integrated SCSI Controller (0x8fba) disabled
mca0 slot 15: IBM 10 Mbps Integrated Ethernet (Rainbow) (0x8f98) disabled
ioplanar0 at mca0
com0 at ioplanar0: i/o 0x30-0x37 irq 2: ns16550a, working fifo
com0: console
com1 at ioplanar0: i/o 0x38-0x3f irq 2: ns16550a, working fifo
biomask 8000000 netmask 8000000 ttymask 8000000
boot device: <unknown>
root device: 

---
Tim Rightnour <root@garbled.net>
NetBSD: Free multi-architecture OS http://www.netbsd.org/
Genecys: Open Source 3D MMORPG: http://www.genecys.org/