[PATCH v9 0/8] SMMU handling for PCIe Passthrough on ARM

Mykyta Poturai posted 8 patches 22 hours ago
Failed in applying to current master (apply log)
xen/arch/arm/device.c                 |   2 +-
xen/arch/arm/domain_build.c           |   2 +-
xen/arch/arm/include/asm/pci.h        |   5 +-
xen/arch/arm/pci/pci.c                |  11 +-
xen/arch/arm/vgic-v3-its.c            |  20 +++
xen/arch/x86/include/asm/pci.h        |   2 +-
xen/common/device-tree/device-tree.c  |  91 ++++++++++++
xen/drivers/passthrough/arm/smmu-v3.c | 117 ++++++++++++++--
xen/drivers/passthrough/arm/smmu.c    | 190 ++++++++++++++++++++------
xen/drivers/passthrough/device_tree.c |  91 ++++++++++--
xen/drivers/passthrough/iommu.c       |  15 ++
xen/drivers/pci/physdev.c             |   4 +-
xen/include/xen/device_tree.h         |  23 ++++
xen/include/xen/iommu.h               |  40 +++++-
xen/include/xen/pci.h                 |   2 +-
15 files changed, 534 insertions(+), 81 deletions(-)
[PATCH v9 0/8] SMMU handling for PCIe Passthrough on ARM
Posted by Mykyta Poturai 22 hours ago
This series introduces SMMU handling for PCIe passthrough on ARM. These patches
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-10/msg00660.html
[2] https://lists.xenproject.org/archives/html/xen-devel/2023-06/msg01135.html

v8->v9:
* see individual patches

v7->v8:
* no changes

v6->v7:
* drop ("xen/arm: don't pass iommu properties to hwdom for iommu-map")

v5->v6:
* don't revert ("xen/arm: Add cmdline boot option "pci-passthrough = <boolean>"")
* add ("xen/arm: enable dom0 to use PCI devices with pci-passthrough=no")

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


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 (3):
  xen/arm: smmuv3: Add PCI devices support for SMMUv3
  xen/arm: Fix mapping for PCI bridge mmio region
  xen/arm: Map ITS doorbell register to IOMMU page tables

Stewart Hildebrand (2):
  iommu/arm: iommu_add_dt_pci_sideband_ids phantom handling
  xen/arm: enable dom0 to use PCI devices with pci-passthrough=no

 xen/arch/arm/device.c                 |   2 +-
 xen/arch/arm/domain_build.c           |   2 +-
 xen/arch/arm/include/asm/pci.h        |   5 +-
 xen/arch/arm/pci/pci.c                |  11 +-
 xen/arch/arm/vgic-v3-its.c            |  20 +++
 xen/arch/x86/include/asm/pci.h        |   2 +-
 xen/common/device-tree/device-tree.c  |  91 ++++++++++++
 xen/drivers/passthrough/arm/smmu-v3.c | 117 ++++++++++++++--
 xen/drivers/passthrough/arm/smmu.c    | 190 ++++++++++++++++++++------
 xen/drivers/passthrough/device_tree.c |  91 ++++++++++--
 xen/drivers/passthrough/iommu.c       |  15 ++
 xen/drivers/pci/physdev.c             |   4 +-
 xen/include/xen/device_tree.h         |  23 ++++
 xen/include/xen/iommu.h               |  40 +++++-
 xen/include/xen/pci.h                 |   2 +-
 15 files changed, 534 insertions(+), 81 deletions(-)

-- 
2.34.1