This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DM8168 and OMAP3530 has lots of bad blocks when writing/reading Nand Flash

Other Parts Discussed in Thread: OMAP3530

Hi,

Linux kernel:linux-2.6.37-psp04.00.00.12   Platform: DM8168 & OMAP3530     Nand Flash:Micron & Samsung  512M    filesystem:yaffs2   ECC: software ECC

When writing and reading Nand Flash,  yaffs2 print the "**>> Block 112 retired ;  Block 112 is in state 9 after gc, should be erased".  It means that  yaffs2 will mark  Block 112   to Bad block.  The Bad blocks continue to increase.

I find that  nand_correct_data()  return 1  when single bit error is checked.   Then  nand_read return EUCLEAN.  EUCLEAN means that  single  bit error is checked.  Yaffs2 will mark  this Block to Bad block  or try  it again.

I think that  software ecc can correct single bit error, but why  kernel return EUCLEAN  and yaffs2 mark it to Bad block ?

Can I return 0 insted of  1 or EUCLEAN  when single bit erroe is checked and corrected ?