BOOT(8)

NAME
boot - sgimips system bootstrapping procedures

DESCRIPTION
Silicon Graphics MIPS-based computers all feature essentially similar firmware systems. However, as of the Indigo R4x00 series (IP20), quasi- ARCS (Advanced RISC Computing Specification) compatible features are also present. All known PROM implementations support loading executables from disk devices, as well as from the network via BOOTP and TFTP.

Disk Booting
SGI provides a small filesystem at the beginning of each bootable disk called a Volume Header, which contains a boot loader and other standalone utilities. Booting NetBSD requires that we write our bootloader into to the volume header using sgimips/sgivol(8).

Once a bootloader is present in the volume header, it may be executed directly by the PROM either manually, or at boot time using the “OSLoader” PROM environment variable. The NetBSD bootloader will obtain the kernel filename to boot from the PROM or EEPROM. This is specified by setting the PROM environment variable “OSLoadFilename” to an appropriate value. For instance, “/netbsd.ecoff”.

For example, the following will configure the PROM to use the bootloader “aoutboot” to load the kernel “netbsd.old”

    setenv OSLoader aoutboot
    setenv OSLoadFilename netbsd.old

Network Booting
The system firmware will obtain an IP address, TFTP server address, and an optional filename from the BOOTP server and download it via TFTP. The PROM's configurable network address environment variable “netaddr” must match the address provided by the BOOTP server.

An example BOOTP entry for dhcpd(8) follows:

    	host indigo3k {
    		hardware ethernet 08:00:69:42:42:42;
    		fixed-address 192.168.0.2;
    		option host-name "indigo3k.foo";
    		#filename "/netbsd.ecoff";
    		next-server 192.168.0.1;
    		option root-path "/export/indigo3k/root";
    		server-name "192.168.0.1";
    	}

To boot a kernel named “netbsd.ecoff” the user would type:
    boot -f bootp():/netbsd.ecoff

See dhcpd.conf(5) for more information on configuring dhcpd(8) as a BOOTP server.

SEE ALSO
dhcpd.conf(5), dhcpd(8), sgimips/sgivol(8)

CAVEATS
Some older PROM revisions do not support loading of ELF images. The build system automatically prepares ECOFF versions, which are correctly interpreted.

BUGS
NetBSD does not support booting from disk on systems lacking an ARCS-compatible firmware (presently supported systems include Personal Iris and Indigo R3000). It is possible to work around this by creating a sufficiently large volume header and placing the kernel in it, or by network booting.

Some firmware revisions have a bug, which precludes them from communicating with TFTP servers using ports above 32767. When using NetBSD as the TFTP server, this problem may be worked around as follows:

    sysctl -w net.inet.ip.anonportmin=20000
    sysctl -w net.inet.ip.anonportmax=32767

Another bug exists in some firmware revisions, which precludes the PROM from communicating with TFTP servers that employ PMTU (Path MTU) discovery. This bug may be worked around by disabling PMTU on the TFTP server. This does not presently affect NetBSD servers.

This man page is horribly incomplete.