README.altboot revision 1.9
1/// notes about altboot /// 2 3$NetBSD: README.altboot,v 1.9 2012/01/14 22:36:54 phx Exp $ 4 5Altboot is a functional bridge to fill the gap between a NAS product 6custom bootloader and the NetBSD kernel startup environment. Altboot 7irons out and rectifies erroneously configured HW by product 8bootloaders and prepares a sane runtime, better suited for booting 9NetBSD kernels. 10 11- provides the foundation of a fast NetBSD porting cycle with functionalities 12 product bootloaders don't have. 13- facilitates a flexible and clean NetBSD implementation tailoured 14 to target HW in detail, minimizing bumpy adjustments and hacks in 15 locore asm and machdeps in very early kernel startup stage. 16- levels out differences among similar-but-not-the-same porting 17 targets to make it possible having common NetBSD kernels for them. 18- builds and hands a bootinfo list to the NetBSD kernel. 19 20Altboot is known working on at least these models: 21 22- KuroBox or LinkStation with a popular U-Boot as replacement of 23 the vendor's proprietary one 24 25 U-Boot 1.1.4 LiSt 2.1.0 (Sep 21 2006 - 00:22:56) LinkStation / KuroBox 26 27- Synology 101g+ with vendor custom PPCboot 28 29 PPCBoot 2.0.0 (Mar 1 2005 - 15:31:41) 30 31- Synology 106j, 207, 407e with vendor custom PPCboot 32 33 PPCBoot 2.0.0 (Jan 30 2007 - xx:xx:xx) 34 35- D-Link DSM-G600 with heavily restricted vendor custom U-Boot 36 37 U-Boot 0.2.0 (May 26 2005 - 19:38:32) 38 39- QNAP TS-101 (V200) with vendor custom U-Boot 40 41 U-Boot 1.1.2 (Aug 28 2005 - 13:37:25) QNAP System, Inc. 42 43- Iomega StorCenter with vendor custom U-Boot 44 45 U-Boot 1.0.0 (Sep 2 2005 - 14:49:11) 46 47- Allnet 6250 and compatible with restricted vendor custom PPCboot 48 49 PPCBoot 2.0.0-A9 (Feb 13 2006 - 14:56:11) 50 51The standard use of altboot is to invoke it with a short script from 52U-Boot/PPCboot, where the altboot.bin image is stored in an unoccupied 128KB 53section of the target's HW NOR flash. Combined with standard 54U-Boot/PPCboot functions, it is possible to boot a NetBSD kernel off 55it right after power-on, without the help of manual intervention. Note 56that the original U-Boot/PPCboot still remains useful and altboot works 57as a functional extension for them. 58 59In case the firmware was crippled by the vendor so that it only boots 60Linux U-Boot images (D-Link), you can still use altboot by uploading 61altboot.img instead of the Linux kernel. 62 63Altboot passes the following bootinfo records to the NetBSD/sandpoint 64kernel. 65- processor clock tick value driving MPC8241/8245. 66- serial console selection. 67- booted kernel filename and which device it was fetched from. 68- Ethernet MAC address, if target HW lacks SEEPROM to store a unit unique 69 value. 70- product family indication. 71- preloaded kernel module names (under development). 72 73When no arguments are given, altboot defaults to boot a kernel called 74"netbsd" from the root partition of the first disk in multiuser mode. 75 76Boot arguments may be passed in three ways: 77- On the command line, directly after the "go 0x1000000" command. 78- From the U-Boot "bootargs" environment variable, when started by "bootm". 79- By entering the interactive mode. 80 81The following boot arguments are recognized: 82- multi boot into multiuser 83- auto boot into multiuser 84- single boot into singleuser 85- ask ask for boot device 86- ddb drop into the kernel debugger 87- userconf change configured devices 88 89The following boot flags are recognized: 90- norm boot normally 91- quiet boot quietly 92- verb boot verbosely 93- silent boot silently 94- debug boot with debug output 95 96Additionally the special argument "altboot" is recognized, which replaces 97the actually running altboot program with the loaded binary file and 98restarts itself. Mainly useful for altboot testing. 99 100Multiple arguments may be specified at once, although not all combinations 101make sense. The format of an altboot command line is: 102 103 [[<bootargs> ...] <devicename>:[<bootfile>]] 104 105The following device names are supported: 106- tftp boot from TFTP (address retrieved by DHCP) 107- nfs boot from NFS (address retrieved by DHCP) 108- wd[N[P]] boot from disk N, partition P, defaults to wd0a 109- mem boot from memory 110 111For tftp and nfs the bootfile is determined by DHCP, when missing. 112For wd it defaults to "netbsd". 113For mem the bootfile is actually a hexadecimal address to load from and 114is mandatory. 115 116 ### ### ### 117