for the previous dump I used 0x800 instead of 0x4000 in nand read
but as you see the length of the file is 0x4000 and the first 4 bytes are crc32 and that leaves 0x3ffc of data as you suggested
for the previous dump I used 0x800 instead of 0x4000 in nand read
but as you see the length of the file is 0x4000 and the first 4 bytes are crc32 and that leaves 0x3ffc of data as you suggested
I would guess that command is not including the spare area, as that is stored at a "lower level" on the flash and is usually not used by applications.
Every page is actually 0x840 bytes long. the last 0x40 bytes is typically used to store meta data (bad blocks, ECC information, etc) and is usually invisible for higher-level operations.
Looking at the code, I see what appears to be some software-implemented ECC check that is operating on the spare pages, just before the program decides to throw up that block read failure.
My guess is that data is not checking out, and causing the PBOOT to report a failure, despite the data actually being good.
UBOOT may not be implementing this check.