On Fri, Mar 14, 2014 at 12:00:16PM +0100, Laurent Pinchart wrote:
> Right, we indeed need two levels of API, one for drivers such as remoteproc
> that need direct control of the IOMMU, and one for drivers that only need to
> map buffers without any additional requirement. In the second case the
> drivers
> should ideally use the DMA mapping API not even be aware that an IOMMU is
> present. This would require moving the ARM mapping allocation out of the
> client driver.
These two levels exist in the form of the DMA-API and the IOMMU-API. In
fact, the IOMMU-API was created to provide a way to drivers to specifiy
the IOVA->PHYS mappings on its own.
> The IOMMU core or the IOMMU driver will need to know whether the driver
> expects to control the IOMMU directly or to have it managed transparently. As
> this is a software configuration I don't think the information belongs to DT.
> The question is, how should this information be conveyed ?
The way this works on x86 is that a device driver can use the DMA-API
per default. If it wants to use the IOMMU-API it has to allocate a
domain and add the device it handles to this domain (it can't use
DMA-API anymore then).
Joerg
_______________________________________________
iommu mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/iommu