aboutsummaryrefslogtreecommitdiff
path: root/hw/intc/ompic.c
diff options
context:
space:
mode:
authorDaniel Henrique Barboza <dbarboza@ventanamicro.com>2024-11-06 10:34:05 -0300
committerAlistair Francis <alistair.francis@wdc.com>2024-12-20 11:20:17 +1000
commit01c1caa9d1b4a1938e0baba1a64c26636a3aff9f (patch)
treeb79e987665d79ed3d72e1f9d0d3ec4f647ecc124 /hw/intc/ompic.c
parent2c12de146071beca8021d71cf2ac49bde36b2c8e (diff)
downloadqemu-01c1caa9d1b4a1938e0baba1a64c26636a3aff9f.zip
qemu-01c1caa9d1b4a1938e0baba1a64c26636a3aff9f.tar.gz
qemu-01c1caa9d1b4a1938e0baba1a64c26636a3aff9f.tar.bz2
hw/riscv/virt.c, riscv-iommu-sys.c: add MSIx support
MSIx support is added in the RISC-V IOMMU platform device by including the required MSIx facilities to alow software to properly setup the MSIx subsystem. We took inspiration of what is being done in the riscv-iommu-pci device, mainly msix_init() and msix_notify(), while keeping in mind that riscv-iommu-sys isn't a true PCI device and we don't need to copy/paste all the contents of these MSIx functions. Two extra MSI MemoryRegions were added: 'msix-table' and 'msix-pba'. They are used to manage r/w of the MSI table and Pending Bit Array (PBA) respectively. Both are subregions of the main IOMMU memory region, iommu->regs_mr, initialized during riscv_iommu_realize(), and each one has their own handlers for MSIx reads and writes. This is the expected memory map when using this device in the 'virt' machine: 0000000003010000-0000000003010fff (prio 0, i/o): riscv-iommu-regs 0000000003010300-000000000301034f (prio 0, i/o): msix-table 0000000003010400-0000000003010407 (prio 0, i/o): msix-pba We're now able to set IGS to RISCV_IOMMU_CAP_IGS_BOTH, and userspace is free to decide which interrupt model to use. Enabling MSIx support for this device in the 'virt' machine requires adding 'msi-parent' in the iommu-sys DT. Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com> Acked-by: Alistair Francis <alistair.francis@wdc.com> Message-ID: <20241106133407.604587-6-dbarboza@ventanamicro.com> [ Changes by AF: - Used PRIx64 in trace ] Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Diffstat (limited to 'hw/intc/ompic.c')
0 files changed, 0 insertions, 0 deletions