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>
Tue, 17 Jul 2018 05:17:37 +0000 (07:17 +0200)
commit828eaeee2550c954ea98063e59e09980c1361de2
treeb0f7847f1b4ec6e90a1ad99856e15c97867e432d
parent8d4da3c5898ae3b594530b16c6f2ab79a2b7095b
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>
(cherry picked from commit 0f54489f754e7bd34e0430c57a11b6a54740d58e)
package/system/mtd/Makefile
package/system/mtd/src/trx.c