Rescue Partition Trouble Reports

Kernel and rootfs partition size

Problem: The kernel won't boot after changing the flash1 size (kernel and rootfs partition).

The boot code in the rescue partition is verifying the checksum of read-only partition before uncompressing and booting the kernel. If a checksum isn't correct the boot code will flash rapidly with the leds and the kernel will not boot.

There are, however, some limitations regarding partition sizes in the boot code checksum algorithm. If a partition size falls outside those limits the boot code will signal bad checksum and the kernel will not boot even if the checksum is correct.

The boot code limitations and read-only partitions varies from SDK release to SDK release. Below is a table of boot code limitations:

SDK
(kernel)
Alignment Rescue partition size +
Flash1 partition size
R1.90
(2.4.20)
NOR flash block size <= size of 1st Flash (cse0)
R1.91
(2.4.22)
NOR flash block size <= size of 1st Flash (cse0)
R1.92
(2.4.26)
NOR flash block size <= size of 1st Flash (cse0)
R2.00
(2.4.29)
NOR flash block size <> size of 1st Flash (cse0)
R2.00
(2.6.11)
NOR flash block size <> size of 1st Flash (cse0)
R2.01
(2.4.31)
NOR flash block size <> size of 1st Flash (cse0)
R2.01
(2.6.12)
NOR flash block size <> size of 1st Flash (cse0)
R2.01-1
(2.4.32)
NOR flash block size <> size of 1st Flash (cse0)
R2.01-1
(2.6.15)
NOR flash block size <> size of 1st Flash (cse0)
R2.10
(2.6.19)
NOR flash block size <> size of 1st Flash (cse0)
R2.20
(2.6.26)
NOR flash block size No limitations


The table below shows partition size limitations in the possible boot code and SDK combinations:

Software Distribution
Boot code R1_90 - R1_92 R2_00 - R2_10 R2_20
R1_90 - R1_92 No limitations Flash1 partition end <= size of 1st Flash (cse0) Flash1 partition end <= size of 1st Flash (cse0)
R2_00 - R2_10 No limitations Flash1 partition end <> size of 1st Flash (cse0) Flash1 partition end <> size of 1st Flash (cse0)
R2_20 No limitations No limitations No limitations


Solution: Upgrade the rescue partition. If you, for some reason, don't want to upgrade the rescue partition you must make sure the flash1 partition size fits into the boot code limits listed above. If you don't know which boot code revision is installed on your target you should upgrade the rescue partition.

How do I upgrade the rescue code? Load your new firmware image using

boot_linux -F [-i path_to_fimage]

This will upgrade the rescue partition as well as the kernel, rootfs and rwfs partitions.

Please note, when upgrading the rescue partition (and the boot code) you will loose the serial number (and MAC address) of your product. To set the serial number after upgrade, please see how_do_i_change_the_mac_address. If you don't know the serial number of your product, run 'bootblocktool -l' to list the boot block parameters. The serial number parameter is named 'SERNO'.

 
rescue_partition_trouble_reports.txt · Last modified: 2008/12/16 13:23 by jesper
 
All text is available under the terms of the GNU Free Documentation License (see Copyrights for details).