Hi, Now that we have merged the base IOMMU support we can re-introduce the riscv-iommu-sys platform device that was taken away from the initial posting.
Aside from adding support for the device in the 'virt' machine we're also adding MSI support for it, something that we weren't doing before. The Linux driver is then free to choose either MSI or WSI to use the device. Patches based on master. Daniel Henrique Barboza (5): hw/riscv/riscv-iommu.c: add riscv_iommu_instance_init() hw/riscv/riscv-iommu: parametrize CAP.IGS hw/riscv/virt.c, riscv-iommu-sys.c: add MSIx support hw/riscv/riscv-iommu: implement reset protocol docs/specs: add riscv-iommu-sys information Sunil V L (1): hw/riscv/virt: Add IOMMU as platform device if the option is set Tomasz Jeznach (1): hw/riscv: add riscv-iommu-sys platform device docs/specs/riscv-iommu.rst | 30 ++++- docs/system/riscv/virt.rst | 10 ++ hw/riscv/meson.build | 2 +- hw/riscv/riscv-iommu-bits.h | 6 + hw/riscv/riscv-iommu-pci.c | 21 +++ hw/riscv/riscv-iommu-sys.c | 256 ++++++++++++++++++++++++++++++++++++ hw/riscv/riscv-iommu.c | 114 +++++++++++----- hw/riscv/riscv-iommu.h | 5 + hw/riscv/trace-events | 4 + hw/riscv/virt.c | 108 ++++++++++++++- include/hw/riscv/iommu.h | 10 +- include/hw/riscv/virt.h | 6 +- 12 files changed, 530 insertions(+), 42 deletions(-) create mode 100644 hw/riscv/riscv-iommu-sys.c -- 2.45.2