[PATCH v5 00/10] xen/arm: Add support for SMMUv3 driver

Rahul Singh posted 10 patches 3 years, 10 months ago
Test env passed
Patches applied successfully (tree, apply log)
git fetch https://gitlab.com/xen-project/patchew/xen tags/patchew/cover.1611153615.git.rahul.singh@arm.com
MAINTAINERS                           |    6 +
SUPPORT.md                            |    1 +
xen/common/device_tree.c              |   27 +
xen/drivers/passthrough/Kconfig       |   11 +
xen/drivers/passthrough/arm/Makefile  |    1 +
xen/drivers/passthrough/arm/smmu-v3.c | 3461 +++++++++++++++++++++++++
xen/include/xen/compiler.h            |   16 +
xen/include/xen/device_tree.h         |   12 +
8 files changed, 3535 insertions(+)
create mode 100644 xen/drivers/passthrough/arm/smmu-v3.c
[PATCH v5 00/10] xen/arm: Add support for SMMUv3 driver
Posted by Rahul Singh 3 years, 10 months ago
This patch series is v5 of the work to add support for the SMMUv3 driver.

Approach taken is to first merge the Linux copy of the SMMUv3 driver
(tag v5.8.18) and then modify the driver to build on XEN.

MSI and PCI ATS functionality are not supported. Code is not tested and
compiled. Code is guarded by the flag CONFIG_PCI_ATS and CONFIG_MSI to compile
the driver.

Code specific to Linux is removed from the driver to avoid dead code.

Driver is currently supported as tech preview.

Following functionality should be supported before driver is out for tech
preview
1. Investigate the timing analysis of using spin lock in place of mutex when
attaching a  device to SMMU.
2. Merged the latest Linux SMMUv3 driver code once atomic operation is
available in XEN.
3. PCI ATS and MSI interrupts should be supported.
4. Investigate side-effect of using tasklet in place of threaded IRQ and fix
if any

Changes since v4:
[PATCH v5 10/1]:
 - Replace the ffsll() with ffs64() function.
 - Add code to free resources when probe failed.

[PATCH v5 08/10]:
 - Add more information about the merged patch in commit message.

Rahul Singh (10):
  xen/arm: smmuv3: Import the SMMUv3 driver from Linux
  xen/arm: Revert atomic operation related command-queue insertion patch
  xen/arm: smmuv3: Revert patch related to XArray
  xen/arm: smmuv3: Remove support for Stage-1 translation on SMMUv3.
  xen/arm: smmuv3: Remove Linux specific code that is not usable in XEN
  xen/device-tree: Add dt_property_match_string helper
  xen/compiler: import 'fallthrough' keyword from linux
  xen/arm: smmuv3: Use fallthrough pseudo-keyword
  xen/arm: smmuv3: Replace linux functions with xen functions.
  xen/arm: smmuv3: Add support for SMMUv3 driver

 MAINTAINERS                           |    6 +
 SUPPORT.md                            |    1 +
 xen/common/device_tree.c              |   27 +
 xen/drivers/passthrough/Kconfig       |   11 +
 xen/drivers/passthrough/arm/Makefile  |    1 +
 xen/drivers/passthrough/arm/smmu-v3.c | 3461 +++++++++++++++++++++++++
 xen/include/xen/compiler.h            |   16 +
 xen/include/xen/device_tree.h         |   12 +
 8 files changed, 3535 insertions(+)
 create mode 100644 xen/drivers/passthrough/arm/smmu-v3.c

-- 
2.17.1