[LEDE-DEV] bcm53xx: MD5 checksum over too few bytes of firmware breaks kernel booting

Rafał Miłecki zajec5 at gmail.com
Mon Jun 20 09:56:03 PDT 2016


On 20 June 2016 at 14:33, Rafał Miłecki <zajec5 at gmail.com> wrote:
> My DIR-885L has following partitions:
>
> [    1.034740] Creating 1 MTD partitions on "brcmnand.0":
> [    1.039896] 0x000000000000-0x000008000000 : "firmware"
> [    1.075568] 2 seama-fw partitions found on MTD device firmware
> [    1.081429] 0x000000000040-0x000000400000 : "kernel"
> [    1.086983] 0x000000400000-0x000008000000 : "ubi"
>
> As you can guess kernel's content doesn't change and ubi's content
> does. It means we should calculate firmware checksum over 0x40000 -
> 0x40 = 0x3fffc0 bytes.
>
> Unfortunately after executing:
> mtd -c 0x3fffc0 fixseama firmware
> and rebooting, LEDE's kernel doesn't boot anymore. It hangs as the
> last CFE message:
> Starting program at 0x00008000

This is a regression cased by:

commit b3be33f135f447d56ef9a5461e7e675d5cc35730
Author: Felix Fietkau <nbd at nbd.name>
Date:   Tue Jun 14 12:01:22 2016 +0200

    bcm53xx: use uncompressed zImages

    The boot loader expects LZMA compressed kernel images

    Signed-off-by: Felix Fietkau <nbd at nbd.name>

Reverting this commit from the master makes kernel always booting again.

Felix: any idea what may it be? Can you change be triggering some CFE bug?



More information about the Lede-dev mailing list