qemu-e2k/hw/intc
Cédric Le Goater 02e3ff548d ppc/xive: introduce a XIVE interrupt source model
The first sub-engine of the overall XIVE architecture is the Interrupt
Virtualization Source Engine (IVSE). An IVSE can be integrated into
another logic, like in a PCI PHB or in the main interrupt controller
to manage IPIs.

Each IVSE instance is associated with an Event State Buffer (ESB) that
contains a two bit state entry for each possible event source. When an
event is signaled to the IVSE, by MMIO or some other means, the
associated interrupt state bits are fetched from the ESB and
modified. Depending on the resulting ESB state, the event is forwarded
to the IVRE sub-engine of the controller doing the routing.

Each supported ESB entry is associated with either a single or a
even/odd pair of pages which provides commands to manage the source:
to EOI, to turn off the source for instance.

On a sPAPR machine, the O/S will obtain the page address of the ESB
entry associated with a source and its characteristic using the
H_INT_GET_SOURCE_INFO hcall. On PowerNV, a similar OPAL call is used.

The xive_source_notify() routine is in charge forwarding the source
event notification to the routing engine. It will be filled later on.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2018-12-21 09:24:23 +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 ppc/xive: introduce a XIVE interrupt source model 2018-12-21 09:24:23 +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
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: introduce a XIVE interrupt source model 2018-12-21 09:24:23 +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