mtd: support bad blocks within the mtd_fixtrx()
authorRafał Miłecki <rafal@milecki.pl>
Sun, 15 Jul 2018 14:51:41 +0000 (16:51 +0200)
committerRafał Miłecki <rafal@milecki.pl>
Sun, 15 Jul 2018 14:51:41 +0000 (16:51 +0200)
commit0f54489f754e7bd34e0430c57a11b6a54740d58e
tree19b141f070b8e130685ed2192d26cfde42972cd4
parentb123921a92a957f08abb186e041aa38aa9328f3e
mtd: support bad blocks within the mtd_fixtrx()

Reading MTD data with (p)read doesn't return any error when accessing
bad block. As the result, with current code, CRC32 covers "data" stored
in bad blocks.

That behavior doesn't match CFE's one (bootloader simply skips bad
blocks) and may result in:
1) Invalid CRC32
2) CFE refusing to boot firmware with a following error:
Boot program checksum is invalid

Fix that problem by checking every block before reading its content.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
package/system/mtd/Makefile
package/system/mtd/src/trx.c