disable cache on DMA

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

disable cache on DMA

Jump to solution
1,930 Views
douglasbolton
Contributor III

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.

Labels (3)
Tags (3)
0 Kudos
1 Solution
1,487 Views
igorpadykov
NXP Employee
NXP Employee

Hi Douglas

probably arm core also participates in

sending/managing data to SD from user application.

Best regards

igor

View solution in original post

0 Kudos
6 Replies
1,487 Views
igorpadykov
NXP Employee
NXP Employee

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

0 Kudos
1,487 Views
douglasbolton
Contributor III

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 -

ArmCache.png

I just don't know how to stop all this cache activity when transferring to the SD card.

0 Kudos
1,487 Views
igorpadykov
NXP Employee
NXP Employee

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

0 Kudos
1,487 Views
douglasbolton
Contributor III

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.

0 Kudos
1,488 Views
igorpadykov
NXP Employee
NXP Employee

Hi Douglas

probably arm core also participates in

sending/managing data to SD from user application.

Best regards

igor

0 Kudos
1,487 Views
douglasbolton
Contributor III

thanks igor, I think you are correct. I'm trying to track this down just now.

Doug.


0 Kudos