qemu/hw/intc
Peter Maydell 86830554db hw/intc/arm_gicv3: Implement EL2 traps for CPU i/f regs
Implement the architecturally required traps from NS EL1
to EL2 for the CPU interface registers. These fall into
several different groups:
 * group-0-only registers all trap if ICH_HRC_EL2.TALL0 is set
   (exactly the registers covered by gicv3_fiq_access())
 * group-1-only registers all trap if ICH_HRC_EL2.TALL1 is set
   (exactly the registers covered by gicv3_irq_access())
 * DIR traps if ICH_HCR_EL2.TC or ICH_HCR_EL2.TDIR are set
 * PMR, RPR, CTLR trap if ICH_HCR_EL2.TC is set
 * SGI0R, SGI1R, ASGI1R trap if ICH_HCR_EL2.TC is set or
   if HCR_EL2.IMO or HCR_EL2.FMO are set

We split DIR and the SGI registers out into their own access
functions, leaving the existing gicv3_irqfiq_access() just
handling PMR, RPR and CTLR.

This commit doesn't implement support for trapping on
HSTR_EL2.T12 for the 32-bit registers, as we don't implement
any of those per-coprocessor trap bits currently and
probably will want to do those in some more centralized way.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 1483977924-14522-14-git-send-email-peter.maydell@linaro.org
2017-01-20 11:15:10 +00:00
..
allwinner-a10-pic.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
apic_common.c pc: apic_common: Reset APIC ID to initial ID when switching into x2APIC mode 2016-10-24 17:29:15 -02:00
apic.c apic: add send_msi() to APICCommonClass 2016-10-17 15:44:49 -02:00
arm_gic_common.c hw/intc/arm_gic: Add external IRQ lines for VIRQ and VFIQ 2017-01-20 11:15:09 +00:00
arm_gic_kvm.c hw/intc/arm_gic_kvm: Fix build on aarch64 2016-10-17 19:22:17 +01:00
arm_gic.c nvic: set pending status for not active interrupts 2016-11-07 10:00:24 +00:00
arm_gicv2m.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
arm_gicv3_common.c hw/intc/gicv3: Add data fields for virtualization support 2017-01-20 11:15:09 +00:00
arm_gicv3_cpuif.c hw/intc/arm_gicv3: Implement EL2 traps for CPU i/f regs 2017-01-20 11:15:10 +00:00
arm_gicv3_dist.c hw/intc/arm_gicv3: Fix compilation with simple trace backend 2016-06-20 11:35:15 +01:00
arm_gicv3_its_common.c hw/intc/arm_gicv3_its: Implement ITS base class 2016-10-04 13:28:08 +01:00
arm_gicv3_its_kvm.c hw/intc/arm_gicv3_its: Implement support for in-kernel ITS emulation 2016-10-04 13:28:09 +01:00
arm_gicv3_kvm.c hw/intc/arm_gic(v3)_kvm: Initialize gsi routing 2016-10-04 13:28:08 +01:00
arm_gicv3_redist.c arm_gicv3: Add assert()s to tell Coverity that offsets are aligned 2016-07-19 17:56:27 +01:00
arm_gicv3.c hw/intc/arm_gicv3: Don't signal Pending+Active interrupts to CPU 2016-12-27 14:59:25 +00:00
armv7m_nvic.c armv7m_nvic: Use qemu_get_cpu(0) instead of current_cpu 2016-07-04 13:15:22 +01:00
aspeed_vic.c hw: Clean up includes 2016-06-07 18:19:23 +03:00
bcm2835_ic.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
bcm2836_control.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
etraxfs_pic.c hw/intc: QOM'ify etraxfs_pic.c 2016-05-12 13:22:24 +01:00
exynos4210_combiner.c hw/intc: QOM'ify exynos4210_combiner.c 2016-05-12 13:22:24 +01:00
exynos4210_gic.c hw/intc: QOM'ify exynos4210_gic.c 2016-05-12 13:22:24 +01:00
gic_internal.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
gicv3_internal.h hw/intc/gicv3: Add defines for ICH system register fields 2017-01-20 11:15:09 +00:00
grlib_irqmp.c hw/intc: QOM'ify grlib_irqmp.c 2016-05-12 13:22:25 +01:00
heathrow_pic.c hw/intc: Clean up includes 2016-01-29 15:07:24 +00:00
i8259_common.c i8259: give ISA device when registering ISA ioports 2016-10-04 10:00:26 +02:00
i8259.c intc: make HMP 'info irq' and 'info pic' commands use InterruptStatsProvider interface 2016-10-04 10:00:25 +02:00
imx_avic.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
intc.c intc: add an interface to gather statistics/informations on interrupt controllers 2016-10-04 10:00:25 +02:00
ioapic_common.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
ioapic.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
lm32_pic.c intc: make HMP 'info irq' and 'info pic' commands use InterruptStatsProvider interface 2016-10-04 10:00:25 +02:00
Makefile.objs * Thread Sanitizer fixes (Alex) 2016-10-10 10:39:29 +01:00
mips_gic.c hw/mips: implement Global Interrupt Controller 2016-07-12 09:10:12 +01:00
omap_intc.c hw/intc: QOM'ify omap_intc.c 2016-05-12 13:22:25 +01:00
openpic_kvm.c qemu-common: push cpu.h inclusion out of qemu-common.h 2016-05-19 16:42:29 +02:00
openpic.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
pl190.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
puv3_intc.c unicore: Clean up includes 2016-01-29 15:07:22 +00:00
realview_gic.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
s390_flic_kvm.c s390x: wrap flic savevm calls into vmstate 2016-09-05 15:15:16 +02:00
s390_flic.c s390x/kvm: add interface for clearing IO irqs 2016-06-14 13:34:50 +02:00
sh_intc.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
slavio_intctl.c intc: make HMP 'info irq' and 'info pic' commands use InterruptStatsProvider interface 2016-10-04 10:00:25 +02:00
trace-events hw/intc/arm_gicv3: Implement gicv3_cpuif_virt_update() 2017-01-20 11:15:10 +00:00
vgic_common.h intc/gic: Extract some reusable vGIC code 2015-09-24 01:29:36 +01:00
xics_kvm.c ppc/xics: add a xics_set_nr_servers common routine 2016-10-28 09:36:58 +11:00
xics_spapr.c pseries: Move construction of /interrupt-controller fdt node 2016-10-28 09:38:26 +11:00
xics.c ppc/xics: change the icp_ routines API to use an 'ICPState *' argument 2016-10-28 09:36:58 +11:00
xilinx_intc.c hw/intc: Clean up includes 2016-01-29 15:07:24 +00:00