AnsweredAssumed Answered

IMX6 uSDHC: How to change host DMA buffer boundary?

Question asked by Ahmed Abdelhaleem on Jul 10, 2014
Latest reply on Aug 6, 2014 by Ahmed Abdelhaleem

Dear All,

 

I am trying to load a certain linux version (Bosch Linux) on IMX6Q (sabrelite) board, when I got many error messages during the boot process from the SDHC kernel driver as follow:

 

[  114.329344] mmc0: Timeout waiting for hardware interrupt.

[  114.329453] mmcblk1: error -110 transferring data, sector 562978, nr 880, cmd response 0x900, card status 0xd00

 

After debugging, I found that the SDHC driver tries to make a simple DMA transfer with multiple blocks and it assumes that the page boundary at which DMA transfer will be aborted and DMA interrupt is generated is 512KB. While after referring to IMX6DQRM, I found that there is no register field to control this DMA boundary in the uSDHC_BLK_ATT register like in other similar SDHC controllers in other platforms. I guess the IMX6 uSDHC page boundary is always fixed to 4KB, isn't it?

 

So, Is there a way to change this DMA page boundary setting in the uSDHC controller either at run-time or by a certain configuration?

 

Thanks in advance,

Best Regards,

Ahmed

Outcomes