Hi all, We are investigating if the generic IOMMU API (include/linux/iommu.h) can be used for the IOMMU on our arm-based boards. I noticed that msm's IOMMU code (arch/arm/mach-msm/iommu.c) uses the genric IOMMU API and have a few queries regarding the supported features. Following are some features/requirements of our system: 1) Multiple IOMMU's - consistency between parallel IOMMUs must be maintained 2) Supports varying page sizes - 4K, 64K, 1M, 16M i.e. a sg list of contiguous physical memory blocks be made available. Thus, giving us mappings from the conservative 4K to large1M reducing TLB misses. 3) Multiple VA allocations can be associated with the same PA space. Who manages the virtual address space of IO device that has IOMMU? I think the generic iommu.h API cannot handle virtual address space and memory allocation. Is it just a IOMMU handler? Should we have another virtual memory manager for IOMMU? Can you please tell me if the current msm sysmmu code supports some/all of the above features, so that we can use it as reference. Also, any pointers on areas which would need work would be appreciated. Lastly, is there any driver making use of msm's IOMMU code - mainline or otherwise ? I wanted to check the usage of the same. Regards, Abhilash -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html