hw/riscv: add riscv-iommu-sys platform device
authorTomasz Jeznach <tjeznach@rivosinc.com>
Wed, 6 Nov 2024 13:34:03 +0000 (10:34 -0300)
committerAlistair Francis <alistair.francis@wdc.com>
Fri, 20 Dec 2024 01:19:16 +0000 (11:19 +1000)
commit5b128435dcf1e6545b544e3e402470ecf5b45ac7
tree9948b4210997873b353c1632f1abd3046056327f
parentd13346d105c396e0d95851b58f52cac43ad55952
hw/riscv: add riscv-iommu-sys platform device

This device models the RISC-V IOMMU as a sysbus device. The same design
decisions taken in the riscv-iommu-pci device were kept, namely the
existence of 4 vectors are available for each interrupt cause.

The WSIs are emitted using the input of the s->notify() callback as a
index to an IRQ list. The IRQ list starts at 'base_irq' and goes until
base_irq + 3. This means that boards must have 4 contiguous IRQ lines
available, starting from 'base_irq'.

Signed-off-by: Tomasz Jeznach <tjeznach@rivosinc.com>
Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-ID: <20241106133407.604587-4-dbarboza@ventanamicro.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
hw/riscv/meson.build
hw/riscv/riscv-iommu-sys.c [new file with mode: 0644]
hw/riscv/riscv-iommu.c
include/hw/riscv/iommu.h