Stock firmware layout
fis list
Name FLASH addr Mem addr Length Entry point
RedBoot 0x50000000 0x50000000 0x00040000 (256KB) 0x00000000
kernel 0x50040000 0x50040000 0x00200000 (2.0MB) 0x01008000
filesystem 0x50240000 0x50240000 0x00600000 (6.0MB) 0x00000000
usr 0x50840000 0x50840000 0x00680000 (6.5MB) 0x00000000
unallocated space 0x50EC0000 0x50EC0000 0x00040000 (256KB) 0x00000000
sysconfig 0x50F00000 0x50F00000 0x000C0000 (768KB) 0x00000000
RedBoot config 0x50FC0000 0x50FC0000 0x00001000 (128KB) 0x00000000
FIS directory 0x50FE0000 0x50FE0000 0x00020000 (128KB) 0x00000000
RedBoot>
Proposed layout to allow for a 256KB Loader partition and separate 128KB npe_ucode microcode area
This allows us to "chain boot" from RedBoot to Apex to the replacement kernel. Set the RedBoot boot script to "fis load Loader ; go".
fis list
Name FLASH addr Mem addr Length Entry point
RedBoot 0x50000000 0x50000000 0x00040000 (256KB) 0x00000000
kernel 0x50040000 0x50040000 0x00200000 ( 2MB) 0x01008000
filesystem 0x50240000 0x50240000 0x00D00000 ( 13MB) 0x00000000
sysconfig 0x50F40000 0x50F40000 0x00080000 (256KB) 0x00000000
Loader 0x50F80000 0x50F80000 0x00040000 (256KB) 0x00000000
RedBoot config 0x50FC0000 0x50FC0000 0x00001000 (128KB) 0x00000000
FIS directory 0x50FE0000 0x50FE0000 0x00020000 (128KB) 0x00000000
RedBoot>
Proposed layout to allow for a 512KB LudeBoot partition and separate LudeBoot config area
This allows us to "chain boot" from RedBoot to LudeBoot to the replacement kernel. Set the RedBoot boot script to "fis load Ludeboot ; go" and set the LudeBoot boot script to "fis load kernel ; exec".
Name FLASH addr Mem addr Length Entry point
RedBoot 0x50000000 0x50000000 0x00040000 (256KB) 0x00000000
kernel 0x50040000 0x00400000 0x00200000 (2.0MB) 0x00400000
filesystem 0x50240000 0x00B00000 0x00600000 (6.0MB) 0x00000000
usr 0x50840000 0x50840000 0x006C0000 (6.8MB) 0x00000000
sysconfig 0x50F00000 0x50F00000 0x00040000 (256KB) 0x00000000
LudeBoot 0x50F40000 0x00100000 0x00060000 (384KB) 0x00100040
LudeBoot config 0x50FA0000 0x50FA0000 0x00001000 (128KB) 0x00000000
RedBoot config 0x50FC0000 0x50FC0000 0x00001000 (128KB) 0x00000000
FIS directory 0x50FE0000 0x50FE0000 0x00020000 (128KB) 0x00000000
Steps required to transition from stock partitioning to LudeBoot partitioning
- Move the sysconfig partition up by 256KB and reduce it's size by 384KB
> fis load -b 0x01000000 -c sysconfig
> fis delete sysconfig
> fis create -f 0x50F00000 -l 0x00040000 -b 0x01000000 sysconfig
Name FLASH addr Mem addr Length Entry point
RedBoot 0x50000000 0x50000000 0x00040000 0x00000000
kernel 0x50040000 0x00400000 0x00200000 0x00400000
filesystem 0x50240000 0x00B00000 0x00600000 0x00000000
usr 0x50840000 0x50840000 0x00680000 0x00000000
unallocated space 0x50EC0000 0x50EC0000 0x00080000 0x00000000
sysconfig 0x50F00000 0x50F00000 0x00040000 0x00000000
unallocated space 0x50F40000 0x50F40000 0x00080000 0x00000000
RedBoot config 0x50FC0000 0x50FC0000 0x00001000 0x00000000
FIS directory 0x50FE0000 0x50FE0000 0x00020000 0x00000000
- Load a new RedBoot[RAM] image into memory (transfer redboot.srec)
> load -m xmodem
(transfer redboot.srec via xmodem)
- Create a new LudeBoot partition
> fis create -f 0x50F40000 -l 0x00060000 -r 0x00100000 -e 0x00100040 LudeBoot
Name FLASH addr Mem addr Length Entry point
RedBoot 0x50000000 0x50000000 0x00040000 0x00000000
kernel 0x50040000 0x00400000 0x00200000 0x00400000
filesystem 0x50240000 0x00B00000 0x00600000 0x00000000
usr 0x50840000 0x50840000 0x00680000 0x00000000
unallocated space 0x50EC0000 0x50EC0000 0x00080000 0x00000000
sysconfig 0x50F00000 0x50F00000 0x00040000 0x00000000
LudeBoot 0x50F40000 0x00100000 0x00060000 0x00100040
unallocated space 0x50FA0000 0x50FA0000 0x00020000 0x00000000
RedBoot config 0x50FC0000 0x50FC0000 0x00001000 0x00000000
FIS directory 0x50FE0000 0x50FE0000 0x00020000 0x00000000
- Create a new LudeBoot config partition
> fis create -f 0x50FA0000 -l 0x00001000 -n LudeBoot config
Name FLASH addr Mem addr Length Entry point
RedBoot 0x50000000 0x50000000 0x00040000 0x00000000
kernel 0x50040000 0x00400000 0x00200000 0x00400000
filesystem 0x50240000 0x00B00000 0x00600000 0x00000000
usr 0x50840000 0x50840000 0x00680000 0x00000000
unallocated space 0x50EC0000 0x50EC0000 0x00080000 0x00000000
sysconfig 0x50F00000 0x50F00000 0x00040000 0x00000000
LudeBoot 0x50F40000 0x00100000 0x00060000 0x00100040
LudeBoot config 0x50FA0000 0x50FA0000 0x00001000 0x00000000
RedBoot config 0x50FC0000 0x50FC0000 0x00001000 0x00000000
FIS directory 0x50FE0000 0x50FE0000 0x00020000 0x00000000
- Test the new LudeBoot image
> fis load LudeBoot
> go
- Initialise the LudeBoot config area
> fis init
- To flash a new version of LudeBoot
> load -m xmodem
(transfer redboot.srec via xmodem)
> fis create LudeBoot
Proposed layout to allow for a 512KB LudeBoot partition (including a LudeBoot config area) and a maximum size JFFS2 partition.
This allows us to "chain boot" from RedBoot to LudeBoot to the replacement kernel. Set the RedBoot boot script to "fis load Ludeboot ; go" and set the LudeBoot boot script to "fis load kernel ; exec".
Name FLASH addr Mem addr Length Entry point
RedBoot 0x50000000 0x50000000 0x00040000 (256KB) 0x00000000
kernel 0x50040000 0x00400000 0x00200000 ( 2MB) 0x00400000
filesystem 0x50240000 0x00B00000 0x00CC0000 (12+MB) 0x00000000
sysconfig 0x50F00000 0x50F00000 0x00040000 (256KB) 0x00000000
LudeBoot 0x50F40000 0x00100000 0x00060000 (384KB) 0x00100040
LudeBoot config 0x50FA0000 0x50FA0000 0x00020000 (128KB) 0x00000000
RedBoot config 0x50FC0000 0x50FC0000 0x00001000 (128KB) 0x00000000
FIS directory 0x50FE0000 0x50FE0000 0x00020000 (128KB) 0x00000000