qemu/include/hw/ppc
Cédric Le Goater 13bee8521c ppc/xive: Introduce a XivePresenter interface
When the XIVE IVRE sub-engine (XiveRouter) looks for a Notification
Virtual Target (NVT) to notify, it broadcasts a message on the
PowerBUS to find an XIVE IVPE sub-engine (Presenter) with the NVT
dispatched on one of its HW threads, and then forwards the
notification if any response was received.

The current XIVE presenter model is sufficient for the pseries machine
because it has a single interrupt controller device, but the PowerNV
machine can have multiple chips each having its own interrupt
controller. In this case, the XIVE presenter model is too simple and
the CAM line matching should scan all chips of the system.

To start fixing this issue, we first extend the XIVE Router model with
a new XivePresenter QOM interface representing the XIVE IVPE
sub-engine. This interface exposes a 'match_nvt' handler which the
sPAPR and PowerNV XIVE Router models will need to implement to perform
the CAM line matching.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Greg Kurz <groug@kaod.org>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20191125065820.927-2-clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2019-12-17 10:39:47 +11: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 ppc/pnv: Add a PnvChip pointer to PnvCore 2019-10-24 13:33:33 +11: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_pnor.h ppc/pnv: Add HIOMAP commands 2019-12-17 10:39:47 +11: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 ppc/pnv: Create BMC devices at machine init 2019-12-17 10:39:47 +11: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 ppc: Add intc_destroy() handlers to SpaprInterruptController/PnvChip 2019-11-18 11:49:11 +01: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 spapr/xive: Set the OS CAM line at reset 2019-10-24 13:34:15 +11:00
spapr.h spapr: Move SpaprIrq::nr_xirqs to SpaprMachineClass 2019-10-24 09:36:55 +11:00
xics_spapr.h spapr, xics, xive: Match signatures for XICS and XIVE KVM connect routines 2019-10-24 09:36:55 +11:00
xics.h ppc: Add intc_destroy() handlers to SpaprInterruptController/PnvChip 2019-11-18 11:49:11 +01:00
xive_regs.h ppc/xive: Introduce helpers for the NVT id 2019-12-17 10:39:47 +11:00
xive.h ppc/xive: Introduce a XivePresenter interface 2019-12-17 10:39:47 +11:00