qemu/hw/intc
Daniel Henrique Barboza e0c87e3067 hw/intc/riscv_aplic: add kvm_msicfgaddr for split mode aplic-imsic
The last step to enable KVM AIA aplic-imsic with irqchip in split mode
is to deal with how MSIs are going to be sent. In our current design we
don't allow an APLIC controller to send MSIs unless it's on m-mode. And
we also do not allow Supervisor MSI address configuration via the
'smsiaddrcfg' and 'smsiaddrcfgh' registers unless it's also a m-mode
APLIC controller.

Add a new RISCVACPLICState attribute called 'kvm_msicfgaddr'. This
attribute represents the base configuration address for MSIs, in our
case the base addr of the IMSIC controller. This attribute is being set
only when running irqchip_split() mode with aia=aplic-imsic.

During riscv_aplic_msi_send() we'll check if the attribute was set to
skip the check for a m-mode APLIC controller and to change the resulting
MSI addr by adding kvm_msicfgaddr right before address_space_stl_le().

Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
Message-ID: <20241119191706.718860-7-dbarboza@ventanamicro.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
2024-12-20 11:22:47 +10:00
..
allwinner-a10-pic.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
apic.c hw/intc/apic: fix memory leak 2024-03-09 18:51:45 +01:00
apic_common.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
arm_gic.c hw/intc/arm_gic: fix spurious level triggered interrupts 2024-09-13 15:31:50 +01:00
arm_gic_common.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
arm_gic_kvm.c target/arm: kvm: require KVM_CAP_DEVICE_CTRL 2024-10-29 15:04:47 +00:00
arm_gicv2m.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
arm_gicv3.c hw/intc/arm_gicv3: Implement NMI interrupt priority 2024-04-25 10:21:05 +01:00
arm_gicv3_common.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
arm_gicv3_cpuif.c hw/intc/arm_gicv3_cpuif: Add cast to match the documentation 2024-10-15 11:29:45 +01:00
arm_gicv3_cpuif_common.c hw/intc/arm_gicv3: Extract gicv3_set_gicv3state from arm_gicv3_cpuif.c 2021-12-15 10:11:34 +00:00
arm_gicv3_dist.c hw/intc/arm_gicv3: Implement GICD_INMIR 2024-04-25 10:21:05 +01:00
arm_gicv3_its.c hw/intc/arm_gicv3_its: Zero initialize local DTEntry etc structs 2024-12-17 15:19:06 +00:00
arm_gicv3_its_common.c hw, target: Add ResetType argument to hold and exit phase methods 2024-04-25 10:21:06 +01:00
arm_gicv3_its_kvm.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
arm_gicv3_kvm.c hw, target: Add ResetType argument to hold and exit phase methods 2024-04-25 10:21:06 +01:00
arm_gicv3_redist.c hw/intc/arm_gicv3: Implement NMI interrupt priority 2024-04-25 10:21:05 +01:00
armv7m_nvic.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
aspeed_intc.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
aspeed_vic.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
bcm2835_ic.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
bcm2836_control.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
exynos4210_combiner.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
exynos4210_gic.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
gic_internal.h hw/intc/arm_gic: Fix deactivation of SPI lines 2024-06-21 14:01:58 +01:00
gicv3_internal.h hw/intc/arm_gicv3: Handle icv_nmiar1_read() for icc_nmiar1_read() 2024-04-25 10:21:05 +01:00
goldfish_pic.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
grlib_irqmp.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
heathrow_pic.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
i8259.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
i8259_common.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
imx_avic.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
imx_gpcv2.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
intc.c intc: add an interface to gather statistics/informations on interrupt controllers 2016-10-04 10:00:25 +02:00
ioapic-stub.c i386: select correct components for no-board build 2024-05-10 15:45:15 +02:00
ioapic.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
ioapic_common.c hw/intc: Avoid using Monitor in INTERRUPT_STATS_PROVIDER::print_info() 2024-06-19 12:40:49 +02:00
ioapic_internal.h hw: Move ioapic*.h to intc/ 2023-02-27 22:29:01 +01:00
Kconfig hw/intc/loongarch_ipi: Add loongarch IPI support 2024-08-06 10:22:52 +02:00
kvm_irqcount.c hw/intc: Extract the IRQ counting functions into a separate file 2023-01-13 16:22:57 +01:00
loongarch_extioi.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
loongarch_ipi.c hw/intc/loongarch_ipi: Add loongarch IPI support 2024-08-06 10:22:52 +02:00
loongarch_pch_msi.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
loongarch_pch_pic.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
loongson_ipi.c hw/intc/loongson_ipi: Remove unused headers 2024-09-13 20:10:49 +02:00
loongson_ipi_common.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
loongson_liointc.c hw/other: spelling fixes 2023-09-21 11:31:16 +03:00
m68k_irqc.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
meson.build hw/intc: Remove TYPE_ETRAX_FS_PIC device 2024-09-13 20:10:50 +02:00
mips_gic.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
omap_intc.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
ompic.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
openpic.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
openpic_kvm.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
pl190.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
pnv_xive.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
pnv_xive2.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
pnv_xive2_regs.h pnv/xive2: Enable VST NVG and NVC index compression 2024-07-26 09:51:33 +10:00
pnv_xive_regs.h ppc/xive: Handle END triggers between chips with MMIOs 2023-09-06 11:19:33 +02:00
ppc-uic.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
realview_gic.c error: Eliminate error_propagate() with Coccinelle, part 1 2020-07-10 15:18:08 +02:00
riscv_aclint.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
riscv_aplic.c hw/intc/riscv_aplic: add kvm_msicfgaddr for split mode aplic-imsic 2024-12-20 11:22:47 +10:00
riscv_imsic.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
rx_icu.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
s390_flic.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
s390_flic_kvm.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
sh_intc.c hw/intc/sh_intc: Remove unneeded local variable initialisers 2021-10-30 18:39:37 +02:00
sifive_plic.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
slavio_intctl.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
spapr_xive.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
spapr_xive_kvm.c ppc/xive: Fix ESB length overflow on 32-bit hosts 2024-11-04 09:14:10 +10:00
trace-events aspeed/intc: Add AST2700 support 2024-06-16 21:08:54 +02:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
vgic_common.h intc/gic: Extract some reusable vGIC code 2015-09-24 01:29:36 +01:00
xics.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
xics_kvm.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
xics_pnv.c non-virt: Fix Lesser GPL version number 2020-11-15 16:38:24 +01:00
xics_spapr.c hw/ppc: Avoid using Monitor in SpaprInterruptControllerClass::print_info() 2024-06-19 12:40:49 +02:00
xilinx_intc.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
xive.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
xive2.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
xlnx-pmu-iomod-intc.c hw/intc: Constify all Property 2024-12-15 12:55:11 -06:00
xlnx-zynqmp-ipi.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00