Skip to contentSkip to conversation

ts4800: add CONFIG_SYS_FSL_ERRATUM_ESDHC_A001

PATCH New Sebastien Bourdelin 3 participants 8 messages Apr 21, 2016 – May 25, 2016

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ts4800: add CONFIG_SYS_FSL_ERRATUM_ESDHC_A001

This commit fixes the MMC data transactions timeout problem on the TS4800.

The changes introduced in the commit e978a31 on the timeout calculation for the MMC data transactions has revealed there is something wrong with the timeout setting of the eSDHC controller used in the IMX51.

The IMX51 seems to be concerned by this erratum and without this change the MMC driver is unable to do any transactions.

---
 include/configs/ts4800.h | 2 ++
 1 file changed, 2 insertions(+)
include/configs/ts4800.h +2 -0
index fcc9d80..5e5e4d3 100644
@@ -63,6 +63,8 @@
 #define CONFIG_FSL_ESDHC
 #define CONFIG_SYS_FSL_ESDHC_ADDR	MMC_SDHC1_BASE_ADDR
 
+#define CONFIG_SYS_FSL_ERRATUM_ESDHC_A001
+
 #define CONFIG_MMC
 
 #define CONFIG_CMD_MMC
Signature · 1 line
2.8.0
#1 lore raw

PATCH 1/1 ts4800: add CONFIG_SYS_FSL_ERRATUM_ESDHC_A001

Hi,
I add Fabio Estevam in the loop as suggested by Marek Vasut on IRC.

Quoted 20 lines · Sebastien Bourdelin

This commit fixes the MMC data transactions timeout problem on the TS4800.

The changes introduced in the commit e978a31 on the timeout calculation for the MMC data transactions has revealed there is something wrong with the timeout setting of the eSDHC controller used in the IMX51.

The IMX51 seems to be concerned by this erratum and without this change the MMC driver is unable to do any transactions.

---
 include/configs/ts4800.h | 2 ++
 1 file changed, 2 insertions(+)
include/configs/ts4800.h +0 -0
index fcc9d80..5e5e4d3 100644

include/configs/ts4800.h line 70

Quoted 8 lines
include/configs/ts4800.h +2 -0
@@ -63,6 +63,8 @@
 #define CONFIG_FSL_ESDHC
 #define CONFIG_SYS_FSL_ESDHC_ADDR	MMC_SDHC1_BASE_ADDR
 
+#define CONFIG_SYS_FSL_ERRATUM_ESDHC_A001
+
 #define CONFIG_MMC
 
 #define CONFIG_CMD_MMC

The problem we found is related to the DTOCV field in the system control register of the IMX51's eSDHC controller. If we set the value 4, 8 or 12 in this DTOCV field the MMC driver is unable to do any data transactions, we have a timeout (i.e: the DTOE field in the Interrupt status register of the eSDHC controller is set to 1).
It works with other values, at least i tried with 5, 9, 11, 13 without having any timeout.

Our guess and because we didn't find any errata related to this issue for the IMX51 is that this device is impacted by the same problem then devices MPC83XX and MPC85XX (see the ESDHC-A001 errata in the datasheet:
http://pdf.datasheetarchive.com/indexerfiles/Datasheets-SW1/DSASW0012367.pdf)

Perhaps someone from Freescale can give us more informations.

Regards,
Sebastien.

#2 lore raw

PATCH 1/1 ts4800: add CONFIG_SYS_FSL_ERRATUM_ESDHC_A001

Hi,

Quoted 45 lines · Sebastien Bourdelin

Hi,
I add Fabio Estevam in the loop as suggested by Marek Vasut on IRC.

Quoted 20 lines · Sebastien Bourdelin

This commit fixes the MMC data transactions timeout problem on the TS4800.

The changes introduced in the commit e978a31 on the timeout calculation for the MMC data transactions has revealed there is something wrong with the timeout setting of the eSDHC controller used in the IMX51.

The IMX51 seems to be concerned by this erratum and without this change the MMC driver is unable to do any transactions.

---
 include/configs/ts4800.h | 2 ++
 1 file changed, 2 insertions(+)
include/configs/ts4800.h +0 -0
index fcc9d80..5e5e4d3 100644

include/configs/ts4800.h line 70

Quoted 8 lines
include/configs/ts4800.h +2 -0
@@ -63,6 +63,8 @@
 #define CONFIG_FSL_ESDHC
 #define CONFIG_SYS_FSL_ESDHC_ADDR	MMC_SDHC1_BASE_ADDR
 
+#define CONFIG_SYS_FSL_ERRATUM_ESDHC_A001
+
 #define CONFIG_MMC
 
 #define CONFIG_CMD_MMC

The problem we found is related to the DTOCV field in the system control register of the IMX51's eSDHC controller. If we set the value 4, 8 or 12 in this DTOCV field the MMC driver is unable to do any data transactions, we have a timeout (i.e: the DTOE field in the Interrupt status register of the eSDHC controller is set to 1).
It works with other values, at least i tried with 5, 9, 11, 13 without having any timeout.

Our guess and because we didn't find any errata related to this issue for the IMX51 is that this device is impacted by the same problem then devices MPC83XX and MPC85XX (see the ESDHC-A001 errata in the datasheet:
http://pdf.datasheetarchive.com/indexerfiles/Datasheets-SW1/DSASW0012367.pdf)

Quoted 4 lines

Perhaps someone from Freescale can give us more informations.

