
Hi Han,
han.xu@nxp.com wrote on Fri, 25 Mar 2022 08:36:38 -0500:
Previous u-boot code changed the default bch setting behavior and caused backward compatible issue. This fix choose the legacy bch geometry back again as the default option. If the minimum ecc strength that NAND chips required need to be chosen, it can be enabled by either adding DT flag "fsl,use-minimum-ecc" or CONFIG_NAND_MXS_USE_MINIMUM_ECC in configs. The unused flag "fsl,legacy-bch-geometry" get removed.
Fixes: 51cdf83eea (mtd: gpmi: provide the option to use legacy bch geometry) Fixes: 616f03daba (mtd: gpmi: change the BCH layout setting for large oob NAND) Tested-by: Tim Harvey tharvey@gateworks.com Tested-by: Sean Nyekjaer sean@geanix.com Signed-off-by: Han Xu han.xu@nxp.com
One nit below.
+void mxs_nand_dump_geo(struct mtd_info *mtd) +{
- struct nand_chip *nand = mtd_to_nand(mtd);
- struct mxs_nand_info *nand_info = nand_get_controller_data(nand);
- struct bch_geometry *geo = &nand_info->bch_geometry;
- dev_dbg(mtd->dev, "BCH Geometry :\n"
"GF Length\t\t: %u\n"
"ECC Strength\t\t: %u\n"
"ECC for Meta\t\t: %u\n"
"ECC Chunk0 Size\t\t: %u\n"
"ECC Chunkn Size\t\t: %u\n"
"ECC Chunk Count\t\t: %u\n"
"Block Mark Byte Offset\t: %u\n"
"Block Mark Bit Offset\t: %u\n",
geo->gf_len,
geo->ecc_strength,
geo->ecc_for_meta,
geo->ecc_chunk0_size,
geo->ecc_chunkn_size,
geo->ecc_chunk_count,
geo->block_mark_byte_offset,
geo->block_mark_bit_offset);
}
/* @@ -1159,6 +1210,8 @@ int mxs_nand_setup_ecc(struct mtd_info *mtd) if (ret) return ret;
- mxs_nand_dump_geo(mtd);
- /* Configure BCH and set NFC geometry */ mxs_reset_block(&bch_regs->hw_bch_ctrl_reg);
The above addition should not be part of the commit fixing the situation, they should be in a separate patch.
With this fixed,
Reviewed-by: Miquel Raynal miquel.raynal@bootlin.com
Thanks, Miquèl