The current SMMU v3 model only support PCI/PCIe devices, so we update it for non-PCI/PCIe devices. . Add independent IOMMU memory regions for non-PCI/PCIe devices . Add SID value property setting for non-PCI/PCIe devices . Add PL330 DMA controller into "virt" machine and connect with SMMU v3 . Test PL330 DMA controller and PCIe e1000 network with SMMU v3 enabled
Notes: You need apply PL330 memory region patch before compile "virt" machine: https://patchew.org/QEMU/4c23c17b8e87e74e906a25a3254a03f4fa1fe...@shasxm03.verisilicon.com/ The old PL330 model cannot configure its memory region manually. So we update it and provide path. The patch was reviewed and will be merged in target-arm.next for 6.2. Li, Chunming (4): hw/arm/smmuv3: Support non PCI/PCIe device connect with SMMU v3 hw/arm/smmuv3: Update implementation of CFGI commands based on device SID hw/arm/virt: Update SMMU v3 creation to support non PCI/PCIe device connection hw/arm/virt: Add PL330 DMA controller and connect with SMMU v3 hw/arm/smmuv3.c | 81 ++++++++++++++++++-------- hw/arm/virt.c | 108 ++++++++++++++++++++++++++++++++++- include/hw/arm/smmu-common.h | 12 +++- include/hw/arm/smmuv3.h | 2 + include/hw/arm/virt.h | 3 + 5 files changed, 178 insertions(+), 28 deletions(-) --