ARM: Implement read/write for ownership in the ARMv6 DMA cache ops
The Snoop Control Unit on the ARM11MPCore hardware does not detect the
cache operations and the DMA cache maintenance functions may leave stale
cache entries on other CPUs. The solution implemented in this patch
performs a Read or Write For Ownership in the ARMv6 DMA cache
maintenance functions. These LDR/STR instructions change the cache line
state to shared or exclusive so that the cache maintenance operation has
the desired effect.
The TO/FROM/BIDIRECTIONAL cases are now handled in the v6_dma_map_area()
function and v6_dma_unmap_area() becomes a no-op. The reason for this is
that cache invalidation overrides the data in the DMA buffer.
Signed-off-by:
Catalin Marinas <catalin.marinas@arm.com>
Loading
Please sign in to comment