[PATCH v6 0/4] hw/arm/smmuv3: Support non PCI/PCIe devices

chunming posted 4 patches 2 years, 7 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20210902081429.140293-1-chunming_li1234@163.com
Maintainers: Peter Maydell <peter.maydell@linaro.org>, Eric Auger <eric.auger@redhat.com>
hw/arm/smmuv3.c              |  75 ++++++++++++++++++++----
hw/arm/virt.c                | 110 ++++++++++++++++++++++++++++++++++-
include/hw/arm/smmu-common.h |  14 ++++-
include/hw/arm/virt.h        |   3 +
4 files changed, 188 insertions(+), 14 deletions(-)
[PATCH v6 0/4] hw/arm/smmuv3: Support non PCI/PCIe devices
Posted by chunming 2 years, 7 months ago
From: chunming <chunming.li@verisilicon.com>

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/4C23C17B8E87E74E906A25A3254A03F4FA1FEC31@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.

v6 - Reviewed by Eric:
  . Rename sid_map -> peri_sid_map, num_sid -> peri_num_sid
  . MOve peri_sid_map and peri_num_sid to SMMUState
  . Add "peri_sdev_list" looking up to replace "g_hash_table_remove()"
    for non PCI/PCIe devices.

chunming (4):
  hw/arm/smmuv3: Support non PCI/PCIe device connect with SMMU v3
  hw/arm/smmuv3: Update CFGI commands to support non PCI/PCIe devices
  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              |  75 ++++++++++++++++++++----
 hw/arm/virt.c                | 110 ++++++++++++++++++++++++++++++++++-
 include/hw/arm/smmu-common.h |  14 ++++-
 include/hw/arm/virt.h        |   3 +
 4 files changed, 188 insertions(+), 14 deletions(-)

-- 
2.30.2