Skip to content

RFC SMMUv3 driver and the supporting framework

Sameer Goel xen-devel 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 RFC Latest7 patches 26 repliesIn review
  2. v1 RFC6 patches 29 repliesSuperseded

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/7passthrough/arm: Modify SMMU driver to use generic device definitionxen/drivers/passthrough/arm/smmu.c+6 -60 replies
2/7arm64: Add definitions for fwnode_handlexen/include/asm-arm/device.h xen/include/xen/fwnode.h+35 -04 replies
3/7xen/passthrough/arm: Introduce iommu_fwspecxen/drivers/passthrough/arm/iommu.c xen/include/asm-arm/device.h xen/include/xen/iommu.h+96 -03 replies
4/7ACPI: arm: Support for IORTxen/drivers/acpi/arm/iort.c xen/include/acpi/acpi_iort.h+1019 -00 replies
5/7acpi:arm64: Add support for parsing IORT tablexen/arch/arm/setup.c xen/drivers/acpi/Makefile xen/drivers/acpi/arm/Makefile +6 more+146 -8110 replies
6/7Add verbatim copy of arm-smmu-v3.c from Linuxxen/drivers/passthrough/arm/smmu-v3.c+2791 -00 replies
7/7xen/iommu: smmu-v3: Add Xen specific code to enable the ported driverxen/drivers/passthrough/arm/Makefile xen/drivers/passthrough/arm/smmu-v3.c+738 -1168 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.

Read the v2 thread

Cover letter [RFC v2 0/7] SMMUv3 driver and the supporting framework

This change incoporates most of the review comments from [1] and adds the proposed SMMUv3 driver.

List of changes:
- Introduce the iommu_fwspec implementation - No change from the last RFC
- IORT port from linux. The differences are as under:
* Modified the code for creating the SMMU devices. This code also initializes the discoverd SMMU devices.
* MSI code is left as is, but this code is untested.
* IORT node data parsing is delegated to the driver. Looking for comments
on enabling the code in IORT driver. This will need a standard resource object. (Direct port from Linux or a new define for Xen?)
* Assumptions on PCI IORT SMMU interaction. PCI assign device will call iort_iommu_configure to setup the streamids.Then it will call SMMU assign device with the right struct device argument.
- SMMUv3 port from Linux. The list of changes are as under:
* The Xen iommu_ops list is at parity with SMMUv2.
* There is generally no need for an IOMMU group, but have kept a dummy define for now.
* Have commented out the S1 translation code.
* MSI code is commented out.
* Page table ops are commented out as the driver shares the page tables with the cpu.
* The list of SMMU devices is maintained from the driver code.

Open questions:
- IORT regeneration for DOM0. I was hoping to get some update on [2].
- We also need a notification framework to get the Named node information from DSDT.
- Should we port over code for non-hsared page tables from the kernel or leverage [3].

[1] "[RFC 0/6] IORT support and introduce fwspec"
[2] "[Xen-devel] [RFC] [PATCH] arm-acpi: Hide SMMU from IORT for hardware domain"
[3] "Non-shared" IOMMU support on ARM"

Sameer Goel (7):
passthrough/arm: Modify SMMU driver to use generic device definition
arm64: Add definitions for fwnode_handle xen/passthrough/arm: Introduce iommu_fwspec
ACPI: arm: Support for IORT
acpi:arm64: Add support for parsing IORT table
Add verbatim copy of arm-smmu-v3.c from Linux
xen/iommu: smmu-v3: Add Xen specific code to enable the ported driver

 xen/arch/arm/setup.c                  |    3 +
 xen/drivers/acpi/Makefile             |    1 +
 xen/drivers/acpi/arm/Makefile         |    1 +
 xen/drivers/acpi/arm/iort.c           |  986 ++++++++++
 xen/drivers/passthrough/arm/Makefile  |    1 +
 xen/drivers/passthrough/arm/iommu.c   |   66 +
 xen/drivers/passthrough/arm/smmu-v3.c | 3412 +++++++++++++++++++++++++++++++++
 xen/drivers/passthrough/arm/smmu.c    |   13 +-
 xen/include/acpi/acpi_iort.h          |   61 +
 xen/include/asm-arm/device.h          |    5 +
 xen/include/xen/acpi.h                |   21 +
 xen/include/xen/fwnode.h              |   33 +
 xen/include/xen/iommu.h               |   29 +
 xen/include/xen/pci.h                 |    8 +
 14 files changed, 4634 insertions(+), 6 deletions(-)
 create mode 100644 xen/drivers/acpi/arm/Makefile
 create mode 100644 xen/drivers/acpi/arm/iort.c
 create mode 100644 xen/drivers/passthrough/arm/smmu-v3.c
 create mode 100644 xen/include/acpi/acpi_iort.h
 create mode 100644 xen/include/xen/fwnode.h
Signature · 7 lines
Qualcomm Datacenter Technologies as an affiliate of Qualcomm Technologies, Inc. Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.


_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xen.org/xen-devel