qemu/hw/intc
Peter Xu 20fd4b7b6d x86: ioapic: add support for explicit EOI
Some old Linux kernels (upstream before v4.0), or any released RHEL
kernels has problem in sending APIC EOI when IR is enabled. Meanwhile,
many of them only support explicit EOI for IOAPIC, which is only
introduced in IOAPIC version 0x20. This patch provide a way to boost
QEMU IOAPIC to version 0x20, in order for QEMU to correctly receive EOI
messages.

Without boosting IOAPIC version to 0x20, kernels before commit d32932d
("x86/irq: Convert IOAPIC to use hierarchical irqdomain interfaces")
will have trouble enabling both IR and level-triggered interrupt devices
(like e1000).

To upgrade IOAPIC to version 0x20, we need to specify:

  -global ioapic.version=0x20

To be compatible with old systems, 0x11 will still be the default IOAPIC
version. Here 0x11 and 0x20 are the only versions to be supported.

One thing to mention: this patch only applies to emulated IOAPIC. It
does not affect kernel IOAPIC behavior.

Signed-off-by: Peter Xu <peterx@redhat.com>
Message-Id: <1470059959-372-1-git-send-email-peterx@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2016-08-03 18:44:57 +02:00
..
allwinner-a10-pic.c
apic.c (kvm)apic: Add unrealize callbacks 2016-07-20 12:02:19 -03:00
apic_common.c apic: Use apic_id as apic's migration instance_id 2016-07-20 12:02:19 -03:00
arm_gic.c
arm_gic_common.c
arm_gic_kvm.c
arm_gicv2m.c
arm_gicv3.c
arm_gicv3_common.c
arm_gicv3_cpuif.c hw/intc/arm_gicv3: Add missing break 2016-06-27 15:37:32 +01:00
arm_gicv3_dist.c
arm_gicv3_kvm.c
arm_gicv3_redist.c arm_gicv3: Add assert()s to tell Coverity that offsets are aligned 2016-07-19 17:56:27 +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
bcm2835_ic.c
bcm2836_control.c
etraxfs_pic.c
exynos4210_combiner.c
exynos4210_gic.c
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
heathrow_pic.c
i8259.c
i8259_common.c
imx_avic.c
ioapic.c x86: ioapic: add support for explicit EOI 2016-08-03 18:44:57 +02:00
ioapic_common.c
lm32_pic.c hw/intc: QOM'ify lm32_pic.c 2016-06-20 18:12:04 +02:00
Makefile.objs hw/mips: implement Global Interrupt Controller 2016-07-12 09:10:12 +01:00
mips_gic.c hw/mips: implement Global Interrupt Controller 2016-07-12 09:10:12 +01:00
omap_intc.c
openpic.c
openpic_kvm.c
pl190.c
puv3_intc.c
realview_gic.c
s390_flic.c
s390_flic_kvm.c
sh_intc.c
slavio_intctl.c
trace-events trace: split out trace events for hw/intc/ directory 2016-06-20 17:22:15 +01:00
vgic_common.h
xics.c ppc/xics: Replace "icp" with "xics" in most places 2016-07-01 13:41:47 +10:00
xics_kvm.c ppc/xics: Replace "icp" with "xics" in most places 2016-07-01 13:41:47 +10:00
xics_spapr.c ppc/xics: Replace "icp" with "xics" in most places 2016-07-01 13:41:47 +10:00
xilinx_intc.c