[U-Boot] [PATCH] MTD: mxs_nand: Fix BCH read timeout error on boards requiring ECC
Tim Harvey
tharvey at gateworks.com
Mon Feb 4 18:17:38 UTC 2019
On Wed, Jan 2, 2019 at 6:37 PM Adam Ford <aford173 at gmail.com> wrote:
>
> The LogicPD board uses a Micron Flash with ECC. To boot this from
> SPL, the ECC needs to be correctly configured or the BCH engine
> times out.
>
> Signed-off-by: Adam Ford <aford173 at gmail.com>
>
> diff --git a/drivers/mtd/nand/raw/mxs_nand.c b/drivers/mtd/nand/raw/mxs_nand.c
> index e3341812a2..2d84bfffe2 100644
> --- a/drivers/mtd/nand/raw/mxs_nand.c
> +++ b/drivers/mtd/nand/raw/mxs_nand.c
> @@ -1163,6 +1163,12 @@ int mxs_nand_init_spl(struct nand_chip *nand)
>
> nand_info->gpmi_regs = (struct mxs_gpmi_regs *)MXS_GPMI_BASE;
> nand_info->bch_regs = (struct mxs_bch_regs *)MXS_BCH_BASE;
> +
> + if (is_mx6sx() || is_mx7())
> + nand_info->max_ecc_strength_supported = 62;
> + else
> + nand_info->max_ecc_strength_supported = 40;
> +
> err = mxs_nand_alloc_buffers(nand_info);
> if (err)
> return err;
> diff --git a/drivers/mtd/nand/raw/mxs_nand_spl.c b/drivers/mtd/nand/raw/mxs_nand_spl.c
> index c628f3adec..ba85baac60 100644
> --- a/drivers/mtd/nand/raw/mxs_nand_spl.c
> +++ b/drivers/mtd/nand/raw/mxs_nand_spl.c
> @@ -201,6 +201,7 @@ static int mxs_nand_init(void)
> /* setup flash layout (does not scan as we override that) */
> mtd->size = nand_chip.chipsize;
> nand_chip.scan_bbt(mtd);
> + mxs_nand_setup_ecc(mtd);
>
> return 0;
> }
> --
> 2.17.1
>
Thanks Adam,
This resolves failed booting on Gateworks Ventana IMX6 with NAND SPL
for MT29F2G08AB 2Gbit (oob=64)
Acked-by: Tim Harvey <tharvey at gateworks.com>
Tested-by: Tim Harvey <tharvey at gateworks.com>
for GW5100 with MT29F2G08AB 2Gbit (oob=64)
More information about the U-Boot
mailing list