[Yaffs] [Yaffs2] Problem with ECC (two bit flops)

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Lukasz Majewski
Date:  
To: yaffs
Subject: [Yaffs] [Yaffs2] Problem with ECC (two bit flops)
Dear All,

I'm working on embedded system equipped with NAND Flash memory.

The code is pretty old and corresponds to SHA1:
60f5ecebdeee37d56f33374c407376f596baa468

from: git://www.aleph1.co.uk/yaffs2


From my debugging I do see two bit flips (should be 1s, but I read 0s)
happening in the same chunk of data (0x100), from which ECC is
calculated.
As fair as I know the ECC will be "correct" for two bit flops.


I've looked to the yaffs_ecc.* files and found following comment:


/*
* This code implements the ECC algorithm used in SmartMedia.
*
* The ECC comprises 22 bits of parity information and is stuffed into
3 bytes.
* The two unused bit are set to 1.
* The ECC can correct single bit errors in a 256-byte page of data.
* Thus, two such ECC blocks are used on a 512-byte NAND page.
*
*/

So it seems like two bit flops are not detected - only single bit flop
is detected and corrected.

Is there any way to mitigate this issue?

IMHO the NAND flash page for this data chunk shall be marked as BAD ->
but we cannot detect such errors.

Is there any plan to implement new algorithm?
For example:

https://www.micron.com/~/media/documents/products/technical-note/nand-flash/tn2963_ecc_in_slc_nand.pdf



Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: