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 ?