[U-Boot] MTD: mxs_nand: Fix BCH read timeout error on boards requiring ECC

sbabic at denx.de sbabic at denx.de
Sat Feb 16 10:26:24 UTC 2019


> 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>
> Acked-by: Stefan Agner <stefan.agner at toradex.com>
> Tested-by: Jörg Krause <joerg.krause at embedded.rocks>
> Acked-by: Tim Harvey <tharvey at gateworks.com>
> Tested-by: Tim Harvey <tharvey at gateworks.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;
>  }

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================



More information about the U-Boot mailing list