BOOTING(8)                                             BOOTING(8)

          booting - bootstrapping procedures


          This manual page collects the incantations required to
          bootstrap Plan 9 machines.  Some of the information here is
          specific to the installation at Bell Labs; some is generic.

          If a CPU server is up, BOOTP/DHCP and TFTP will run from
          there; if not, the necessary files and services must be
          available on a separate machine, such as a Unix system, to
          use these protocols for bootstrapping.

          Be sure to read boot(8) to understand what happens after the
          kernel is loaded.

          To bootstrap a diskless terminal or a CPU server, a file
          server must be running.

          On a PC, the 9boot(8) program is used to load the kernel
          /386/9pcf into memory.

          Once the kernel is booted, it behaves like the others.  See
          boot(8) for details.

        CPU Servers
          The Plan 9 CPU servers are multi-user, so they do not
          request a user name when booting.

        PC CPU Server
          Proceed as for the PC terminal, but load /386/9pccpuf .

        SGI Challenge multiprocessor CPU Server
          The Challenge ROM monitor can boot from the Ethernet.  To
          boot from the Ethernet, type


          or use the ROM command setenv to set the variable bootfile
          to that same string and type boot.  To load a different
          file, tell bootp which file to load, and to force the down-
          load to come from a particular system, bootp()system:file.
          Any arguments after bootp()file are passed to /boot.  If you
          are running a Plan 9 BOOTP server (see dhcpd(8)), the file
          name can be omitted and the file specified by the bootf

     BOOTING(8)                                             BOOTING(8)

          parameter for the machine in /lib/ndb will be downloaded by

          Once the kernel is loaded, it prompts for the Ethernet pro-
          tocol to use to reach the root file server; request the

        ARM CPU Servers
          All ARM systems are started by U-boot using similar com-
          mands.  The kernels (and thus ndb `bootf' parameters) are
          `/arm/9gd' for the Marvell PXA168-based Guruplug Display,
          `/arm/9plug' for all Marvell Kirkwood plugs (Sheevaplug,
          Guruplug, Openrd, etc.), and `/arm/9beagle' for TI OMAP3
          boards (IGEPv2 from ISEE, Gumstix Overo).  In the following,
          replace MAC with your board's MAC address without colons, in
          lower case (the format of the `ether' ndb attribute).

          First, establish a /cfg/pxe (plan9.ini) file for the new CPU
          server.  For Kirkwood plugs,

               cd /cfg/pxe; cp example-kw MAC

          and edit `/cfg/pxe/MAC' to taste.  For PXA plugs, replace
          `kw' with `pxa'; for OMAP boards, replace `kw' with `omap'
          and be sure to edit the line for `ether0' to set


          Second, configure U-boot to load the appropriate kernel and
          /cfg/pxe file at suitable addresses and start the kernel.
          For Sheevaplugs and Openrd boards, type this at U-boot once:

               setenv bootdelay 2
               # type the next two lines as one
               setenv bootcmd 'bootp; bootp; tftp 0x1000 /cfg/pxe/MAC; bootp;
                    tftp 0x800000; go 0x800000'

          For Guruplugs Displays, do the same but type this after
          `setenv bootcmd' instead:

               'dhcp; tftpboot; tftpboot 0x1000 /cfg/pxe/MAC; bootz 0x500000'

          For Kirkwood Guruplugs, type this after `setenv bootcmd':

               'dhcp 0x800000; tftp 0x1000 /cfg/pxe/MAC; go 0x800000'

          For IGEPv2 boards, type this after `setenv bootcmd':

               'tftp 0x80300000 /cfg/pxe/MAC; dhcp 0x80310000; go 0x80310000'

          For Gumstix Overo boards, type this after `setenv bootcmd':

     BOOTING(8)                                             BOOTING(8)

               'bootp 0x80310000; bootp 0x80300000 /cfg/pxe/MAC; go 0x80310000'

          Thereafter, the boards will automatically boot via BOOTP and
          TFTP when reset.

          ndb(6), 9boot(8), boot(8), init(8), plan9.ini(8)

          Sources for the various boot programs are under