qemu/include/hw/ppc
David Gibson ad8de98636 spapr: Clarify and fix handling of nr_irqs
Both the XICS and XIVE interrupt backends have a "nr-irqs" property, but
it means slightly different things.  For XICS (or, strictly, the ICS) it
indicates the number of "real" external IRQs.  Those start at XICS_IRQ_BASE
(0x1000) and don't include the special IPI vector.  For XIVE, however, it
includes the whole IRQ space, including XIVE's many IPI vectors.

The spapr code currently doesn't handle this sensibly, with the
nr_irqs value in SpaprIrq having different meanings depending on the
backend.  We fix this by renaming nr_irqs to nr_xirqs and making it
always indicate just the number of external irqs, adjusting the value
we pass to XIVE accordingly.  We also move to using common constants
in most of the irq configurations, to make it clearer that the IRQ
space looks the same to the guest (and emulated devices), even if the
backend is different.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
2019-10-04 19:08:22 +10:00
..
fdt.h target/ppc: Pass cpu instead of env to ppc_create_page_sizes_prop() 2018-04-27 18:05:22 +10:00
mac_dbdma.h mac_dbdma: remove DBDMA_init() function 2017-09-27 13:05:41 +10:00
openpic_kvm.h openpic: move KVM-specific declarations into separate openpic_kvm.h file 2018-03-06 13:16:29 +11:00
openpic.h hw/core: Move cpu.c, cpu.h from qom/ to hw/core/ 2019-08-21 13:24:01 +02:00
pnv_core.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
pnv_homer.h hw/ppc/pnv_homer: add PowerNV homer device model 2019-10-04 10:25:23 +10:00
pnv_lpc.h Clean up ill-advised or unusual header guards 2019-05-13 08:58:55 +02:00
pnv_occ.h hw/ppc/pnv_occ: add sram device model for occ common area 2019-10-04 10:25:23 +10:00
pnv_psi.h Clean up ill-advised or unusual header guards 2019-05-13 08:58:55 +02:00
pnv_xive.h ppc/pnv: add a XIVE interrupt controller model for POWER9 2019-03-12 14:33:04 +11:00
pnv_xscom.h ppc/pnv: fix XSCOM MMIO base address for P9 machines with multiple chips 2019-07-02 09:43:58 +10:00
pnv.h hw/ppc/pnv_homer: add PowerNV homer device model 2019-10-04 10:25:23 +10:00
ppc4xx.h Clean up inclusion of exec/cpu-common.h 2019-08-16 13:31:52 +02:00
ppc_e500.h intc/openpic: Build openpic only once 2013-07-09 21:33:02 +02:00
ppc.h ppc: externalize ppc_get_vcpu_by_pir() 2019-03-12 14:33:04 +11:00
spapr_cpu_core.h spapr: Implement H_PROD 2019-08-21 17:17:12 +10:00
spapr_drc.h sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
spapr_irq.h spapr: Clarify and fix handling of nr_irqs 2019-10-04 19:08:22 +10:00
spapr_ovec.h Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
spapr_rtas.h tests: add RTAS command in the protocol 2016-09-23 10:29:40 +10:00
spapr_tpm_proxy.h spapr: initial implementation for H_TPM_COMM/spapr-tpm-proxy 2019-08-21 17:17:12 +10:00
spapr_vio.h spapr: Replace spapr_vio_qirq() helper with spapr_vio_irq_pulse() helper 2019-10-04 19:08:22 +10:00
spapr_xive.h sysemu: Move the VMChangeStateEntry typedef to qemu/typedefs.h 2019-08-16 13:31:53 +02:00
spapr.h spapr: Stop providing RTAS blob 2019-10-04 10:25:23 +10:00
xics_spapr.h xics: Create sPAPR specific ICS subtype 2019-10-04 19:08:22 +10:00
xics.h xics: Merge TYPE_ICS_BASE and TYPE_ICS_SIMPLE classes 2019-10-04 19:08:22 +10:00
xive_regs.h ppc/xive: Improve 'info pic' support 2019-08-21 17:17:39 +10:00
xive.h ppc/xive: Improve 'info pic' support 2019-08-21 17:17:39 +10:00