Hi everyone,
I tried looking for IOMMU support in ARM64 but what I was able to see is only swiotlb is currently supported.
Based on my understanding for IOMMU support, we need DMA-MAPPING API to have IOMMU ops field, similar to what is present in arm32. I could see the iommu field added in dev_archdata in below mentioned patch (arch/arm64/include/asm/device.h), but there is no ops field in arch/arm64/mm/dma-mapping.c ?
I also saw one mail discussion between you guys on what is the best place for adding iommu support in ARM64, but couldn't see any followed up patches for the same.
Please tell us the current status/updates on the same. Your feedback will be greatly appreciated.
commit 73150c983ac1f9b7653cfd3823b1ad4a44aad3bf Author: Will Deacon will.deacon@arm.com Date: Mon Jun 10 19:34:42 2013 +0100
arm64: device: add iommu pointer to device archdata
When using an IOMMU for device mappings, it is necessary to keep a pointer between the device and the IOMMU to which it is attached in order to obtain the correct IOMMU when attaching the device to a domain.
This patch adds an iommu pointer to the dev_archdata structure, in a similar manner to other architectures (ARM, PowerPC, x86, ...).
Signed-off-by: Will Deacon will.deacon@arm.com Signed-off-by: Catalin Marinas catalin.marinas@arm.com
Thanks Ritesh
On Thu, Feb 06, 2014 at 05:05:45AM +0000, Ritesh Harjani wrote:
Hi everyone,
I tried looking for IOMMU support in ARM64 but what I was able to see is only swiotlb is currently supported.
Based on my understanding for IOMMU support, we need DMA-MAPPING API to have IOMMU ops field, similar to what is present in arm32. I could see the iommu field added in dev_archdata in below mentioned patch (arch/arm64/include/asm/device.h), but there is no ops field in arch/arm64/mm/dma-mapping.c ?
Correct, there needs to be a way to plumb dma-mapping into the IOMMU layer.
I also saw one mail discussion between you guys on what is the best place for adding iommu support in ARM64, but couldn't see any followed up patches for the same.
Please tell us the current status/updates on the same. Your feedback will be greatly appreciated.
There are a few related topics here:
(1) Moving a bunch of the boilerplate IOMMU code into a common place (iommu-helper.c or similar). This is because we don't want to blindly duplicate common code across architectures.
(2) Standardising at least part of a system topology description in device-tree, so that we can deal with different combinations of {coherent,nocoherent} device {with,without} a series of IOMMUs.
Once both of those are sorted, the actual plumbing should be fairly straightforward.
Will
linaro-mm-sig@lists.linaro.org