NetBSD/rs6000 port

NetBSD/rs6000 (project page) is an effort to port the NetBSD operating system to MCA RS/6000 computers. The initial target is PowerPC for ease of porting, but POWER systems should be possible as well.

Tim Rightnor is the lead developer and also maintains ports for PReP and newer OpenFirmware machines. He wrote an interesting paper on doing kernel bringup on new platforms like this.

Looking for Documentation:

The following documentation would be extremely helpful in the porting effort. If you have these, or know someone at IBM that could be pressured into searching for them, please let me know!
SA23-2666     7011 POWERstation and POWERserver Hardware Technical Information

SA23-2660     7012 POWERstation and POWERserver Hardware Technical Information

SA23-2680     7012 POWERstation and POWERserver Models 34x, 35x, 36x, and 37x Hardware Technical Information

SA23-2684     7013 POWERstation and POWERserver Models 550L, 57x, 58x, 58H, and 590 Hardware Technical Information

SA23-2645     7015 POWERserver Hardware Technical Reference

SA23-2686     7015 POWERserver Models 97x, 98x, and 99x Hardware Technical Information

SA23-2737     PowerPC and POWER2: Technical Aspects 

S10G-6466     Personal System/2 Hardware Interface Technical Reference: Architectures Update
I have been able to aquire these:
SA23-2643     POWERstation and POWERserver Hardware Technical Information-General Architectures (Table of Contents Scan)

SA23-2646     POWERstation and POWERserver Hardware Technical Information-Options and Devices

SA23-2644     7013 and 7016 POWERstation and POWERserver Hardware Technical Reference

S84F-9808     Personal System/2 Hardware Interface Technical Reference: Architectures

Current progress:

Progress has been made: namely, a 7006-41T was made to netboot a kernel image and provide serial console output:

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/

Back to RS/6000 Info