The information blocks reside at the block1 & block2 of the NAND flash is employed by the bootrom to load the bootloader and verify its integrity, they are also in use by the bootloader to load the firmware. If we want a multiboot option in rockbox, maybe we should find a way to utilize them.
Block1, Page 0
-------------------------------------------------------
0 [2 bytes] Device ID (HEX "87 00")
2 [254 bytes] Block Table (0 - good block, 1-FD, bad block, replaced by the block in this number, FE - to replace another block, FF - n/a )
0x100 [1 byte] Number of Reserved blocks
0x101 [3 bytes] Size of bootloader
0x104 [4 bytes] CRC/Checksum of bootloader
0x108 [1 byte] ECC_flag (0 = Disable ECC, 1= Enable ECC)
0x109 [1 byte] CRC_flag (0 = No CRC, 1 = CRC, 2 = Checksum)
0x10A [4 bytes] CRC/Checksum of Page 0
Block1, Page 1
-------------------------------------------------------
0 [2 bytes] N= Total Module Number ( HEX 00 02)
2 [10 x N bytes] Info table of each module
1 byte - Start block #
2 bytes - Start page #
4 bytes - CRC/Checksum of Module
3 bytes - Module Size in bytes
4 bytes - CRC/Checksum of Page 1
Block1 Page 3
-------------------------------------------------------
The bootloader is start at page 2 following the information blocks, it's a copy of Module 0.
Block 2 is a copy of Block1 for redundancy, if one of them is failed, the bootrom will choose another.
The firmware area is start from block 3 in normal (consists both Module 0 and Module 1).