[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [RFC v2 0/7] SMMUv3 driver and the supporting framework

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 
       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
- We also need a notification framework to get the Named node information from 
- 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 
[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



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.