Android JB 4.3
I am having issues when DMA'ing data to an SD card because the flushing etc of the caches is causing interrupts to be locked for long periods of time depending on the number of blocks sent. Is there anyway of disabling the cache when DMA'ing to the SD card.
Thanks
Doug.
Solved! Go to Solution.
Hi Douglas
probably arm core also participates in
sending/managing data to SD from user application.
Best regards
igor
Hi Douglas
I believe this is more related to OS cacheing as
described below
http://www.thomas-krenn.com/en/wiki/Linux_Page_Cache_Basics
http://insights.oetiker.ch/linux/fadvise.html
Best regards
igor
Thank you for your reply igor. On the i.mx6 I am using I think it is something to do with the clearing of L2 cache when DMA transferring to an SD card. When tracing through the code I see lots of L2 cache calls during a DMA transfer. It looks like this ARM note -
I just don't know how to stop all this cache activity when transferring to the SD card.
Hi Douglas
DMA is optional module in ARM cores, i.MX6 has not it
as well ACP. You can check DDI0388I_ cortex_a9 (on www.arm.com),
Chapter 12 ARM Cortex A9 MPCore Platform (ARM) IMX6DQRM
L2 operates together with core.
While uSDHC module has own DMA engine - ADMA (it does not use L2)
it is described in Chapter 67 Ultra Secured Digital Host Controller (uSDHC).
Best regards
igor
Thanks igor I'll check out your references.
I have checked and yes you are correct that the i.mx6 does not have an ACP unit.
If the uSDHC controller doesn't use L2 do you know why I am seeing all this L2 cache activity when I do a block transfer to the SD card ?
Thanks
Doug.
Hi Douglas
probably arm core also participates in
sending/managing data to SD from user application.
Best regards
igor
thanks igor, I think you are correct. I'm trying to track this down just now.
Doug.