1*3af2acdcSchristos.\" $NetBSD: boot.8,v 1.7 2017/02/17 22:30:28 christos Exp $ 2c916a07bSrumble.\" 3c916a07bSrumble.\" Copyright (c) 2006 Stephen M. Rumble 4c916a07bSrumble.\" All rights reserved. 5c916a07bSrumble.\" 6c916a07bSrumble.\" Redistribution and use in source and binary forms, with or without 7c916a07bSrumble.\" modification, are permitted provided that the following conditions 8c916a07bSrumble.\" are met: 9c916a07bSrumble.\" 1. Redistributions of source code must retain the above copyright 10c916a07bSrumble.\" notice, this list of conditions and the following disclaimer. 11c916a07bSrumble.\" 2. The name of the author may not be used to endorse or promote products 12c916a07bSrumble.\" derived from this software without specific prior written permission. 13c916a07bSrumble.\" 14c916a07bSrumble.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 15c916a07bSrumble.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 16c916a07bSrumble.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 17c916a07bSrumble.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 18c916a07bSrumble.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 19c916a07bSrumble.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 20c916a07bSrumble.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 21c916a07bSrumble.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22c916a07bSrumble.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 23c916a07bSrumble.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24c916a07bSrumble.\" 25*3af2acdcSchristos.Dd February 17, 2017 26c916a07bSrumble.Dt BOOT 8 sgimips 27c916a07bSrumble.Os 28c916a07bSrumble.Sh NAME 29c916a07bSrumble.Nm boot 30c916a07bSrumble.Nd sgimips system bootstrapping procedures 31c916a07bSrumble.Sh DESCRIPTION 32c916a07bSrumble.Tn Silicon Graphics 33c916a07bSrumbleMIPS-based computers all feature essentially similar firmware systems. 34c916a07bSrumbleHowever, as of the Indigo R4x00 series (IP20), quasi- 35c916a07bSrumble.Tn ARCS 36c916a07bSrumble(Advanced RISC Computing Specification) compatible features are also present. 37c916a07bSrumbleAll known PROM implementations support loading executables from disk 38c916a07bSrumbledevices, as well as from the network via BOOTP and TFTP. 39c916a07bSrumble.Sh Disk Booting 40c916a07bSrumble.Tn SGI 41c916a07bSrumbleprovides a small filesystem at the beginning of each bootable disk called 42c916a07bSrumblea Volume Header, which contains a boot loader and other standalone utilities. 43c916a07bSrumbleBooting 44c916a07bSrumble.Nx 45c916a07bSrumblerequires that we write our bootloader into to the volume header using 46*3af2acdcSchristos.Xr sgimips/sgivol 8 . 47c916a07bSrumble.Pp 48c916a07bSrumbleOnce a bootloader is present in the volume header, it may be executed 49c916a07bSrumbledirectly by the PROM either manually, or at boot time using the 5043831249Swiz.Dq OSLoader 51c916a07bSrumblePROM environment variable. 52c916a07bSrumbleThe 53c916a07bSrumble.Nx 54c916a07bSrumblebootloader will obtain the kernel filename to boot from the PROM or EEPROM. 55c916a07bSrumbleThis is specified by setting the PROM environment variable 5643831249Swiz.Dq OSLoadFilename 57c916a07bSrumbleto an appropriate value. 58c916a07bSrumbleFor instance, 5943831249Swiz.Dq /netbsd.ecoff . 60c916a07bSrumble.Pp 61c916a07bSrumbleFor example, the following will configure the PROM to use the bootloader 6243831249Swiz.Dq aoutboot 63c916a07bSrumbleto load the kernel 6443831249Swiz.Dq netbsd.old 65c916a07bSrumble.Pp 66c916a07bSrumble.Dl Ic setenv OSLoader aoutboot 67c916a07bSrumble.Dl Ic setenv OSLoadFilename netbsd.old 68c916a07bSrumble.Sh Network Booting 69c916a07bSrumbleThe system firmware will obtain an IP address, TFTP server address, and an 70c916a07bSrumbleoptional filename from the BOOTP server and download it via TFTP. 71c916a07bSrumbleThe PROM's configurable network address environment variable 7243831249Swiz.Dq netaddr 73c916a07bSrumblemust match the address provided by the BOOTP server. 74c916a07bSrumble.Pp 75c916a07bSrumbleAn example BOOTP entry for 76c916a07bSrumble.Xr dhcpd 8 77c916a07bSrumblefollows: 78c916a07bSrumble.Pp 79c916a07bSrumble.Bd -unfilled -offset indent 80c916a07bSrumble host indigo3k { 81c916a07bSrumble hardware ethernet 08:00:69:42:42:42; 82c916a07bSrumble fixed-address 192.168.0.2; 83c916a07bSrumble option host-name "indigo3k.foo"; 84c916a07bSrumble #filename "/netbsd.ecoff"; 85b62e2a9bSrumble next-server 192.168.0.1; 86c916a07bSrumble option root-path "/export/indigo3k/root"; 87c916a07bSrumble server-name "192.168.0.1"; 88c916a07bSrumble } 89c916a07bSrumble.Ed 90c916a07bSrumble.Pp 91c916a07bSrumbleTo boot a kernel named 9243831249Swiz.Dq netbsd.ecoff 93c916a07bSrumblethe user would type: 94c916a07bSrumble.Dl Ic boot -f bootp():/netbsd.ecoff 95c916a07bSrumble.Pp 96c916a07bSrumbleSee 97c916a07bSrumble.Xr dhcpd.conf 5 98c916a07bSrumblefor more information on configuring 99a35cefceSjoerg.Xr dhcpd 8 100c916a07bSrumbleas a BOOTP server. 101c916a07bSrumble.Sh SEE ALSO 102c916a07bSrumble.Xr dhcpd.conf 5 , 10343831249Swiz.Xr dhcpd 8 , 104*3af2acdcSchristos.Xr sgimips/sgivol 8 105c916a07bSrumble.Sh CAVEATS 10643831249SwizSome older PROM revisions do not support loading of ELF images. 10743831249SwizThe build system automatically prepares ECOFF versions, which are 10843831249Swizcorrectly interpreted. 109c916a07bSrumble.Sh BUGS 110c916a07bSrumble.Nx 111c916a07bSrumbledoes not support booting from disk on systems lacking an ARCS-compatible 112c916a07bSrumblefirmware (presently supported systems include Personal Iris and Indigo R3000). 113c916a07bSrumbleIt is possible to work around this by creating a sufficiently large volume 114c916a07bSrumbleheader and placing the kernel in it, or by network booting. 115c916a07bSrumble.Pp 116c916a07bSrumbleSome firmware revisions have a bug, which precludes them from communicating 117c916a07bSrumblewith TFTP servers using ports above 32767. 118c916a07bSrumbleWhen using 119c916a07bSrumble.Nx 120c916a07bSrumbleas the TFTP server, this problem may be worked around as follows: 121c916a07bSrumble.Pp 122c916a07bSrumble.Dl Ic sysctl -w net.inet.ip.anonportmin=20000 123c916a07bSrumble.Dl Ic sysctl -w net.inet.ip.anonportmax=32767 124c916a07bSrumble.Pp 12529de6bc6SrumbleAnother bug exists in some firmware revisions, which precludes the PROM from 12629de6bc6Srumblecommunicating with TFTP servers that employ PMTU (Path MTU) discovery. 12729de6bc6SrumbleThis bug may be worked around by disabling PMTU on the TFTP server. 12809bb3e5aSwizThis does not presently affect 12909bb3e5aSwiz.Nx 13009bb3e5aSwizservers. 13129de6bc6Srumble.Pp 132c916a07bSrumbleThis man page is horribly incomplete. 133