[PATCH 2/8] ARM: Implement read/write for ownership in the ARMv6 DMA cache ops

Catalin Marinas catalin.marinas at arm.com
Thu May 6 10:40:32 EDT 2010


On Wed, 2010-05-05 at 14:26 +0100, George G. Davis wrote:
> Definitely need this for stable DMA on ARM11 MPCore.
> 
> On Tue, May 04, 2010 at 05:44:26PM +0100, Catalin Marinas wrote:
> > The Snoop Control Unit on the ARM11MPCore hardware does not detect the
> > cache operations and the dma_cache_maint*() 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.
> >
> > Signed-off-by: Catalin Marinas <catalin.marinas at arm.com>
> 
> Tested-by: George G. Davis <gdavis at mvista.com>

Thanks.

> FWIW, lack of ARM11 MPCore DMA cache coherency has been a problem for
> well over two years now and it would be good if we can finally get this
> fixed in mainline.  Without this applied on current, I observe various
> oopses and/or filesystem errors which are resolved by this patch.

What platform was this tested on?

> If there is some other testing that I can do to help getting this
> or some other variation accepted for mainline, let me know.

The more platforms tested, the better. Anyway, I don't think we have
much choice in how this workaround is implemented, unless the hardware
supports FIQs.

-- 
Catalin




More information about the linux-arm-kernel mailing list