Message ID | 1461260224-21174-1-git-send-email-sebastien.bourdelin@savoirfairelinux.com |
---|---|
State | Awaiting Upstream |
Delegated to: | Stefano Babic |
Headers | show |
Hi, I add Fabio Estevam in the loop as suggested by Marek Vasut on IRC. On 04/21/2016 01:37 PM, Sebastien Bourdelin wrote: > 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. > > Signed-off-by: Sebastien Bourdelin <sebastien.bourdelin@savoirfairelinux.com> > --- > include/configs/ts4800.h | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/include/configs/ts4800.h b/include/configs/ts4800.h > index fcc9d80..5e5e4d3 100644 > --- a/include/configs/ts4800.h > +++ b/include/configs/ts4800.h > @@ -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.
Hi, On 04/21/2016 05:39 PM, Sebastien Bourdelin wrote: > Hi, > I add Fabio Estevam in the loop as suggested by Marek Vasut on IRC. > > On 04/21/2016 01:37 PM, Sebastien Bourdelin wrote: >> 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. >> >> Signed-off-by: Sebastien Bourdelin <sebastien.bourdelin@savoirfairelinux.com> >> --- >> include/configs/ts4800.h | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/include/configs/ts4800.h b/include/configs/ts4800.h >> index fcc9d80..5e5e4d3 100644 >> --- a/include/configs/ts4800.h >> +++ b/include/configs/ts4800.h >> @@ -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. 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.
Hi Sebastien, On Thu, Apr 21, 2016 at 2:37 PM, Sebastien Bourdelin <sebastien.bourdelin@savoirfairelinux.com> wrote: > 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. > > Signed-off-by: Sebastien Bourdelin <sebastien.bourdelin@savoirfairelinux.com> 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: Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
Hi Fabio, On 05/10/2016 04:43 PM, Fabio Estevam wrote: > Hi Sebastien, > > On Thu, Apr 21, 2016 at 2:37 PM, Sebastien Bourdelin > <sebastien.bourdelin@savoirfairelinux.com> wrote: >> 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. >> >> Signed-off-by: Sebastien Bourdelin <sebastien.bourdelin@savoirfairelinux.com> > 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. > As this change affects only ts4800.h I think it is safer to apply for > this release: > > Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
Hi Sebastien, On Fri, May 20, 2016 at 5:13 PM, Sebastien Bourdelin <sebastien.bourdelin@savoirfairelinux.com> wrote: > 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?
On 10/05/2016 22:36, Sebastien Bourdelin wrote: > Hi, > > On 04/21/2016 05:39 PM, Sebastien Bourdelin wrote: >> Hi, >> I add Fabio Estevam in the loop as suggested by Marek Vasut on IRC. >> >> On 04/21/2016 01:37 PM, Sebastien Bourdelin wrote: >>> 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. >>> >>> Signed-off-by: Sebastien Bourdelin <sebastien.bourdelin@savoirfairelinux.com> >>> --- >>> include/configs/ts4800.h | 2 ++ >>> 1 file changed, 2 insertions(+) >>> >>> diff --git a/include/configs/ts4800.h b/include/configs/ts4800.h >>> index fcc9d80..5e5e4d3 100644 >>> --- a/include/configs/ts4800.h >>> +++ b/include/configs/ts4800.h >>> @@ -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. > > 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
Hi Fabio, On 05/20/2016 05:40 PM, Fabio Estevam wrote: > Hi Sebastien, > > On Fri, May 20, 2016 at 5:13 PM, Sebastien Bourdelin > <sebastien.bourdelin@savoirfairelinux.com> wrote: > >> 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.
diff --git a/include/configs/ts4800.h b/include/configs/ts4800.h index fcc9d80..5e5e4d3 100644 --- a/include/configs/ts4800.h +++ b/include/configs/ts4800.h @@ -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
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. Signed-off-by: Sebastien Bourdelin <sebastien.bourdelin@savoirfairelinux.com> --- include/configs/ts4800.h | 2 ++ 1 file changed, 2 insertions(+)