Regards,
Sebastien.

Did someone from Freescale had the time to take a look at this patch and can give us more information?
We still need it to boot the TS4800.

Regards,
Sebastien.

#3 lore raw

PATCH 1/1 ts4800: add CONFIG_SYS_FSL_ERRATUM_ESDHC_A001

Quoted 48 lines · Sebastien Bourdelin

Hi,

Quoted 45 lines · Sebastien Bourdelin

Hi,
I add Fabio Estevam in the loop as suggested by Marek Vasut on IRC.

Quoted 20 lines · Sebastien Bourdelin

This commit fixes the MMC data transactions timeout problem on the TS4800.

The changes introduced in the commit e978a31 on the timeout calculation for the MMC data transactions has revealed there is something wrong with the timeout setting of the eSDHC controller used in the IMX51.

The IMX51 seems to be concerned by this erratum and without this change the MMC driver is unable to do any transactions.

---
 include/configs/ts4800.h | 2 ++
 1 file changed, 2 insertions(+)
include/configs/ts4800.h +0 -0
index fcc9d80..5e5e4d3 100644

include/configs/ts4800.h line 70

Quoted 8 lines
include/configs/ts4800.h +2 -0
@@ -63,6 +63,8 @@
 #define CONFIG_FSL_ESDHC
 #define CONFIG_SYS_FSL_ESDHC_ADDR	MMC_SDHC1_BASE_ADDR
 
+#define CONFIG_SYS_FSL_ERRATUM_ESDHC_A001
+
 #define CONFIG_MMC
 
 #define CONFIG_CMD_MMC

The problem we found is related to the DTOCV field in the system control register of the IMX51's eSDHC controller. If we set the value 4, 8 or 12 in this DTOCV field the MMC driver is unable to do any data transactions, we have a timeout (i.e: the DTOE field in the Interrupt status register of the eSDHC controller is set to 1).
It works with other values, at least i tried with 5, 9, 11, 13 without having any timeout.

Our guess and because we didn't find any errata related to this issue for the IMX51 is that this device is impacted by the same problem then devices MPC83XX and MPC85XX (see the ESDHC-A001 errata in the datasheet:
http://pdf.datasheetarchive.com/indexerfiles/Datasheets-SW1/DSASW0012367.pdf)

Quoted 8 lines
Quoted 4 lines

Perhaps someone from Freescale can give us more informations.

Regards,
Sebastien.

Did someone from Freescale had the time to take a look at this patch and can give us more information?
We still need it to boot the TS4800.

Checking the thread, it looks looks like that there is no progress on it. Anyway, the patch is just related to ts4800 without any effects to other boards. I am merging it.

Best regards,
Stefano Babic

Signature · 5 lines
=====================================================================
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
=====================================================================
#4 lore raw

PATCH 1/1 ts4800: add CONFIG_SYS_FSL_ERRATUM_ESDHC_A001

In reply to Sebastien Bourdelin

Hi Sebastien,

Quoted 11 lines · Sebastien Bourdelin

This commit fixes the MMC data transactions timeout problem on the TS4800.

The changes introduced in the commit e978a31 on the timeout calculation for the MMC data transactions has revealed there is something wrong with the timeout setting of the eSDHC controller used in the IMX51.

The IMX51 seems to be concerned by this erratum and without this change the MMC driver is unable to do any transactions.

Does this issue only happen with eMMC and not with SD card? mx51evk boots fine without this config option.

As this change affects only ts4800.h I think it is safer to apply for this release:

#5 lore raw

PATCH 1/1 ts4800: add CONFIG_SYS_FSL_ERRATUM_ESDHC_A001

Hi Fabio,

Quoted 11 lines · Fabio Estevam

Hi Sebastien,

Quoted 7 lines · Sebastien Bourdelin

This commit fixes the MMC data transactions timeout problem on the TS4800.

The changes introduced in the commit e978a31 on the timeout calculation for the MMC data transactions has revealed there is something wrong with the timeout setting of the eSDHC controller used in the IMX51.

Quoted 6 lines
Quoted 4 lines

The IMX51 seems to be concerned by this erratum and without this change the MMC driver is unable to do any transactions.

Does this issue only happen with eMMC and not with SD card? mx51evk boots fine without this config option.

This issue happen with the SD card, i currently didn't found the time to try with eMMC.

Best Regards,
Sebastien.

Quoted 4 lines

As this change affects only ts4800.h I think it is safer to apply for this release:

#6 lore raw

PATCH 1/1 ts4800: add CONFIG_SYS_FSL_ERRATUM_ESDHC_A001

Hi Sebastien,

Quoted 2 lines · Sebastien Bourdelin

This issue happen with the SD card, i currently didn't found the time to try with eMMC.

Ok, we also boot from SD card on the mx51evk and never observed this issue there.

What is the MX51 silicon version you have on your board?

#7 lore raw

PATCH 1/1 ts4800: add CONFIG_SYS_FSL_ERRATUM_ESDHC_A001

Hi Fabio,

Quoted 11 lines · Fabio Estevam

Hi Sebastien,

Quoted 2 lines · Sebastien Bourdelin

This issue happen with the SD card, i currently didn't found the time to try with eMMC.

Ok, we also boot from SD card on the mx51evk and never observed this issue there.

What is the MX51 silicon version you have on your board?

It's an MX51 rev 3.0,
if you need more information, feel free to ask.

Regards,
Sebastien.