[PATCH] mtd: nand: raw: gpmi: fix bch geometry settings issue
Sean Nyekjaer
sean at geanix.com
Thu Mar 24 04:48:01 PDT 2022
Hi Han,
On Mon, Mar 21, 2022 at 03:20:28PM -0500, Han Xu wrote:
> The code change fixed the kernel gpmi driver bch geometry settings not
> aligned with u-boot settings issue. For the backward compatibility, it
> still keeps the legacy bch setting as default. Users may choose to use
> chips required minimum ecc strength by DT flag "fsl,use-minimum-ecc".
> It also proposes a new way to set bch geometry for large oob NAND.
>
> - For the legacy bch geometry settings
> The driver uses legacy bch geometry settings by default, if the NAND
> chips oob size is less than 1KB. The legacy_set_geometry() sets the data
> chunk size(step_size) larger than oob size to make sure BBM locates in
> data chunk, then set the maximum ecc stength oob can hold. It always use
> unbalanced ECC layout, which ecc0 will cover both meta and data0 chunk.
>
> - For the large oob bch geometry settings
> This type of setting will be used for NAND chips that oob size is
> larger than 1KB, the general idea is,
>
> 1.Try all ECC strength from the minimum value required by NAND chip
> to the maximum one that works, any ECC makes the BBM locate in
> data chunk can be eligible.
>
> 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, also we
> need to check if oob can afford it.
>
> - For all other cases
> set the bch geometry by chip required strength and step size, which uses
> the minimum ecc strength chip required. It can be explicitly enabled by
> DT flag "fsl,use-minimum-ecc", but need to be en/disabled in both u-boot
> and kernel at the same time.
>
> Signed-off-by: Han Xu <han.xu at nxp.com>
Tested-by: Sean Nyekjaer <sean at geanix.com>
> ---
[ ... ]
>From my side it's looking good. I have tested this in legacy mode and it
keeps functioning.
Since this introduces 2 changes maybe it would be better to seperate the
changes into 2 patches?
Thanks for finally fixing the Linux vs. U-boot unalignment.
/Sean
More information about the linux-mtd
mailing list