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.