Subject: Re: [REGRESSION] sdhci no longer detects SD cards on LX2160A

From: Russell King - ARM Linux admin <[email-masked]>
Date: Thu, 19 Sep 2019 09:38:04 +0100

Hi,

Thanks for the reply.

I see that this bit is marked "reserved" in the LX2160A reference
manual.

This brings up some further questions.

The DT property "dma-coherent" is used to tell the OS whether the
device is DMA coherent or not.  If this property is missing, but the
device is set as DMA coherent, and the OS uses "normal, non-cacheable"
memory for the ADMA table, then errors can occur if there are stale
cache lines corresponding to the memory used.  The eSDHC controller
will see the stale cache lines, but the CPU will not.

Adding "dma-coherent" to the DT declarations alone does not seem to
be the right solution - if we have an OS that does not set the
ESDHC_DMA_SNOOP bit, then we have a similar issue.

Shouldn't ESDHC_DMA_SNOOP be set depending on whether the device is
DMA coherent or not?

Note that the device is _not_ marked as "dma-coherent" in either
mainline nor in the LSDK-19.06-V4.19 branch of
https://source.codeaurora.org/external/qoriq/qoriq-components/linux
to avoid ADMA descriptor fetch errors, which leads to this error that
has now been observed with v5.3 kernels - caused precisely as I
describe above.

Thanks.

On Thu, Sep 19, 2019 at 08:15:00AM +0000, Y.b. Lu wrote:
> Hi Russell,
> 
> The ESDHC_DMA_SNOOP bit is always set in eSDHC driver for DMA.
> 
> 1b - DMA transactions are snooped by the CPU data cache.
> 0b - DMA transactions are not snooped by the CPU data cache.
> 
> Thanks a lot.
> 
> Best regards,
> Yangbo Lu
> 
> > -----Original Message-----
> > From: Russell King - ARM Linux admin <[email-masked]>
> > Sent: Thursday, September 19, 2019 3:05 PM
> > To: Y.b. Lu <[email-masked]>
> > Cc: Leo Li <[email-masked]>; Fabio Estevam <[email-masked]>;
> > Adrian Hunter <[email-masked]>; Christoph Hellwig <[email-masked]>;
> > Linux ARM <[email-masked]>; Nicolin Chen
> > <[email-masked]>; Will Deacon <[email-masked]>; dann
> > frazier <[email-masked]>; linux-mmc
> > <[email-masked]>
> > Subject: Re: [REGRESSION] sdhci no longer detects SD cards on LX2160A
> > 
> > Hi,
> > 
> > This is not the issue, since the problem has been observed with eMMC too,
> > and is sporadic in nature.
> > 
> > Please could you answer the question posed: are the eSDHC controllers DMA
> > coherent or are they not coherent?
> > 
> > Thanks.
> > 
> > On Thu, Sep 19, 2019 at 04:13:20AM +0000, Y.b. Lu wrote:
> > > Sorry. My email was rejected by mailing lists. Let me re-send.
> > >
> > > Hi Russell,
> > >
> > > I’m not sure what board you were using for LX2160A.
> > > We had an known issue for eSDHC controller and all NXP Layerscape RDB
> > boards.
> > > eSDHC couldn’t provide power-cycle to SD card, and even worse, board
> > reset couldn’t provide power-cycle to SD card either.
> > > But for UHS-I SD card, it’s required to have a power-cycle to reset card if it
> > goes into UHS-I mode. Otherwise, we don’t know what will happen when
> > kernel initializes SD card after a reboot/reset.
> > >
> > > I could reproduce that issue with below steps on latest mainline kernel.
> > > 1. Power off board, and power on board.
> > > 2. Start up kernel, the SD card works fine in UHS-I mode.
> > > 3. Reboot/reset board. (This couldn’t provide power-cycle to SD card)
> > > 4. Start up kernel, the SD card gets that ADMA error issue.
> > >
> > > So could you have a try to power off/power on the board, and then start up
> > kernel. Don’t use reboot, or board reset button.
> > > Or you can remove SD card and start up kernel, and insert SD card when
> > kernel has been started up.
> > > Thanks a lot.
> > >
> > > Best regards,
> > > Yangbo Lu
> > >
> > >
> > > From: Li Yang <[email-masked]>
> > > Sent: Wednesday, September 18, 2019 1:48 AM
> > > To: Fabio Estevam <[email-masked]>; Y.b. Lu <[email-masked]>
> > > Cc: Adrian Hunter <[email-masked]>; Christoph Hellwig
> > > <[email-masked]>; Linux ARM <[email-masked]>;
> > > Nicolin Chen <[email-masked]>; Russell King - ARM Linux admin
> > > <[email-masked]>; Will Deacon <[email-masked]>; dann
> > > frazier <[email-masked]>; linux-mmc
> > > <[email-masked]>
> > > Subject: Re: [REGRESSION] sdhci no longer detects SD cards on LX2160A
> > >
> > >
> > >
> > > On Tue, Sep 17, 2019 at 6:31 PM Fabio Estevam
> > <mailto:[email-masked]> wrote:
> > > [Adding Li Yang]
> > >
> > > On Tue, Sep 17, 2019 at 10:52 AM Russell King - ARM Linux admin
> > > <mailto:[email-masked]> wrote:
> > >
> > > > The pressing question seems to be this:
> > > >
> > > > Are the eSDHC on the LX2160A DMA coherent or are they not?
> > > >
> > > > Any chances of finding out internally what the true answer to that,
> > > > rather than me poking about trying stuff experimentally?  Having a
> > > > definitive answer for a potentially data-corrupting change would be
> > > > really good...
> > >
> > > Li Yang,
> > >
> > > Could you please help to confirm Russell's question?
> > > Adding Yangbo who is working on SDHC.
> > >
> > > Regards,
> > > Leo
> > 
> > --
> > RMK's Patch system:
> > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ar
> > mlinux.org.uk%2Fdeveloper%2Fpatches%2F&amp;data=02%7C01%7Cyangbo.l
> > u%40nxp.com%7C7eca2b9652104c95a52008d73ccfa99a%7C686ea1d3bc2b4
> > c6fa92cd99c5c301635%7C0%7C0%7C637044734911465102&amp;sdata=QB
> > SEzA9L2HC99gm65P965E3o%2FhNM18u2SouOZxTEs6s%3D&amp;reserved=0
> > FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps
> > up According to speedtest.net: 11.9Mbps down 500kbps up

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up
According to speedtest.net: 11.9Mbps down 500kbps up

_______________________________________________
linux-arm-kernel mailing list
[email-masked]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel