xref: /netbsd-src/sys/arch/sandpoint/stand/altboot/README.altboot (revision 0647473106440a964f74e4da0d9101cd009f0b0d)
1/// notes about altboot ///
2
3$NetBSD: README.altboot,v 1.4 2011/04/19 14:12: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 the replacement of
23  vendor proprietary
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- D-Link DSM-G600 with heavily restricted vendor custom U-Boot
32
33   U-Boot 0.2.0 (May 26 2005 - 19:38:32)
34
35- QNAP TS-101 (V200) with vendor custom U-Boot
36
37   U-Boot 1.1.2 (Aug 28 2005 - 13:37:25) QNAP System, Inc.
38
39The standard use of altboot is to invoke it with a short script from
40U-Boot/PPCboot, where the altboot.bin image is stored in an unoccupied 128KB
41section of the target's HW NOR flash.  Combined with standard
42U-Boot/PPCboot functions, it is possible to boot a NetBSD kernel off
43it right after power-on, without the help of manual intervention.  Note
44that the original U-Boot/PPCboot still remains useful and altboot works
45as a functional extension for them.
46
47In case the firmware was crippled by the vendor so that it only boots
48Linux U-Boot images (D-Link), you can still use altboot by uploading
49altboot.img instead of the Linux kernel.
50
51Altboot hands the following bootinfo records to the NetBSD/sandpoint
52kernel.
53- processor clock tick value driving MPC8241/8245.
54- serial console selection.
55- booted kernel filename and which device it was fetched from.
56- Ethernet MAC address, if target HW lacks SEEPROM to store a unit unique
57  value.
58- product family indication.
59- preloaded kernel module names (under development).
60
61When no arguments are given, altboot defaults to boot a kernel called
62"netbsd" from the root partition of the first disk in multiuser mode.
63
64Boot arguments may be passed in three ways:
65- On the command line, directly after the "go 0x1000000" command.
66- From the U-Boot "bootargs" environment variable, when started by "bootm".
67- By entering the interactive mode.
68
69The following boot arguments are recognized:
70- multi			boot into multiuser
71- auto			boot into multiuser
72- single		boot into singleuser
73- ask			ask for boot device
74- ddb			drop into the kernel debugger
75- userconf		change configured devices
76
77The following boot flags are recognized:
78- norm			boot normally
79- quiet			boot quietly
80- verb			boot verbosely
81- silent		boot silently
82- debug			boot with debug output
83
84Additionally the special argument "altboot" is recognized, which replaces
85the actually running altboot program with the loaded binary file and
86restarts itself. Mainly useful for altboot testing.
87
88Multiple arguments may be specified at once, although not all combinations
89make sense. The format of an altboot command line is:
90
91  [[<bootargs> ...] <devicename>:[<bootfile>]]
92
93The following device names are supported:
94- tftp			boot from TFTP (address retrieved by DHCP)
95- nfs			boot from NFS (address retrieved by DHCP)
96- wd[N[P]]		boot from disk N, partition P, defaults to wd0a
97- mem			boot from memory
98
99For tftp and nfs the bootfile is determined by DHCP, when missing.
100For wd it defaults to "netbsd".
101For mem the bootfile is actually a hexadecimal address to load from and
102is mandatory.
103
104                             ### ### ###
105