Hi Sameer,
On 9/21/2017 6:07 AM, Sameer Goel wrote:
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].
Please see v2 patch set
https://lists.xen.org/archives/html/xen-devel/2017-09/msg01143.html
- 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
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel