Awesome!  Thanks Geoff!

On Tue, Nov 17, 2009 at 1:37 PM, <geoff@plan9.bell-labs.com> wrote:
If you run replica/pull (or have done so recently), you'll find a new
kernel subtree, /sys/src/9/kw, which contains a basic port of Plan 9
to the Sheevaplug, derived from the port of native Inferno.  9plug is
a diskless cpu server supporting a serial console and gigabit
ethernet.  booting(8) and /sys/doc/port.* have been updated to match.
`kw' stands for Kirkwood, the Marvell system-on-a-chip that the
Sheevaplug is based upon.  There are more Kirkwood systems on the way.

What's not yet in this port: access to flash memory, USB devices,
memory cards and possibly more.  The documentation for Kirkwood flash
and USB is some combination of vague, obscure, incomplete,
unavailable, contradictory and tediously voluminous.  If you configure
in the USB drivers, you'll find that there appears to be an
unpopulated root hub, but that may be a figment of the usb driver's
imagination.  The EHCI registers do seem to be present and we probably
just need to tweak some undocumented register to make it all go.

If you only been building 386 binaries to date, you'll want to edit
/sys/src/mkfile.proto to at least include the arm architecture:

       OS=58
       CPUS=arm 386

and make sure all your /386/bin compiler binaries are up to date:

       cd /sys/src/cmd
       for(i in ?c)
               if(! ~ $i cc rc) @{
                       cd $i
                       mk clean
                       objtype=$cputype mk install
                       mk clean
               }

and populate your /arm tree:

       cd /sys/src
       objtype=arm mk install

You should then be able to build a sheeva kernel:

       cd /sys/src/9/kw
       mk 'CONF=plug' install  # `mk install' will work too

This should create /arm/9plug; see booting(8) to get started.

Enjoy!