diff options
author | Han Xu <b45815@freescale.com> | 2015-10-09 13:29:41 -0500 |
---|---|---|
committer | Ye Li <ye.li@nxp.com> | 2017-04-05 14:03:54 +0800 |
commit | 242b2b889a9e18c587fafaa98cb9e9985b179df4 (patch) | |
tree | 03cefd9257d9d49f44fa164479a136a302dcbfc3 /include/initcall.h | |
parent | 7cd5fec7ce6a9ecfdaa1a9c1aaaa0d0ac18a4f86 (diff) | |
download | u-boot-imx-242b2b889a9e18c587fafaa98cb9e9985b179df4.zip u-boot-imx-242b2b889a9e18c587fafaa98cb9e9985b179df4.tar.gz u-boot-imx-242b2b889a9e18c587fafaa98cb9e9985b179df4.tar.bz2 |
MLK-11718-2: mtd: nand: change the BCH layout setting for large oob NAND
The cod change updated the NAND driver BCH ECC layout algorithm to
support large oob size NAND chips(oob > 1024 bytes).
Current implementation requires each chunk size larger than oob size so
the bad block marker (BBM) can be guaranteed located in data chunk. The
ECC layout always using the unbalanced layout(Ecc for both meta and
Data0 chunk), but for the NAND chips with oob larger than 1k, the driver
cannot support because BCH doesn’t support GF 15 for 2K chunk.
The change keeps the data chunk no larger than 1k and adjust the ECC
strength or ECC layout to locate the BBM in data chunk. General idea for
large oob NAND chips is
1.Try all ECC strength from the minimum value required by NAND spec to
the maximum one that works, any ECC makes the BBM locate in data chunk
can be chosen.
2.If none of them works, using separate ECC for meta, which will add one
extra ecc with the same ECC strength as other data chunks. This extra
ECC can guarantee BBM located in data chunk, of course, we need to check
if oob can afford it.
Signed-off-by: Han Xu <b45815@freescale.com>
(cherry picked from commit 78f620a6d6ab44bd34e42f00abe4673db099ca73)
Diffstat (limited to 'include/initcall.h')
0 files changed, 0 insertions, 0 deletions