[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