[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 00/20] Add SMMUv3 Stage 1 Support for XEN guests
This patch series represents a rebase of an older patch series implemented and sumbitted by Rahul Singh as an RFC: https://patchwork.kernel.org/project/xen-devel/cover/cover.1669888522.git.rahul.singh@xxxxxxx/. Original patch series content is aligned with the latest xen structure in terms of common/arch-specific code structuring. Some minor bugfixes are also applied: - Sanity checks / error handling - Non-pci devices support for emulated iommu Overall description of stage-1 support is available in the original patch series cover letter. Original commits structure with detailed explanation for each commit functionality is maintained. Patch series testing is performed in qemu arm environment. Additionally, stage-1 translation for non-pci devices is verified on a Renesas platform. Jean-Philippe Brucker (1): xen/arm: smmuv3: Maintain a SID->device structure Rahul Singh (19): xen/arm: smmuv3: Add support for stage-1 and nested stage translation xen/arm: smmuv3: Alloc io_domain for each device xen/arm: vIOMMU: add generic vIOMMU framework xen/arm: vsmmuv3: Add dummy support for virtual SMMUv3 for guests xen/domctl: Add XEN_DOMCTL_CONFIG_VIOMMU_* and viommu config param xen/arm: vIOMMU: Add cmdline boot option "viommu = <boolean>" xen/arm: vsmmuv3: Add support for registers emulation xen/arm: vsmmuv3: Add support for cmdqueue handling xen/arm: vsmmuv3: Add support for command CMD_CFGI_STE xen/arm: vsmmuv3: Attach Stage-1 configuration to SMMUv3 hardware xen/arm: vsmmuv3: Add support for event queue and global error xen/arm: vsmmuv3: Add "iommus" property node for dom0 devices xen/arm: vIOMMU: IOMMU device tree node for dom0 xen/arm: vsmmuv3: Emulated SMMUv3 device tree node for dom0less arm/libxl: vsmmuv3: Emulated SMMUv3 device tree node in libxl xen/arm: vsmmuv3: Alloc virq for virtual SMMUv3 xen/arm: vsmmuv3: Add support to send stage-1 event to guest libxl/arm: vIOMMU: Modify the partial device tree for iommus xen/arm: vIOMMU: Modify the partial device tree for dom0less docs/man/xl.cfg.5.pod.in | 13 + docs/misc/xen-command-line.pandoc | 7 + tools/golang/xenlight/helpers.gen.go | 2 + tools/golang/xenlight/types.gen.go | 1 + tools/include/libxl.h | 5 + tools/libs/light/libxl_arm.c | 123 +++- tools/libs/light/libxl_types.idl | 6 + tools/xl/xl_parse.c | 10 + xen/arch/arm/dom0less-build.c | 72 ++ xen/arch/arm/domain.c | 26 + xen/arch/arm/domain_build.c | 103 ++- xen/arch/arm/include/asm/domain.h | 4 + xen/arch/arm/include/asm/viommu.h | 102 +++ xen/common/device-tree/dom0less-build.c | 31 +- xen/drivers/passthrough/Kconfig | 14 + xen/drivers/passthrough/arm/Makefile | 2 + xen/drivers/passthrough/arm/smmu-v3.c | 369 +++++++++- xen/drivers/passthrough/arm/smmu-v3.h | 49 +- xen/drivers/passthrough/arm/viommu.c | 87 +++ xen/drivers/passthrough/arm/vsmmu-v3.c | 895 ++++++++++++++++++++++++ xen/drivers/passthrough/arm/vsmmu-v3.h | 32 + xen/include/public/arch-arm.h | 14 +- xen/include/public/device_tree_defs.h | 1 + xen/include/xen/iommu.h | 14 + 24 files changed, 1935 insertions(+), 47 deletions(-) create mode 100644 xen/arch/arm/include/asm/viommu.h create mode 100644 xen/drivers/passthrough/arm/viommu.c create mode 100644 xen/drivers/passthrough/arm/vsmmu-v3.c create mode 100644 xen/drivers/passthrough/arm/vsmmu-v3.h -- 2.43.0
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |