qemu/hw/ppc
Cédric Le Goater d49e8a9b46 ppc: Reset the interrupt presenter from the CPU reset handler
On the sPAPR machine and PowerNV machine, the interrupt presenters are
created by a machine handler at the core level and are reset
independently. This is not consistent and it raises issues when it
comes to handle hot-plugged CPUs. In that case, the presenters are not
reset. This is less of an issue in XICS, although a zero MFFR could
be a concern, but in XIVE, the OS CAM line is not set and this breaks
the presenting algorithm. The current code has workarounds which need
a global cleanup.

Extend the sPAPR IRQ backend and the PowerNV Chip class with a new
cpu_intc_reset() handler called by the CPU reset handler and remove
the XiveTCTX reset handler which is now redundant.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20191022163812.330-6-clg@kaod.org>
Reviewed-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2019-10-24 13:33:45 +11:00
..
e500-ccsr.h ppc: do not use ../ in include files 2013-03-01 13:57:33 +01:00
e500.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
e500.h platform-bus-device: use device plug callback instead of machine_done notifier 2018-05-10 18:10:56 +01:00
e500plat.c Include hw/boards.h a bit less 2019-08-16 13:31:53 +02:00
fdt.c target/ppc: Split page size information into a separate allocation 2018-04-27 18:05:22 +10:00
fw_cfg.c hw/ppc: Implement fw_cfg_arch_key_name() 2019-05-23 14:10:31 +02:00
Kconfig spapr/xive: add KVM support 2019-05-29 11:39:45 +10:00
mac_newworld.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
mac_oldworld.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
mac.h ide: Include hw/ide/internal a bit less outside hw/ide/ 2019-08-16 13:31:52 +02:00
Makefile.objs hw/ppc/pnv_homer: add PowerNV homer device model 2019-10-04 10:25:23 +10:00
mpc8544_guts.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
mpc8544ds.c Include hw/boards.h a bit less 2019-08-16 13:31:53 +02:00
pnv_bmc.c ppc/pnv: fix "bmc" node name in DT 2019-10-04 10:25:23 +10:00
pnv_core.c ppc: Reset the interrupt presenter from the CPU reset handler 2019-10-24 13:33:45 +11:00
pnv_homer.c hw/ppc/pnv_homer: add PowerNV homer device model 2019-10-04 10:25:23 +10:00
pnv_lpc.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
pnv_occ.c hw/ppc/pnv_occ: add sram device model for occ common area 2019-10-04 10:25:23 +10:00
pnv_psi.c ppc/pnv: Use address_space_stq_be() when triggering an interrupt from PSI 2019-10-24 09:36:55 +11:00
pnv_xscom.c hw/ppc/pnv_xscom: retrieve homer/occ base address from PBA BARs 2019-10-04 10:25:23 +10:00
pnv.c ppc: Reset the interrupt presenter from the CPU reset handler 2019-10-24 13:33:45 +11:00
ppc4xx_devs.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
ppc4xx_pci.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
ppc405_boards.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
ppc405_uc.c Include hw/boards.h a bit less 2019-08-16 13:31:53 +02:00
ppc405.h ppc4xx: Export ECB and PLB emulation 2017-09-08 09:30:55 +10:00
ppc440_bamboo.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
ppc440_pcix.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
ppc440_uc.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
ppc440.h ppc440_uc: Basic emulation of PPC440 DMA controller 2018-07-03 09:56:52 +10:00
ppc_booke.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
ppc.c migration: Do not re-read the clock on pre_save in case of paused guest 2019-08-21 17:17:11 +10:00
ppce500_spin.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
prep_systemio.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
prep.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
rs6000_mc.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
sam460ex.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
spapr_caps.c ppc: fix memory leak in spapr_caps_add_properties 2019-08-21 17:17:11 +10:00
spapr_cpu_core.c ppc: Reset the interrupt presenter from the CPU reset handler 2019-10-24 13:33:45 +11:00
spapr_drc.c ppc: fix memory leak in spapr_dt_drc() 2019-08-21 17:17:11 +10:00
spapr_events.c spapr_events: Rewrite a fall through comment 2019-08-21 10:59:10 +02:00
spapr_hcall.c spapr: Use less cryptic representation of which irq backends are supported 2019-10-04 19:08:23 +10:00
spapr_iommu.c memory: allow memory_region_register_iommu_notifier() to fail 2019-10-04 18:49:18 +02:00
spapr_irq.c ppc: Reset the interrupt presenter from the CPU reset handler 2019-10-24 13:33:45 +11:00
spapr_ovec.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
spapr_pci_nvlink2.c spapr/pci: Convert types to QEMU coding style 2019-08-29 09:46:07 +10:00
spapr_pci_vfio.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
spapr_pci.c spapr: Remove SpaprIrq::nr_msis 2019-10-24 09:36:55 +11:00
spapr_rng.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
spapr_rtas_ddw.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
spapr_rtas.c spapr: Stop providing RTAS blob 2019-10-04 10:25:23 +10:00
spapr_rtc.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
spapr_tpm_proxy.c spapr-tpm-proxy: Drop misleading check 2019-10-04 10:25:23 +10:00
spapr_vio.c spapr: Replace spapr_vio_qirq() helper with spapr_vio_irq_pulse() helper 2019-10-04 19:08:22 +10:00
spapr.c spapr: Don't request to unplug the same core twice 2019-10-24 09:37:54 +11:00
trace-events spapr: Remove unhelpful tracepoints from spapr_irq_free_xics() 2019-10-04 19:08:22 +10:00
virtex_ml507.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00