This series implements the QEMU virtio-iommu device. This matches the v0.12 spec (voted) and the corresponding virtio-iommu driver upstreamed in 5.3. All kernel dependencies are resolved for DT integration. The virtio-iommu can be instantiated in ARM virt using:
"-device virtio-iommu-pci". Non DT mode is not yet supported as it has non resolved kernel dependencies [1]. This feature targets 5.0. Integration with vhost devices and vfio devices is not part of this series. Please follow Bharat's respins [2]. Best Regards Eric This series can be found at: https://github.com/eauger/qemu/tree/v4.2-virtio-iommu-v16 References: [1] [RFC 00/13] virtio-iommu on non-devicetree platforms [2] [PATCH RFC v5 0/5] virtio-iommu: VFIO integration Testing: - tested with guest using virtio-net-pci (,vhost=off,iommu_platform,disable-modern=off,disable-legacy=on) and virtio-blk-pci - migration History: v15 -> v16: - Collected Jean, Peter and Michael's R-bs - last patches without R-b is the one related to hw/arm/virt.c + the last patch, added in this version - Made the virtio-iommu-pci not hotpluggable (I dared to leave the R-b though) - Renamed create_virtio_iommu into create_virtio_iommu_dt_bindings - added entry in maintenance file v14 -> v15: - removed x-dt-binding and just kept check on hotplug_handler - removed "tests: Add virtio-iommu test" as the check on hotplug_handler fails on PC machine - destroy mappings in put_domain and remove g_tree_destroy(domain->mappings) in virtio_iommu_detach v13 -> v14: - added "virtio-iommu-pci: Introduce the x-dt-binding option" - Removed the mappings gtree ref counting and simply delete the gtree when the last EP is detached from the domain Eric Auger (10): virtio-iommu: Add skeleton virtio-iommu: Decode the command payload virtio-iommu: Implement attach/detach command virtio-iommu: Implement map/unmap virtio-iommu: Implement translate virtio-iommu: Implement fault reporting virtio-iommu: Support migration virtio-iommu-pci: Add virtio iommu pci support hw/arm/virt: Add the virtio-iommu device tree mappings MAINTAINERS: add virtio-iommu related files MAINTAINERS | 6 + hw/arm/virt.c | 57 +- hw/virtio/Kconfig | 5 + hw/virtio/Makefile.objs | 2 + hw/virtio/trace-events | 20 + hw/virtio/virtio-iommu-pci.c | 104 ++++ hw/virtio/virtio-iommu.c | 890 +++++++++++++++++++++++++++++++ include/hw/arm/virt.h | 2 + include/hw/pci/pci.h | 1 + include/hw/virtio/virtio-iommu.h | 61 +++ qdev-monitor.c | 1 + 11 files changed, 1142 insertions(+), 7 deletions(-) create mode 100644 hw/virtio/virtio-iommu-pci.c create mode 100644 hw/virtio/virtio-iommu.c create mode 100644 include/hw/virtio/virtio-iommu.h -- 2.20.1