ALTBOOT(8) System Manager's Manual (Sandpoint) ALTBOOT(8)

NAME

altbootprogram to boot NetBSD kernel from disk or network

DESCRIPTION

altboot is a standalone program which works on top of a NAS product's bootloader. It is capable of loading a NetBSD kernel from an IDE or SATA disk drive, or via network with NFS or TFTP protocol. altboot can be stored in flash ROM. Typically you will first copy it from flash into RAM and then invoke it there to boot the NetBSD kernel.

altboot runs in conjunction with popular U-Boot/PPCBoot bootloaders used by NAS products. With an appropriate boot command line, saved in the environment, altboot can load and start a NetBSD kernel without manual intervention. The original U-Boot/PPCBoot bootloaders remain useful and altboot works as a functional extension of them.

EXAMPLES

altboot occupies less than 128KB in volume and can be stored to any vacant space of the system's flash. It is made to run at RAM address offset 0x0100'0000. U-Boot/PPCboot is instructed to copy the program to RAM in this way:

=> cp.b fffe0000 1000000 20000

Here 0xfffe'0000 is the flash address where altboot is stored while 0x0100'0000 is the RAM address to copy to.

The invocation syntax is:

=> go 1000000 ide:N opt1 opt2 ... bootname
ide:N
where N is a string of digits, which defines the number of connected drives on each PATA channel. This option is useful to avoid the delays, when altboot is trying to detect a non-existing drive. Examples:
ide:10
A single master drive on the first channel. Nothing on the second channel.
ide:22
A master and slave drive on both channels of the first controller.
ide:1111
A master drive on each channel. The first two digits belong to the first controller, the last two to the second controller.

Unspecified digits will be read as 0. The ide option has only a meaning for PATA disks. Omitting it makes it default to ide:10.

optN
multi, auto, ask, single, ddb, userconf, norm, quiet, verb, silent, debug

Omitting optN makes altboot default to multi-user mode boot.

N.B., the maximum number of allowed go command arguments varies and depends on the U-Boot/PPCBoot buildtime configuration.

bootname
One of the following:

nfs:filename
nfs:
tftp:filename
tftp:
wdNp:filename
wdNp:
mem:address
net:

The last one is a synonym for “nfs”.

nfs:filename
issue a DHCP request to determine the IP address and download filename from the NFS server.
nfs:
target file is determined by filename field of /etc/dhcpd.conf
tftp:filename
issue a DHCP request to determine IP address and download filename from the TFTP server.
tftp:
target file is determined by filename field of /etc/dhcpd.conf
wdNp:filename
load the ELF NetBSD kernel filename from an FFSv2 or FFSv1 filesystem. N is a number to distinguish the target drive. p is a partition specifier. When omitted, partition ‘a' is assumed. “wd0a” means partition ‘a' of the first disk drive.
wdNp:
use filename “netbsd” for booting the ELF NetBSD kernel.
mem:address
boots the ELF NetBSD kernel from any address in memory. The address argument has to be specified as a hexadecimal number and denotes the start address of the ELF image in memory.

U-Boot/PPCBoot provides a way to run a short list of commands right after power-on. The following is a procedure to setup the system for starting NetBSD after a 5 second delay, allowing the user to break into interactive mode. Note that a backslashed ‘;' is necessary to enter the script correctly.

=> setenv bootcmd cp.b fffe0000 1000000 20000\; go 1000000 wd0: 
=> setenv bootdelay 5 
=> saveenv

When U-Boot/PPCBoot is lacking important commands like cp or go, or is unable to save the enviroment, then there is still the option to replace the Linux kernel module by altboot.img and save it to the same address in flash ROM. In this case you have only two options left to pass arguments:

SEE ALSO

dhcpd(8), diskless(8), nfsd(8), tftpd(8)

HISTORY

The NetBSD/sandpoint altboot first appeared in NetBSD 6.0.
January 22, 2012 NetBSD 6.1