[U-Boot] "UnCorrectable RS-ECC Error" occurs when reading NAND flash under u-boot 2009.08 for i.mx25

Hi, every one. This is my first time of posting a message here, firstly , thanks for any body who builds such a nice platform give help. In recent two weeks, I added a NAND flash driver support for Micron's MT29F2G08ABD (SLC;page size: x8 2048+64bytes; Block size: 64 pages; Device size: 2Gb) memory chip base on u-boot 2009.08 for i.mx25. Block Erasing and Page Programming functions worked properly, but when I do page reading operation, "UnCorrectable RS-ECC Error" error message prompted. I checked the NFC (NAND Flash Controller) spare area buffer and found that the 4th 512-byte spare area buffer's data were very weird, there is not any ECC code that should be generated by the FEC but contained the data what I programmed to the memory. In order to easy to do troubleshooting works, I make a simply testing process, what I do is, firstly, I only erase page 0 of block 0, and later I program the erased page with a 2k file which consisted of 2048 same character 'E', at last I read the page back , but "UnCorrectable RS-ECC Error" occurs. I pasted the contents of NFC's spare area buffer as following:
bb001000: ffffffff 66ffffff bab935d1 22446bbd .......f.5...kD" bb001010: b935d166 ffffffba ffffffff ffffffff f.5............. bb001020: 5f7467b9 21650de8 4d97fbd0 3166372c .gt_..e!...M,7f1 bb001030: 3b7e8bef b1cf62a5 bb8f50f6 de0031b3 ..~;.b...P...1.. bb001040: ffffffff 66ffffff bab935d1 22446bbd .......f.5...kD" bb001050: b935d166 ffffffba ffffffff ffffffff f.5............. bb001060: bafcf1fa 0c0698ef 09089d72 e6200c80 ........r..... . bb001070: d638f5ef 20130b40 591dd763 e224f527 ..8.@.. c..Y'.$. bb001080: ffffffff 66ffffff bab935d1 22446bbd .......f.5...kD" bb001090: b935d166 ffffffba ffffffff ffffffff f.5............. bb0010a0: 76fa88ba 7a648809 d27bbc43 6b2b81cf ...v..dzC.{...+k bb0010b0: f6b95e3b 1286638e 73d324fb 22880ce5 ;^...c...$.s..." bb0010c0: 45454545 45454545 45454545 45454545 EEEEEEEEEEEEEEEE bb0010d0: 45454545 45454545 45454545 45454545 EEEEEEEEEEEEEEEE bb0010e0: 36d8f3d5 0099a9e7 eb289d07 11664624 ...6......(.$Ff. bb0010f0: 4fbb9f24 505ab041 25ff61f6 43280406 $..OA.ZP.a.%..(C
Contents written in red characters should be ECC code, but changed to what I programmed to the memory in preverious programming process. Any advice, please feel free to tell me. Thanks very much in advance.
Thanks & Regards, Leon Zhong

because characters couldn't be written in red, so I put the wrong contents as following: bb0010c0: 45454545 45454545 45454545 45454545 EEEEEEEEEEEEEEEE bb0010d0: 45454545 45454545 45454545 45454545 EEEEEEEEEEEEEEEE I really appreciate any suggestions very much.
dajiang.zhong wrote:
Hi, every one. This is my first time of posting a message here, firstly , thanks for any body who builds such a nice platform give help. In recent two weeks, I added a NAND flash driver support for Micron's MT29F2G08ABD (SLC;page size: x8 2048+64bytes; Block size: 64 pages; Device size: 2Gb) memory chip base on u-boot 2009.08 for i.mx25. Block Erasing and Page Programming functions worked properly, but when I do page reading operation, "UnCorrectable RS-ECC Error" error message prompted. I checked the NFC (NAND Flash Controller) spare area buffer and found that the 4th 512-byte spare area buffer's data were very weird, there is not any ECC code that should be generated by the FEC but contained the data what I programmed to the memory. In order to easy to do troubleshooting works, I make a simply testing process, what I do is, firstly, I only erase page 0 of block 0, and later I program the erased page with a 2k file which consisted of 2048 same character 'E', at last I read the page back , but "UnCorrectable RS-ECC Error" occurs. I pasted the contents of NFC's spare area buffer as following:
bb001000: ffffffff 66ffffff bab935d1 22446bbd .......f.5...kD" bb001010: b935d166 ffffffba ffffffff ffffffff f.5............. bb001020: 5f7467b9 21650de8 4d97fbd0 3166372c .gt_..e!...M,7f1 bb001030: 3b7e8bef b1cf62a5 bb8f50f6 de0031b3 ..~;.b...P...1.. bb001040: ffffffff 66ffffff bab935d1 22446bbd .......f.5...kD" bb001050: b935d166 ffffffba ffffffff ffffffff f.5............. bb001060: bafcf1fa 0c0698ef 09089d72 e6200c80 ........r..... . bb001070: d638f5ef 20130b40 591dd763 e224f527 ..8.@.. c..Y'.$. bb001080: ffffffff 66ffffff bab935d1 22446bbd .......f.5...kD" bb001090: b935d166 ffffffba ffffffff ffffffff f.5............. bb0010a0: 76fa88ba 7a648809 d27bbc43 6b2b81cf ...v..dzC.{...+k bb0010b0: f6b95e3b 1286638e 73d324fb 22880ce5 ;^...c...$.s..." bb0010c0: 45454545 45454545 45454545 45454545 EEEEEEEEEEEEEEEE bb0010d0: 45454545 45454545 45454545 45454545 EEEEEEEEEEEEEEEE bb0010e0: 36d8f3d5 0099a9e7 eb289d07 11664624 ...6......(.$Ff. bb0010f0: 4fbb9f24 505ab041 25ff61f6 43280406 $..OA.ZP.a.%..(C
Contents written in red characters should be ECC code, but changed to what I programmed to the memory in preverious programming process. Any advice, please feel free to tell me. Thanks very much in advance.
Thanks & Regards, Leon Zhong
U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot

On Fri, 27 Aug 2010 20:35:12 -0700 dajiang.zhong@tektronix.com wrote:
This is my first time of posting a message here, firstly , thanks for any body who builds such a nice platform give help. In recent two weeks, I added a NAND flash driver support for Micron's MT29F2G08ABD (SLC;page size: x8 2048+64bytes; Block size: 64 pages; Device size: 2Gb) memory chip base on u-boot 2009.08 for i.mx25.
Could you try it on current U-Boot? It should already have support for i.mx25's NAND controller in drivers/mtd/nand/mxc_nand.c.
I make a simply testing process, what I do is, firstly, I only erase page 0 of block 0,
You cannot erase only page 0. You have to erase a whole block at a time.
-Scott

Scott Wood-2 wrote:
On Fri, 27 Aug 2010 20:35:12 -0700
Could you try it on current U-Boot? It should already have support for i.mx25's NAND controller in drivers/mtd/nand/mxc_nand.c.
I make a simply testing process, what I do is, firstly, I only erase page 0 of block 0,
You cannot erase only page 0. You have to erase a whole block at a time.
-Scott
Thanks Scott, I think there maybe some abscure expression in my previous explain about my test process, In my testing prcess firstly, I erased whole block 0,then I program only page 0 of block 0. Now I am trying current U-Boot to see if it will work. Thanks very much Scott.
participants (3)
-
dajiang
-
dajiang.zhong@tektronix.com
-
Scott Wood