AnsweredAssumed Answered

Writting uImage from linux using nandwrite on Blackfin based system

Question asked by dpenev on Jan 3, 2013
Latest reply on Jan 6, 2013 by dpenev



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!