
On 21/05/10 12:00PM, Sean Nyekjaer wrote:
Caution: EXT Email
Linux kernel defaults to use legacy bch setting, this was creating a mismatch between U-boot and Linux default settings.
Kernel uses the NAND chip specified minimum ecc strength and steps by default not the legacy bch setting, unless users enable it in DT file.
Fixes: 51cdf83eea ("mtd: gpmi: provide the option to use legacy bch geometry") Signed-off-by: Sean Nyekjaer sean@geanix.com
drivers/mtd/nand/raw/mxs_nand.c | 2 +- drivers/mtd/nand/raw/mxs_nand_dt.c | 2 +- include/mxs_nand.h | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/mtd/nand/raw/mxs_nand.c b/drivers/mtd/nand/raw/mxs_nand.c index e6bbfac4d6..49795e20d2 100644 --- a/drivers/mtd/nand/raw/mxs_nand.c +++ b/drivers/mtd/nand/raw/mxs_nand.c @@ -1119,7 +1119,7 @@ static int mxs_nand_set_geometry(struct mtd_info *mtd, struct bch_geometry *geo) }
if ((!(chip->ecc_strength_ds > 0 && chip->ecc_step_ds > 0) &&
mtd->oobsize < 1024) || nand_info->legacy_bch_geometry) {
mtd->oobsize < 1024) || !nand_info->modern_bch_geometry) { dev_warn(mtd->dev, "use legacy bch geometry\n"); return mxs_nand_legacy_calc_ecc_layout(geo, mtd); }
diff --git a/drivers/mtd/nand/raw/mxs_nand_dt.c b/drivers/mtd/nand/raw/mxs_nand_dt.c index 878796d555..bbb7396324 100644 --- a/drivers/mtd/nand/raw/mxs_nand_dt.c +++ b/drivers/mtd/nand/raw/mxs_nand_dt.c @@ -92,7 +92,7 @@ static int mxs_nand_dt_probe(struct udevice *dev)
info->use_minimum_ecc = dev_read_bool(dev, "fsl,use-minimum-ecc");
info->legacy_bch_geometry = dev_read_bool(dev, "fsl,legacy-bch-geometry");
info->modern_bch_geometry = dev_read_bool(dev, "fsl,modern-bch-geometry"); if (IS_ENABLED(CONFIG_CLK) && IS_ENABLED(CONFIG_IMX8)) { /* Assigned clock already set clock */
diff --git a/include/mxs_nand.h b/include/mxs_nand.h index c0cefaca90..7e254d6b31 100644 --- a/include/mxs_nand.h +++ b/include/mxs_nand.h @@ -43,8 +43,8 @@ struct mxs_nand_info { struct udevice *dev; unsigned int max_ecc_strength_supported; bool use_minimum_ecc;
/* legacy bch geometry flag */
bool legacy_bch_geometry;
/* modern bch geometry flag */
bool modern_bch_geometry; int cur_chip; uint32_t cmd_queue_len;
-- 2.31.0