MTD NAND BCH support for 24 bits/1K of ECC correction?

From: Aaron Williams
Date: Thu Mar 28 2013 - 18:23:24 EST


Hi all,

I am trying to clean up our OCTEON NAND flash driver in the Linux kernel and enable support for multi-bit ECC using BCH and am having some issues. I am able to successfully work with NAND flash that requires 4 bits ECC per 512 bytes but I am having issues with one of our boards that has a NAND device that requires 24 bits of ECC per 1024 bytes.

I was wondering if ECC of this magnitude has been successfully tested in the past. By my calculations I should have 42 bytes of ECC per 1K block (m=14, t=24 for 336 bits of ECC data). My problem is that when decoding an encoded block I am seeing that nroots != err in decode_bch() after find_poly_roots(). I am seeing this for all of the blocks I attempt to read. As far as I can tell the data being sent to BCH is good, though it might have a few bad bits but nowhere near 24.

I am also seeing this same behavior in my U-Boot code which uses the identical bch and nand_bch code.

Cheers,

Aaron Williams

--
Aaron Williams
Software Engineer
Cavium, Inc.
(408) 943-7198 (510) 789-8988 (cell)


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/