title: Cache flush and invalidate operations from linux userspace in ARMv7-A
body: <p>I'm trying to make an UIO driver in ARM Cortex-A9 processors. These processors use ARMv7-A architecture. I'm stuck with cache operations from user space. Need help in how to perform cache flush and invalidate from userspace app. ARMv7-A has both instruction cache and data cache, requirement is data cache flush and invalidate.</p>
  
  <p>Gone through <a href="https://community.arm.com/groups/processors/blog/2010/02/17/caches-and-self-modifying-code" rel="nofollow">https://community.arm.com/groups/processors/blog/2010/02/17/caches-and-self-modifying-code</a>. Tried __clear_cache() provided GCC. It didn't work. I am not sure, thinking that it flushes only instruction cache. </p>