qemu-patch-raspberry4/hw/intc
Christoffer Dall 770c58f8d1 arm_gicv2m: Add GICv2m widget to support MSIs
The ARM GICv2m widget is a little device that handles MSI interrupt
writes to a trigger register and ties them to a range of interrupt lines
wires to the GIC.  It has a few status/id registers and the interrupt wires,
and that's about it.

A board instantiates the device by setting the base SPI number and
number SPIs for the frame.  The base-spi parameter is indexed in the SPI
number space only, so base-spi == 0, means IRQ number 32.  When a device
(the PCI host controller) writes to the trigger register, the payload is
the GIC IRQ number, so we have to subtract 32 from that and then index
into our frame of SPIs.

When instantiating a GICv2m device, tell PCI that we have instantiated
something that can deal with MSIs.  We rely on the board actually wiring
up the GICv2m to the PCI host controller.

Reviewed-by: Eric Auger <eric.auger@linaro.org>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
Message-id: 1432897270-7780-3-git-send-email-christoffer.dall@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2015-06-02 14:56:25 +01:00
..
allwinner-a10-pic.c Convert ffs() != 0 callers to ctz32() 2015-04-28 15:36:08 +02:00
apic.c apic: fix incorrect handling of ExtINT interrupts wrt processor priority 2014-11-24 14:37:45 +01:00
apic_common.c apic_common: improve readability of apic_reset_common 2015-04-30 16:55:16 +02:00
arm_gic.c hw/intc/arm_gic: Add grouping support to gic_update() 2015-05-12 11:57:18 +01:00
arm_gic_common.c hw/intc/arm_gic: Make ICCICR/GICC_CTLR banked 2015-05-12 11:57:17 +01:00
arm_gic_kvm.c hw/intc/arm_gic: Restrict priority view 2015-05-12 11:57:17 +01:00
arm_gicv2m.c arm_gicv2m: Add GICv2m widget to support MSIs 2015-06-02 14:56:25 +01:00
armv7m_nvic.c hw/intc/arm_gic: Change behavior of IAR writes 2015-05-12 11:57:18 +01:00
etraxfs_pic.c Fix remaining warnings from Sparse (void return) 2015-03-19 11:11:55 +03:00
exynos4210_combiner.c savevm: Remove all the unneeded version_minimum_id_old (arm) 2014-05-13 16:09:35 +01:00
exynos4210_gic.c savevm: Remove all the unneeded version_minimum_id_old (arm) 2014-05-13 16:09:35 +01:00
gic_internal.h hw/intc/arm_gic: Change behavior of IAR writes 2015-05-12 11:57:18 +01:00
grlib_irqmp.c hw: cannot_instantiate_with_device_add_yet due to pointer props 2013-12-24 17:27:17 +01:00
heathrow_pic.c savevm: Remove all the unneeded version_minimum_id_old (ppc) 2014-06-16 04:55:26 +02:00
i8259.c hmp: Name HMP info handler functions hmp_info_SUBCOMMAND() 2015-02-18 11:58:50 +01:00
i8259_common.c savevm: Remove all the unneeded version_minimum_id_old (x86) 2014-06-16 04:55:26 +02:00
imx_avic.c hw/intc/imx_avic.c: Remove unused function imx_avic_set_prio() 2014-09-29 18:48:47 +01:00
ioapic.c qemu: x86: ignore ioapic polarity 2014-03-09 21:09:38 +02:00
ioapic_common.c savevm: Remove all the unneeded version_minimum_id_old (x86) 2014-06-16 04:55:26 +02:00
lm32_pic.c hmp: Name HMP info handler functions hmp_info_SUBCOMMAND() 2015-02-18 11:58:50 +01:00
Makefile.objs arm_gicv2m: Add GICv2m widget to support MSIs 2015-06-02 14:56:25 +01:00
omap_intc.c omap_intc: convert ffs(3) to ctz32() in omap_inth_sir_update() 2015-04-28 15:36:08 +02:00
openpic.c openpic: convert to vmstate 2015-03-09 15:00:07 +01:00
openpic_kvm.c KVM_CAP_IRQFD and KVM_CAP_IRQFD_RESAMPLE checks 2014-12-15 12:21:01 +01:00
pl190.c sysbus: Set cannot_instantiate_with_device_add_yet 2013-12-23 00:27:22 +01:00
puv3_intc.c puv3_intc: QOM cast cleanup 2013-07-29 21:06:58 +02:00
realview_gic.c realview_gic: Prepare for QOM embedding 2013-11-05 17:47:30 +01:00
s390_flic.c s390x: Replace unchecked qdev_init() by qdev_init_nofail() 2015-03-16 10:15:44 +01:00
s390_flic_kvm.c s390x/kvm: inject via flic 2014-06-10 09:50:27 +02:00
sh_intc.c cpu: Make first_cpu and next_cpu CPUState 2013-07-09 21:32:54 +02:00
slavio_intctl.c savevm: Remove all the unneeded version_minimum_id_old (rest) 2014-05-14 15:24:51 +02:00
xics.c xics: Implement xics_ics_free() 2014-06-27 13:48:26 +02:00
xics_kvm.c KVM_CAP_IRQFD and KVM_CAP_IRQFD_RESAMPLE checks 2014-12-15 12:21:01 +01:00
xilinx_intc.c intc: xilinx_uartlite: Convert SBD::init -> instance_init 2014-06-09 00:33:03 +02:00