BOOTING(8)                                             BOOTING(8)

     NAME
          booting - bootstrapping procedures

     SYNOPSIS
          none

     DESCRIPTION
          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.

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

        PCs
          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

               bootp()/mips/9ch

          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
          default.

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

        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

               ea=MAC

          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'
               saveenv

          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.

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

     SOURCE
          Sources for the various boot programs are under
          /sys/src/boot.