qemu/hw/intc
Pavel Fedin 0c9f302ea2 hw/intc/arm_gicv3_its: Implement support for in-kernel ITS emulation
The ITS control frame is in-kernel emulated while accesses to the
GITS_TRANSLATER are mediated through the KVM_SIGNAL_MSI ioctl (MSI
direct MSI injection advertised by the CAP_SIGNAL_MSI capability)

the kvm_gsi_direct_mapping is explicitly set to false to emphasize the
difference with GICv2M. Direct mapping cannot work with ITS since
the content of the MSI data is not the target interrupt ID but an
eventd id.

GSI routing is advertised (kvm_gsi_routing_allowed) as well as
msi/irqfd signaling (kvm_msi_via_irqfd_allowed).

The MSI frame (GITS_TRANSLATER) absolute GPA is computed on first
kvm_its_send_msi() call. It is then passed through KVM_SIGNAL_MSI
ioctl.

Signed-off-by: Pavel Fedin <p.fedin@samsung.com>
Signed-off-by: Eric Auger <eric.auger@redhat.com>
Message-id: 1474616617-366-6-git-send-email-eric.auger@redhat.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-10-04 13:28:09 +01:00
..
allwinner-a10-pic.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
apic_common.c apic: Use apic_id as apic's migration instance_id 2016-07-20 12:02:19 -03:00
apic.c pc: apic: introduce APIC macro 2016-09-15 15:09:59 +02:00
arm_gic_common.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
arm_gic_kvm.c hw/intc/arm_gic(v3)_kvm: Initialize gsi routing 2016-10-04 13:28:08 +01:00
arm_gic.c hw/intc/gic: RAZ/WI non-sec access to sec interrupts 2016-06-06 16:59:29 +01:00
arm_gicv2m.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
arm_gicv3_common.c hw/intc/arm_gicv3: Implement functions to identify next pending irq 2016-06-17 15:23:51 +01:00
arm_gicv3_cpuif.c hw/intc/arm_gicv3: Add missing break 2016-06-27 15:37:32 +01: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: Implement GICv3 CPU interface registers 2016-06-17 15:23:51 +01: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 Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02: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 hw/intc: Clean up includes 2016-01-29 15:07:24 +00:00
i8259.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
imx_avic.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +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 x86: ioapic: boost default version to 0x20 2016-09-27 11:57:28 +02:00
lm32_pic.c hw/intc: QOM'ify lm32_pic.c 2016-06-20 18:12:04 +02:00
Makefile.objs hw/intc/arm_gicv3_its: Implement support for in-kernel ITS emulation 2016-10-04 13:28:09 +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 hw/intc: QOM'ify slavio_intctl.c 2016-05-12 13:22:25 +01:00
trace-events trace-events: fix first line comment in trace-events 2016-08-12 10:36:01 +01:00
vgic_common.h intc/gic: Extract some reusable vGIC code 2015-09-24 01:29:36 +01:00
xics_kvm.c xics_kvm: drop extra checking of kernel_xics_fd 2016-09-07 09:52:14 +10:00
xics_spapr.c ppc/xics: Replace "icp" with "xics" in most places 2016-07-01 13:41:47 +10:00
xics.c ppc/xics: account correct irq status 2016-09-23 12:39:07 +10:00
xilinx_intc.c hw/intc: Clean up includes 2016-01-29 15:07:24 +00:00