qemu/hw/ppc
Nicholas Piggin 96746f7a95 ppc/pnv: Fix direct controls quiesce
powernv CPUs have a set of control registers that can stop, start, and
do other things to control a thread's execution.

Using this interface to stop a thread puts it into a particular state
that can be queried, and is distinguishable from other things that might
stop the CPU (e.g., going idle, or being debugged via gdb, or stopped by
the monitor).

Add a new flag that can speficially distinguish this state where it is
stopped with control registers. This solves some hangs when rebooting
powernv machines when skiboot is modified to allow QEMU to use the CPU
control facility (that uses controls to bring all secondaries to a known
state).

Fixes: c889195508 ("ppc/pnv: Implement POWER10 PC xscom registers for direct controls")
Reviewed-by: Glenn Miles <milesg@linux.ibm.com>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
2024-11-27 02:47:25 +10:00
..
amigaone.c hw/isa/vt82c686: Turn "intr" irq into a named gpio 2024-07-16 20:04:08 +02:00
e500-ccsr.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
e500.c hw/ppc/e500: Add missing device tree properties to i2c controller node 2024-11-05 23:32:25 +00:00
e500.h hw/ppc: Consolidate e500 initial mapping creation functions 2024-11-04 10:09:36 +10:00
e500plat.c hw/ppc: Use MachineClass->default_nic in the ppc machines 2023-05-22 09:44:22 +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 hw/char: Extract serial-mm 2024-10-03 19:33:23 +02:00
mac_newworld.c ppc: fix incorrect spelling of PowerMac 2024-09-20 08:06:56 +03:00
mac_oldworld.c ppc: fix incorrect spelling of PowerMac 2024-09-20 08:06:56 +03:00
meson.build ppc/pnv: Begin a more complete ADU LPC model for POWER9/10 2024-07-26 09:21:06 +10:00
mpc8544_guts.c hw/ppc/mpc8544_guts: Prefer DEFINE_TYPES() macro 2024-11-05 23:32:25 +00:00
mpc8544ds.c hw/ppc: Use MachineClass->default_nic in the ppc machines 2023-05-22 09:44:22 +02:00
pef.c ppc/pef: switch to use confidential_guest_kvm_init/reset() 2024-04-23 17:35:25 +02:00
pegasos2.c reset: Use ResetType for qemu_devices_reset() and MachineClass::reset() 2024-09-24 11:33:34 +02:00
pnv.c hw/ppc: Implement -dtb support for PowerNV 2024-11-04 09:14:09 +10:00
pnv_adu.c ppc/pnv: ADU fix possible buffer overrun with invalid size 2024-11-04 09:08:58 +10:00
pnv_bmc.c hw/ppc/pnv_bmc: Use qdev_new() instead of QOM API 2024-02-22 12:47:40 +01:00
pnv_chiptod.c ppc/pnv: Move timebase state into PnvCore 2024-07-26 09:21:06 +10:00
pnv_core.c ppc/pnv: Fix direct controls quiesce 2024-11-27 02:47:25 +10:00
pnv_homer.c include/hw/ppc: Split pnv_chip.h off pnv.h 2023-01-20 07:25:10 +01:00
pnv_i2c.c ppc/pnv: I2C controller is not user creatable 2024-03-19 11:56:45 +01:00
pnv_lpc.c ppc/pnv: Fix LPC POWER8 register sanity check 2024-11-04 09:08:24 +10:00
pnv_n1_chiplet.c hw/ppc: Add N1 chiplet model 2024-02-23 23:24:42 +10:00
pnv_nest_pervasive.c hw/ppc: Add pnv nest pervasive common chiplet model 2024-02-23 23:24:42 +10:00
pnv_occ.c bulk: Remove pointless QOM casts 2023-06-05 20:48:34 +02:00
pnv_pnor.c block: Change blk_{pread,pwrite}() param order 2022-07-12 12:14:56 +02:00
pnv_psi.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
pnv_sbe.c bulk: Remove pointless QOM casts 2023-06-05 20:48:34 +02:00
pnv_xscom.c ppc/pnv: Begin a more complete ADU LPC model for POWER9/10 2024-07-26 09:21:06 +10:00
ppc.c hw/ppc: fix decrementer with BookE timers 2024-11-04 09:09:21 +10:00
ppc4xx_devs.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
ppc4xx_sdram.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
ppc405.h ppc4xx_sdram: QOM'ify 2022-10-17 16:15:09 -03:00
ppc405_boards.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
ppc405_uc.c hw/char: Extract serial-mm 2024-10-03 19:33:23 +02:00
ppc440.h ppc440: Remove ppc460ex_pcie_init legacy init function 2023-07-07 04:47:49 -03:00
ppc440_bamboo.c hw/ppc: Consolidate ppc440 initial mapping creation functions 2024-11-04 10:09:36 +10:00
ppc440_uc.c hw/ppc/ppc4xx_pci: Extract PCI host definitions to hw/pci-host/ppc4xx.h 2024-02-22 12:47:40 +01:00
ppc_booke.c hw/ppc: Consolidate ppc440 initial mapping creation functions 2024-11-04 10:09:36 +10:00
ppce500_spin.c hw/ppc: Consolidate e500 initial mapping creation functions 2024-11-04 10:09:36 +10:00
prep.c hw: Remove unused inclusion of hw/char/serial.h 2024-10-03 19:33:23 +02:00
prep_systemio.c hw/ppc: Constify VMState 2023-12-30 07:38:06 +11:00
rs6000_mc.c license: Simplify GPL-2.0-or-later license descriptions 2024-09-20 10:11:59 +03:00
sam460ex.c hw/ppc: Consolidate ppc440 initial mapping creation functions 2024-11-04 10:09:36 +10:00
spapr.c ppc/spapr: remove deprecated machine pseries-2.12 2024-11-04 09:10:32 +10:00
spapr_caps.c spapr: Migrate ail-mode-3 spapr cap 2024-07-26 09:21:06 +10:00
spapr_cpu_core.c ppc/pseries: Add Power11 cpu type 2024-11-04 09:12:47 +10:00
spapr_drc.c hw/ppc: Constify VMState 2023-12-30 07:38:06 +11:00
spapr_events.c hw/ppc: remove return after g_assert_not_reached() 2024-09-24 13:53:35 +02:00
spapr_hcall.c spapr: nested: register nested-hv api hcalls only for cap-nested-hv 2024-03-13 02:47:04 +10:00
spapr_iommu.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
spapr_irq.c hw/ppc: Avoid using Monitor in spapr_irq_print_info() 2024-06-19 12:40:49 +02:00
spapr_nested.c spapr: nested: Add Power11 capability support for Nested PAPR guests in TCG L0 2024-11-04 09:14:02 +10:00
spapr_numa.c spapr: Remove support for NVIDIA V100 GPU with NVLink2 2023-09-18 07:25:28 -03:00
spapr_nvdimm.c hw/ppc: Constify VMState 2023-12-30 07:38:06 +11:00
spapr_ovec.c hw/ppc: Constify VMState 2023-12-30 07:38:06 +11:00
spapr_pci.c ppc/spapr: remove deprecated machine pseries-2.7 2024-11-04 09:10:27 +10:00
spapr_pci_vfio.c hw/ppc/Kconfig: Imply VFIO_PCI 2023-12-19 19:03:38 +01:00
spapr_rng.c system/cpus: rename qemu_mutex_lock_iothread() to bql_lock() 2024-01-08 10:45:43 -05:00
spapr_rtas.c ppc: qtest already exports qtest_rtas_call() 2023-11-07 15:49:41 -03:00
spapr_rtas_ddw.c spapr/ddw: Implement 64bit query extension 2022-07-06 10:22:37 -03:00
spapr_rtc.c hw/ppc: Constify VMState 2023-12-30 07:38:06 +11:00
spapr_tpm_proxy.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
spapr_vhyp_mmu.c target/ppc: Unexport some functions from mmu-book3s-v3.h 2024-07-26 09:51:34 +10:00
spapr_vio.c hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
spapr_vof.c spapr: Free stdout path 2024-07-26 09:21:06 +10:00
trace-events ppc/pnv: Begin a more complete ADU LPC model for POWER9/10 2024-07-26 09:21:06 +10:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
virtex_ml507.c hw/ppc: Consolidate ppc440 initial mapping creation functions 2024-11-04 10:09:36 +10:00
vof.c ppc/vof: Fix unaligned FDT property access 2024-07-26 09:21:06 +10:00