[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RFC for-4.5 00/12] IOMMU support for ARM
Hello, This patch series add support for IOMMU on ARM. It have also added ARM SMMU driver which is used for instance on Midway. The IOMMU architecture for ARM is relying on the page table is shared between the processor and each IOMMU. The patch series is divided following: - #1: fixing grant-table with IOMMU. Will be necessary for ARM later - #2-#3: Make static some vtd functions - #4-#5: Adding new device tree functions - #6-#9: Prepare IOMMU code to add support for ARM - #10-#11: Add IOMMU architecture for ARM - #12: Add SMMU drivers For now the 1:1 workaround is not removed because a same platform can have DMA-capable device which are under an IOMMU and some not. It's a problem for the swiotlb which needs to know if the device is procted or not when foreign mapping is mapped in dom0. When I talked with Stefano, 2 solutions came: - Having a property in each "protected" device - List in the hypervisor node the procted devices I didn't yet decide which solution I will use. Any comments, questions are welcomed. Sincerely yours, Julien Grall (12): xen/common: grant-table: only call IOMMU if paging mode translate is disabled xen/passthrough: vtd: Don't export iommu_domain_teardown xen/passthrough: vtd: Don't export iommu_set_pgd xen/dts: Add dt_property_read_bool xen/dts: Add dt_parse_phandle_with_args and dt_parse_phandle xen/passthrough: rework dom0_pvh_reqs to use it also on ARM xen/passthrough: iommu: Don't need to map dom0 page when the PT is shared xen/passthrough: iommu: Split generic IOMMU code xen/passthrough: iommu: Introduce arch specific code xen/passthrough: Introduce IOMMU ARM architure MAINTAINERS: Add drivers/passthrough/arm drivers/passthrough: arm: Add support for SMMU drivers MAINTAINERS | 1 + xen/arch/arm/Rules.mk | 1 + xen/arch/arm/domain.c | 7 + xen/arch/arm/domain_build.c | 2 + xen/arch/arm/p2m.c | 4 + xen/arch/arm/setup.c | 2 + xen/arch/x86/domctl.c | 6 +- xen/arch/x86/hvm/io.c | 2 +- xen/arch/x86/tboot.c | 3 +- xen/common/device_tree.c | 157 ++- xen/common/grant_table.c | 7 +- xen/drivers/passthrough/Makefile | 7 +- xen/drivers/passthrough/amd/iommu_cmd.c | 2 +- xen/drivers/passthrough/amd/iommu_guest.c | 8 +- xen/drivers/passthrough/amd/iommu_map.c | 56 +- xen/drivers/passthrough/amd/pci_amd_iommu.c | 53 +- xen/drivers/passthrough/arm/Makefile | 2 + xen/drivers/passthrough/arm/iommu.c | 65 + xen/drivers/passthrough/arm/smmu.c | 1701 +++++++++++++++++++++++++++ xen/drivers/passthrough/iommu.c | 525 +-------- xen/drivers/passthrough/iommu_pci.c | 468 ++++++++ xen/drivers/passthrough/iommu_x86.c | 106 ++ xen/drivers/passthrough/vtd/iommu.c | 124 +- xen/include/asm-arm/device.h | 3 +- xen/include/asm-arm/domain.h | 2 + xen/include/asm-arm/hvm/iommu.h | 10 + xen/include/asm-arm/iommu.h | 36 + xen/include/asm-x86/hvm/iommu.h | 29 + xen/include/asm-x86/iommu.h | 50 + xen/include/xen/device_tree.h | 75 ++ xen/include/xen/hvm/iommu.h | 27 +- xen/include/xen/iommu.h | 51 +- 32 files changed, 2891 insertions(+), 701 deletions(-) create mode 100644 xen/drivers/passthrough/arm/Makefile create mode 100644 xen/drivers/passthrough/arm/iommu.c create mode 100644 xen/drivers/passthrough/arm/smmu.c create mode 100644 xen/drivers/passthrough/iommu_pci.c create mode 100644 xen/drivers/passthrough/iommu_x86.c create mode 100644 xen/include/asm-arm/hvm/iommu.h create mode 100644 xen/include/asm-arm/iommu.h create mode 100644 xen/include/asm-x86/iommu.h -- 1.7.10.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |