From: Fabio Estevam Date: Fri, 3 Nov 2017 15:40:10 +0000 (-0200) Subject: mx51: Select the ESDHC_A001 erratum X-Git-Tag: v2017.11~7^2~8 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=b2e6ad451b193e848c2736299ec59389449f3d12;p=oweals%2Fu-boot.git mx51: Select the ESDHC_A001 erratum When a high speed card is connected to mx51evk the following error is seen: U-Boot 2017.11-rc2 (Oct 18 2017 - 13:49:26 -0200) CPU: Freescale i.MX51 rev3.0 at 800 MHz Reset cause: POR Board: MX51EVK DRAM: 512 MiB MMC: FSL_SDHC: 0, FSL_SDHC: 1 *** Warning - read failed, using default environment In: serial Out: serial Err: serial Net: FEC Hit any key to stop autoboot: 0 => saveenv Saving Environment to MMC... Writing to MMC(0)... failed The root cause for the failure is the eSDHC-A001 erratum: "eSDHC-A001 : Data timeout counter (SYSCTL[DTOCV]) is not reliable for values of 0x4,0x8, and 0xC" that is listed on some PowerArchitecture chips: https://www.nxp.com/files-static/32bit/doc/errata/MPC8379ECE.pdf Even though eSDHC-A001 is not documented on the i.MX51 errata document, I have confirmed with the NXP design team that this erratum does affect i.MX51, so fix the problem by selecting SYS_FSL_ERRATUM_ESDHC_A001 at SoC level. The i.MX51 ts4800 board already selects this option, but it is better to move this selection to the i.MX51 SoC level instead. Successfully tested with a high speed SD card on a mx51evk board. Signed-off-by: Fabio Estevam Acked-by: Sebastien Bourdelin --- diff --git a/arch/arm/mach-imx/mx5/Kconfig b/arch/arm/mach-imx/mx5/Kconfig index ef37c351d0..d96020d847 100644 --- a/arch/arm/mach-imx/mx5/Kconfig +++ b/arch/arm/mach-imx/mx5/Kconfig @@ -6,6 +6,7 @@ config MX5 config MX51 bool + select SYS_FSL_ERRATUM_ESDHC_A001 config MX53 bool @@ -52,7 +53,6 @@ config TARGET_MX53SMD config TARGET_TS4800 bool "Support TS4800" select MX51 - select SYS_FSL_ERRATUM_ESDHC_A001 config TARGET_USBARMORY bool "Support USB armory"