qemu/hw/intc
Cédric Le Goater 0cddee8d48 spapr/xive: use the VCPU id as a NVT identifier
The IVPE scans the O/S CAM line of the XIVE thread interrupt contexts
to find a matching Notification Virtual Target (NVT) among the NVTs
dispatched on the HW processor threads.

On a real system, the thread interrupt contexts are updated by the
hypervisor when a Virtual Processor is scheduled to run on a HW
thread. Under QEMU, the model will emulate the same behavior by
hardwiring the NVT identifier in the thread context registers at
reset.

The NVT identifier used by the sPAPRXive model is the VCPU id. The END
identifier is also derived from the VCPU id. A set of helpers doing
the conversion between identifiers are provided for the hcalls
configuring the sources and the ENDs.

The model does not need a NVT table but the XiveRouter NVT operations
are provided to perform some extra checks in the routing algorithm.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2018-12-21 09:37:38 +11:00
..
allwinner-a10-pic.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
apic_common.c migration: pre_save return int 2017-09-27 11:35:59 +01:00
apic.c Rename cpu_physical_memory_write_rom() to address_space_write_rom() 2018-12-14 13:30:48 +00:00
arm_gic_common.c hw/intc/arm_gic: Drop GIC_BASE_IRQ macro 2018-09-25 15:13:24 +01:00
arm_gic_kvm.c intc/arm_gic: Add the virtualization extensions to the GIC state 2018-08-14 17:17:20 +01:00
arm_gic.c hw/intc/arm_gic: Drop GIC_BASE_IRQ macro 2018-09-25 15:13:24 +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_common: Move gicd shift bug handling to gicv3_post_load 2018-08-06 16:19:33 +01:00
arm_gicv3_cpuif.c target/arm: Introduce arm_hcr_el2_eff 2018-12-13 14:41:24 +00:00
arm_gicv3_dist.c hw/intc/arm_gicv3: fix an extra left-shift when reading IPRIORITYR 2018-06-22 13:28:34 +01:00
arm_gicv3_its_common.c hw/intc/arm_gicv3: Make reserved register addresses RAZ/WI 2018-01-11 13:25:40 +00:00
arm_gicv3_its_kvm.c hw/intc/arm_gicv3_its: downgrade error_report to warn_report in kvm_arm_its_reset 2018-08-20 11:24:31 +01:00
arm_gicv3_kvm.c hw/intc/arm_gicv3_kvm: Get prepared to handle multiple redist regions 2018-06-22 13:28:36 +01:00
arm_gicv3_redist.c hw/intc/arm_gicv3: fix an extra left-shift when reading IPRIORITYR 2018-06-22 13:28:34 +01:00
arm_gicv3.c hw/intc/arm_gicv3: Introduce redist-region-count array property 2018-06-22 13:28:36 +01:00
armv7m_nvic.c target/arm: Move some system registers into a substructure 2018-10-24 07:50:16 +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 qdev: Replace cannot_instantiate_with_device_add_yet with !user_creatable 2017-05-17 10:37:00 -03:00
exynos4210_combiner.c hw/intc: QOM'ify exynos4210_combiner.c 2016-05-12 13:22:24 +01:00
exynos4210_gic.c hw/intc/exynos4210_gic: Turn instance_init into realize function 2018-07-23 15:21:27 +01: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 sparc/leon3 irqmp: fix IRQ software ack 2018-01-24 19:19:50 +00:00
heathrow_pic.c heathrow: remove obsolete heathow_init() function 2018-04-27 18:05:22 +10:00
i8259_common.c i8259: move TYPE_INTERRUPT_STATS_PROVIDER upper 2017-12-21 09:30:32 +01:00
i8259.c qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
imx_avic.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
imx_gpcv2.c i.MX: Add code to emulate GPCv2 IP block 2018-02-09 10:40:30 +00: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 ioapic: support "info irq" 2018-06-28 19:05:37 +02:00
ioapic.c ioapic: Fix error handling in realize() 2018-10-19 14:51:34 +02:00
lm32_pic.c misc: drop old i386 dependency 2017-12-18 17:07:03 +03:00
Makefile.objs spapr/xive: introduce a XIVE interrupt controller 2018-12-21 09:37:38 +11:00
mips_gic.c hw/mips_gic: Update pin state on mask changes 2017-02-21 22:24:58 +00:00
nios2_iic.c qdev: Replace cannot_instantiate_with_device_add_yet with !user_creatable 2017-05-17 10:37:00 -03:00
omap_intc.c Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
ompic.c openrisc/ompic: Add OpenRISC Multicore PIC (OMPIC) 2017-10-21 06:35:47 +09:00
openpic_kvm.c openpic_kvm: drop address_space_to_flatview call 2018-03-06 14:01:27 +01:00
openpic.c openpic: move OpenPIC state and related definitions to openpic.h 2018-03-06 13:16:29 +11:00
pl190.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
puv3_intc.c intc/puv3_intc: Convert sysbus init function to realize function 2018-12-13 13:47:59 +00:00
realview_gic.c hw/*/realview: Fix introspection problem with 'realview_mpcore' & 'realview_gic' 2018-07-17 13:12:49 +01:00
s390_flic_kvm.c vmstate: constify VMStateField 2018-11-27 15:35:15 +01:00
s390_flic.c qmp: expose s390-specific CPU info 2018-02-26 12:55:26 +01:00
sh_intc.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
slavio_intctl.c sun4m: remove include/hw/sparc/sun4m.h and all references to it 2018-01-09 21:48:20 +00:00
spapr_xive.c spapr/xive: use the VCPU id as a NVT identifier 2018-12-21 09:37:38 +11:00
trace-events nvic: Expose NMI line 2018-08-20 11:24:33 +01:00
vgic_common.h intc/gic: Extract some reusable vGIC code 2015-09-24 01:29:36 +01:00
xics_kvm.c Use error_fatal to simplify obvious fatal errors (again) 2018-10-19 14:51:34 +02:00
xics_pnv.c ppc/xics: introduce ICP DeviceRealize and DeviceReset handlers 2018-07-03 09:56:51 +10:00
xics_spapr.c Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
xics.c error: Fix use of error_prepend() with &error_fatal, &error_abort 2018-10-19 14:51:34 +02:00
xilinx_intc.c hw/intc: Clean up includes 2016-01-29 15:07:24 +00:00
xive.c ppc/xive: notify the CPU when the interrupt priority is more privileged 2018-12-21 09:37:33 +11:00
xlnx-pmu-iomod-intc.c xlnx-pmu-iomod-intc: Add the PMU Interrupt controller 2018-01-26 11:09:09 +01:00
xlnx-zynqmp-ipi.c xlnx-zynqmp-ipi: Initial version of the Xilinx IPI device 2018-01-26 11:09:09 +01:00