Document the Flash layout, and how RedBoot invokes the kernel bootloader.
This commit is contained in:
parent
3be7ae7547
commit
5f212af961
|
@ -1,4 +1,4 @@
|
|||
$NetBSD: README,v 1.2 2006/03/04 11:28:36 scw Exp $
|
||||
$NetBSD: README,v 1.3 2006/03/04 13:17:18 scw Exp $
|
||||
|
||||
NetBSD for the Linksys NSLU2 (a.k.a. "Slug")
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
@ -63,8 +63,29 @@ disk activity/status LEDs.
|
|||
Non-hardware items on the TODO list include:
|
||||
|
||||
- gzboot support.
|
||||
This needs to emulate a "vmlinuz" compressed Linux kernel image so that
|
||||
RedBoot will invoke the kernel from Flash at power-up.
|
||||
The Slug's 8MB of Flash is split into 5 segments:
|
||||
|
||||
1 0x50000000-0x5003ffff: RedBoot (with some additional bits at the end).
|
||||
2 0x50040000-0x5005ffff: Sysconf (used by the Linksys firmware).
|
||||
3 0x50060000-0x5015ffff: Self-extracting compressed kernel image.
|
||||
4 0x50160000-0x507dffff: Compressed ramdisk image.
|
||||
5 0x507e0000-0x507fffff: SerComm Flash trailer.
|
||||
|
||||
Segments 1, 2, and 5 should be considered immutable. Segments 3 and 4
|
||||
have a 16-byte header, the first 4 bytes of which describe the length
|
||||
of the image contained in that segment (not including the header).
|
||||
|
||||
On power-up, RedBoot copies the image in segment 3 into SDRAM at 0x01d00000,
|
||||
and the image in segment 4 into SDRAM at 0x01000000. RedBoot then jumps to
|
||||
0x01d00000. This is just a regular ARM Linux compressed kernel bootloader.
|
||||
|
||||
So, we need to create a version of gzboot linked not at Flash address
|
||||
0x50060000, but at 0x01d00000 instead. The only downside is that it looks
|
||||
like the combined size of gzboot plus compressed kernel cannot exceed 1MB.
|
||||
|
||||
To support an md(4) root filesystem, we will need to modify gzboot to
|
||||
decompress the ramdisk image from segment 4 and copy it to the correct
|
||||
place in the decompressed kernel image.
|
||||
|
||||
- Move the kernel link address closer to the start of SDRAM. We waste a
|
||||
little under 2MB with the current setup.
|
||||
|
|
Loading…
Reference in New Issue