On 20/09/2019 11.17, Sascha Hauer wrote:
I don't think that U-Boot is corrupting the table. Apparently
ef347c0cfd619a925 introduces a unwanted change in the page layout of the
NAND. I would expect that with the known good kernel you have a bbt
written by either the Kernel or U-Boot, doesn't matter, both parties can
read it. Once you start the broken Kernel the kernel can no longer read
the table, re-writes it, can now read it itself, but U-Boot no longer
can read it, then re-writes it with the effect that Linux re-writes it
again.
I don't know how the differences look, you have to nail that down
yourself by systematically using nandwrite and nandread, maybe with or
without oob. Once you found the differences I can help you in finding
the issue in my patch. Alternatively I can offer you to have a look
myself, but you would have to provide me a board, either physically
by mail or virtually by ssh.
Sascha
We are using suspend (to ram).
And it seems that it's suspend that triggers the UBI errors.
I'm getting this in the log:
[ 661.348790] gpmi_reset_block(5cbb0f7e): module reset timeout
[ 661.348889] gpmi-nand 1806000.gpmi-nand: Error setting GPMI : -110
[ 661.348928] PM: dpm_run_callback(): platform_pm_resume+0x0/0x44
returns -110
[ 661.348961] PM: Device 1806000.gpmi-nand failed to resume: error -110
[ 686.595724] ubi0 error: ubi_io_read: error -74 (ECC error) while
reading 188 bytes from PEB 949:247208, read 188 bytes
[ 686.607767] UBIFS error (ubi0:8 pid 284): ubifs_read_node: bad node
type (0 but expected 9)
[ 686.616592] UBIFS error (ubi0:8 pid 284): ubifs_read_node: bad node
at LEB 204:239016, LEB mapping status 1
[ 686.626462] Not a node, first 24 bytes:
[ 686.626482] 00000000: 00 5e 04 00 00 2d 05 00 20 bb 00 00 00 a0 44 02
00 bc 00 00 00 5e 04 00 .^...-.. .....D......^..
[ 686.645435] UBIFS error (ubi0:8 pid 284): ubifs_evict_inode: can't
delete inode 1118, error -22
[ 686.655449] UBIFS error (ubi0:8 pid 252): make_reservation: cannot
reserve 328 bytes in jhead 1, error -30
[ 716.895990] UBIFS error (ubi0:8 pid 272): make_reservation: cannot
reserve 160 bytes in jhead 1, error -30
[ 716.905996] UBIFS error (ubi0:8 pid 272): ubifs_write_inode: can't
write inode 1119, error -30
/Sean
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/