
Hello,
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 nand flash.
I've heard about ECC layout difference between uboot and linux kernel. Do you think it may be something like this?
Thank you Dimitar