README.altboot revision 1.2 1 /// notes about altboot ///
2
3 $NetBSD: README.altboot,v 1.2 2011/03/13 15:23:43 phx Exp $
4
5 Altboot is a functional bridge to fill the gap between a NAS product
6 custom bootloader and the NetBSD kernel startup environment. Altboot
7 irons out and rectifies erroneously configured HW by product
8 bootloaders and prepares a sane runtime better suited for booting
9 NetBSD 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
20 Altboot is known working on at least three models.
21 - KuroBox with a popular U-Boot as the replacement of vendor proprietary
22
23 U-Boot 1.1.4 LiSt 2.1.0 (Sep 21 2006 - 00:22:56) LinkStation / KuroBox
24
25 - Synology 101g+ with vendor custom PPCboot
26
27 PPCBoot 2.0.0 (Mar 1 2005 - 15:31:41)
28
29 - D-Link DSM-G600 with heavily restricted vendor custom U-Boot
30
31 U-Boot 0.2.0 (May 26 2005 - 19:38:32)
32
33 The standard use of altboot is to invoke it with a short script from
34 U-Boot/PPCboot, where the altboot image is stored in an unoccupied 128KB
35 section of the target's HW NOR flash. Combined with standard
36 U-Boot/PPCboot functions, it is possible to boot a NetBSD kernel off
37 it right after power-on, without the help of manual intervention. Note
38 that the original U-Boot/PPCboot still remains useful and altboot works
39 as a functional extension for them.
40
41 Altboot hands the following bootinfo records to the NetBSD/sandpoint
42 kernel.
43 - processor clock tick value driving MPC8241/8245.
44 - serial console selection.
45 - booted kernel filename and which device it was fetched from.
46 - Ethernet MAC address, if target HW lacks SEEPROM to store a unit unique
47 value.
48 - product family indication.
49 - preloaded kernel module names (under development).
50
51 ### ### ###
52