This series introduces SMMU handling for PCIe passthrough on ARM. These patches and should be able to be upstreamed independently from the vPCI series [1]. See [2] for notes about test cases.
[1] https://lists.xenproject.org/archives/html/xen-devel/2023-08/msg02361.html [2] https://lists.xenproject.org/archives/html/xen-devel/2023-06/msg01135.html v4->v5: * drop ("xen/arm: Improve readability of check for registered devices") * drop ("xen/arm: Move is_protected flag to struct device") * add ("xen/arm: don't pass iommu properties to hwdom for iommu-map") * add ("xen/arm: Fix mapping for PCI bridge mmio region") * revert ("xen/arm: Add cmdline boot option "pci-passthrough = <boolean>"") * add ("xen/arm: Map ITS doorbell register to IOMMU page tables.") * fix test case #1 with PCI device in dom0 v3->v4: * split a change from ("xen/arm: Move is_protected flag to struct device") into a new separate patch * see individual patches for further details v2->v3: * drop "pci/arm: Use iommu_add_dt_pci_device()" * drop "RFC: pci/arm: don't do iommu call for phantom functions" * move invocation of sideband ID mapping function to add_device() platform_ops/iommu_ops hook v1->v2: * phantom device handling * shuffle around iommu_add_dt_pci_device() Oleksandr Andrushchenko (1): xen/arm: smmuv2: Add PCI devices support for SMMUv2 Oleksandr Tyshchenko (2): iommu/arm: Add iommu_dt_xlate() iommu/arm: Introduce iommu_add_dt_pci_sideband_ids API Rahul Singh (4): xen/arm: smmuv3: Add PCI devices support for SMMUv3 xen/arm: Fix mapping for PCI bridge mmio region Revert "xen/arm: Add cmdline boot option "pci-passthrough = <boolean>"" xen/arm: Map ITS doorbell register to IOMMU page tables. Stewart Hildebrand (2): xen/arm: don't pass iommu properties to hwdom for iommu-map iommu/arm: iommu_add_dt_pci_sideband_ids phantom handling docs/misc/xen-command-line.pandoc | 7 - xen/arch/arm/device.c | 2 +- xen/arch/arm/domain_build.c | 6 +- xen/arch/arm/include/asm/pci.h | 12 -- xen/arch/arm/pci/pci.c | 12 -- xen/arch/arm/vgic-v3-its.c | 12 ++ xen/arch/x86/include/asm/pci.h | 6 - xen/common/device_tree.c | 91 ++++++++++++ xen/drivers/passthrough/arm/smmu-v3.c | 126 +++++++++++++++-- xen/drivers/passthrough/arm/smmu.c | 194 ++++++++++++++++++++++---- xen/drivers/passthrough/device_tree.c | 97 ++++++++++--- xen/drivers/pci/physdev.c | 6 - xen/include/xen/device_tree.h | 23 +++ xen/include/xen/iommu.h | 26 +++- 14 files changed, 515 insertions(+), 105 deletions(-) base-commit: 3d2d9e90224c4f430a7ee1190fd3b871b99b0ba0 -- 2.42.0
