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