qemu-e2k/hw/intc
Cédric Le Goater 106695ab12 ppc/pnv: Improve trigger data definition
The trigger data is used for both triggers of a HW source interrupts,
PHB, PSI, and triggers for rerouting interrupts between interrupt
controllers.

When an interrupt is rerouted, the trigger data follows an "END
trigger" format. In that case, the remote IC needs EAS containing an
END index to perform a lookup of an END.

An END trigger, bit0 of word0 set to '1', is defined as :

             |0123|4567|0123|4567|0123|4567|0123|4567|
    W0 E=1   |1P--|BLOC|          END IDX            |
    W1 E=1   |M   |           END DATA               |

An EAS is defined as :

             |0123|4567|0123|4567|0123|4567|0123|4567|
    W0       |V---|BLOC|          END IDX            |
    W1       |M   |          END DATA                |

The END trigger adds an extra 'PQ' bit, bit1 of word0 set to '1',
signaling that the PQ bits have been checked. That bit is unused in
the initial EAS definition.

When a HW device performs the trigger, the trigger data follows an
"EAS trigger" format because the trigger data in that case contains an
EAS index which the IC needs to look for.

An EAS trigger, bit0 of word0 set to '0', is defined as :

             |0123|4567|0123|4567|0123|4567|0123|4567|
    W0 E=0   |0P--|---- ---- ---- ---- ---- ---- ----|
    W1 E=0   |BLOC|            EAS INDEX             |

There is also a 'PQ' bit, bit1 of word0 to '1', signaling that the
PQ bits have been checked.

Introduce these new trigger bits and rename the XIVE_SRCNO macros in
XIVE_EAS to reflect better the nature of the data.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20191007084102.29776-2-clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2019-10-24 09:36:55 +11:00
..
allwinner-a10-pic.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
apic_common.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
apic.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
arm_gic_common.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
arm_gic_kvm.c intc/arm_gic: Support IRQ injection for more than 256 vpus 2019-10-15 18:09:02 +01:00
arm_gic.c hw/core: Move cpu.c, cpu.h from qom/ to hw/core/ 2019-08-21 13:24:01 +02:00
arm_gicv2m.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
arm_gicv3_common.c hw/core: Move cpu.c, cpu.h from qom/ to hw/core/ 2019-08-21 13:24:01 +02:00
arm_gicv3_cpuif.c Include hw/irq.h a lot less 2019-08-16 13:31:52 +02:00
arm_gicv3_dist.c hw/intc/arm_gicv3: GICD_TYPER.SecurityExtn is RAZ if GICD_CTLR.DS == 1 2019-06-17 15:13:19 +01:00
arm_gicv3_its_common.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
arm_gicv3_its_kvm.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
arm_gicv3_kvm.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
arm_gicv3_redist.c hw/intc/arm_gicv3: Fix decoding of ID register range 2019-06-17 15:13:19 +01:00
arm_gicv3.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
armv7m_nvic.c memory: Access MemoryRegion with endianness 2019-09-03 08:30:39 -07:00
aspeed_vic.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
bcm2835_ic.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
bcm2836_control.c hw/arm/bcm2835_peripherals: Improve logging 2019-10-15 18:09:05 +01:00
etraxfs_pic.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
exynos4210_combiner.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
exynos4210_gic.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
gic_internal.h hw/intc/arm_gic: Drop GIC_BASE_IRQ macro 2018-09-25 15:13:24 +01:00
gicv3_internal.h target-arm: Add GICv3CPUState in CPUARMState struct 2017-02-28 17:10:00 +00:00
grlib_irqmp.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
heathrow_pic.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
i8259_common.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
i8259.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
imx_avic.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
imx_gpcv2.c Include migration/vmstate.h less 2019-08-16 13:31:52 +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 migration/vmstate.h less 2019-08-16 13:31:52 +02:00
ioapic.c Include sysemu/sysemu.h a lot less 2019-08-16 13:31:53 +02:00
Kconfig kconfig: add CONFIG_MSI_NONBROKEN 2019-03-18 09:39:57 +01:00
lm32_pic.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
Makefile.objs hw/intc: Only build the xlnx-iomod-intc device for the MicroBlaze PMU 2019-08-19 21:28:25 +02:00
mips_gic.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
nios2_iic.c Include hw/irq.h a lot less 2019-08-16 13:31:52 +02:00
omap_intc.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
ompic.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
openpic_kvm.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
openpic.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
pl190.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
pnv_xive_regs.h ppc/pnv: add a XIVE interrupt controller model for POWER9 2019-03-12 14:33:04 +11:00
pnv_xive.c ppc/pnv: Improve trigger data definition 2019-10-24 09:36:55 +11:00
puv3_intc.c Include hw/irq.h a lot less 2019-08-16 13:31:52 +02:00
realview_gic.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
s390_flic_kvm.c s390x/kvm: Officially require at least kernel 3.15 2019-09-23 09:15:03 +02:00
s390_flic.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
sh_intc.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
slavio_intctl.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
spapr_xive_kvm.c xive: Improve irq claim/free path 2019-10-04 19:08:23 +10:00
spapr_xive.c xive: Improve irq claim/free path 2019-10-04 19:08:23 +10:00
trace-events xics: Rename misleading ics_simple_*() functions 2019-10-04 19:08:22 +10:00
vgic_common.h intc/gic: Extract some reusable vGIC code 2015-09-24 01:29:36 +01:00
xics_kvm.c spapr/irq: Only claim VALID interrupts at the KVM level 2019-10-04 10:25:23 +10:00
xics_pnv.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
xics_spapr.c spapr: Eliminate SpaprIrq:get_nodename method 2019-10-04 19:08:22 +10:00
xics.c xics: Make some device types not user creatable 2019-10-24 09:36:55 +11:00
xilinx_intc.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
xive.c ppc/pnv: Improve trigger data definition 2019-10-24 09:36:55 +11:00
xlnx-pmu-iomod-intc.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
xlnx-zynqmp-ipi.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00