Happy new year to all of you!
We are observing an issue writing some data in the nand flash from uClinux.
Things which I think are relevant are:
-It is custom Blackfin BF547 based system. It uses MT29F4G08ABADAH4 chip
And the interface is thru the built in hardware NAND controller in the CPU.
-We are using 3.0.8-ADI-2011R1 uClinux kernel
-We are usng uboot 2011.09 (ADI-2011R1)
-the file uImage is written by the commands
/bin/flash_erase /dev/mtd3 0 0
/bin/nandwrite /dev/mtd3 uImage
-It is verified that the data are written properly using:
cmp uImage /dev/mtd3
-In uboot however if I load the original data (using tftp at 0x2000000) and
the one read from the nand flash (at 0x3000000)
I observe few bytes mismatch as shown bellow: (The uImage is 0xC00000 long)
byte at 0x02027bc4 (0xa2) != byte at 0x03027bc4 (0xb2)
byte at 0x0234f3f4 (0x05) != byte at 0x0334f3f4 (0x07)
byte at 0x029393b4 (0x73) != byte at 0x039393b4 (0x71)
byte at 0x02a7d564 (0x63) != byte at 0x03a7d564 (0x43)
byte at 0x02b57104 (0x16) != byte at 0x03b57104 (0x06)
byte at 0x02b5933f (0xbf) != byte at 0x03b5933f (0xbb)
-If another nand flash partition is used (so I write the same data at a
different nand flash offset)
the same mismatch is observed at the same offsets relative to the beginning
of the partition.
- If I change the data I try to write in flash the mismatches become
different at different locations.
Still only a few mismatches
-From uboot we can read/write in the nand flash without issues.
No bad blocks are reported with those particular nand chip while I erase the
I've heard about ECC layout difference between uboot and linux kernel.
Do you think it may be something like this?