This series adds the base support for MSI injection on Arm. This is needed to streamline virtio-pci interrupt triggering.
With this patches, MSIs can be triggered in guests by issuing the new DM op, inject_msi2. This op is similar to inject_msi, but it allows to specify the source id of the MSI. We chose the approach of adding a new DM op instead of using the pad field of inject_msi because we have no clear way of distinguishing between set and unset pad fields. New implementations also adds flags field to clearly specify if the SBDF is set. Patches were tested on QEMU with QEMU virtio-pci backends, with virtio-pci patches and patches for ITS support for DomUs applied. Branch with all relevant Xen patches: https://github.com/Deedone/xen/tree/4.20-dev%2Bvirtio Branch with all relevant QEMU patches: https://github.com/Deedone/qemu/tree/virtio-msi2 Mykyta Poturai (2): arm: vgic: Add the ability to trigger MSIs from the Hypervisor xen/dm: arm: Introduce inject_msi2 DM op tools/include/xendevicemodel.h | 14 ++++++++++++++ tools/libs/devicemodel/core.c | 20 ++++++++++++++++++++ tools/libs/devicemodel/libxendevicemodel.map | 5 +++++ xen/arch/arm/dm.c | 17 +++++++++++++++++ xen/arch/arm/include/asm/vgic.h | 11 +++++++++++ xen/arch/arm/vgic-v3-its.c | 19 +++++++++++++++++++ xen/arch/x86/hvm/dm.c | 18 ++++++++++++++++++ xen/include/public/hvm/dm_op.h | 18 ++++++++++++++++++ 8 files changed, 122 insertions(+) -- 2.34.1