[Linaro-mm-sig] [RFC] ARM DMA mapping TODO, v1
Arnd Bergmann
arnd at arndb.de
Tue May 3 11:31:24 EDT 2011
On Tuesday 03 May 2011, Laurent Pinchart wrote:
> I wish it was that simple.
>
> The OMAP4 ISS (Imaging Subsystem) has no IOMMU, but it can use the OMAP4 DMM
> (Dynamic Memory Manager) which acts as a memory remapper. Basically (if my
> understanding is correct), the ISS is configured to read/write from/to
> physical addresses. If those physical addresses are in the DMM address range,
> the DMM translates the accesses to physical accesses, acting as an IOMMU.
>
> The ISS can thus write to physically contiguous memory directly, or to
> scattered physical pages through the DMM. Whether an IOMMU (or, to be correct
> in this case, the IOMMU-like DMM) needs to handle the DMA is a per-buffer
> decision, not a per-device decision.
This doesn't sound too unusual for IOMMU implementations. A lot of time
you can access e.g. low memory using a direct mapping but you need the
IOMMU code for highmem. I've also seen a machine where a linear mapping
exists for all the memory in strict ordering, while you can use relaxed
DMA ordering when you go through the IOMMU address range. If we manage
to come up with a common dma-mapping API implementation for all IOMMUs,
it certainly needs to handle that case as well.
Arnd
More information about the linux-arm-kernel
mailing list