qemu-cr16/include/hw/ppc
Nicholas Piggin 581bec5a04 ppc/xive: tctx signaling registers rework
The tctx "signaling" registers (PIPR, CPPR, NSR) raise an interrupt on
the target CPU thread. The POOL and PHYS rings both raise hypervisor
interrupts, so they both share one set of signaling registers in the
PHYS ring. The PHYS NSR register contains a field that indicates which
ring has presented the interrupt being signaled to the CPU.

This sharing results in all the "alt_regs" throughout the code. alt_regs
is not very descriptive, and worse is that the name is used for
conversions in both directions, i.e., to find the presenting ring from
the signaling ring, and the signaling ring from the presenting ring.

Instead of alt_regs, use the names sig_regs and sig_ring, and regs and
ring for the presenting ring being worked on. Add a helper function to
get the sign_regs, and add some asserts to ensure the POOL regs are
never used to signal interrupts.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Reviewed-by: Glenn Miles <milesg@linux.ibm.com>
Reviewed-by: Michael Kowal <kowal@linux.ibm.com>
Tested-by: Gautam Menghani <gautam@linux.ibm.com>
Link: https://lore.kernel.org/qemu-devel/20250512031100.439842-34-npiggin@gmail.com
Signed-off-by: Cédric Le Goater <clg@redhat.com>
2025-07-21 08:03:53 +02:00
..
fdt.h hw/ppc: Clean up local variable shadowing in _FDT helper routine 2023-09-29 10:07:17 +02:00
mac_dbdma.h include/system: Move exec/memory.h to system/memory.h 2025-04-23 14:08:21 -07:00
openpic.h ppc: spelling fixes 2023-09-20 07:54:34 +03:00
openpic_kvm.h
pnv.h ppc/pnv/homer: class-based base and size 2025-03-11 22:43:30 +10:00
pnv_adu.h ppc/pnv: Implement ADU access to LPC space 2024-07-26 09:21:06 +10:00
pnv_chip.h pnv/xive: Support cache flush and queue sync inject with notifications 2024-07-26 09:51:20 +10:00
pnv_chiptod.h ppc/pnv: Implement the ChipTOD to Core transfer 2024-02-23 23:24:43 +10:00
pnv_core.h ppc/pnv: Add an LPAR per core machine option 2024-07-26 09:21:06 +10:00
pnv_homer.h ppc/pnv: Make HOMER memory a RAM region 2025-03-11 22:43:30 +10:00
pnv_i2c.h ppc/pnv: Add an I2C controller model 2023-11-07 15:49:41 -03:00
pnv_lpc.h include/system: Move exec/memory.h to system/memory.h 2025-04-23 14:08:21 -07:00
pnv_n1_chiplet.h hw/ppc: Add N1 chiplet model 2024-02-23 23:24:42 +10:00
pnv_nest_pervasive.h hw/ppc: Add pnv nest pervasive common chiplet model 2024-02-23 23:24:42 +10:00
pnv_occ.h include/system: Move exec/memory.h to system/memory.h 2025-04-23 14:08:21 -07:00
pnv_pnor.h ppc/pnv: Move the PNOR LPC address into struct PnvPnor 2025-03-20 19:58:10 +10:00
pnv_psi.h hw/ppc: Avoid using Monitor in pnv_psi_pic_print_info() 2024-06-19 12:40:49 +02:00
pnv_sbe.h include/system: Move exec/memory.h to system/memory.h 2025-04-23 14:08:21 -07:00
pnv_xive.h hw/ppc: Avoid using Monitor in pnv_xive2_pic_print_info() 2024-06-19 12:40:49 +02:00
pnv_xscom.h include/system: Move exec/memory.h to system/memory.h 2025-04-23 14:08:21 -07:00
ppc.h hw/ppc: Consolidate ppc440 initial mapping creation functions 2024-11-04 10:09:36 +10:00
ppc4xx.h include/system: Move exec/memory.h to system/memory.h 2025-04-23 14:08:21 -07:00
ppc_e500.h
spapr.h spapr: Generate random HASHPKEYR for spapr machines 2025-03-11 22:43:32 +10:00
spapr_cpu_core.h ppc/spapr: remove deprecated machine pseries-2.12 2024-11-04 09:10:32 +10:00
spapr_drc.h include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
spapr_irq.h hw/ppc: Avoid using Monitor in spapr_irq_print_info() 2024-06-19 12:40:49 +02:00
spapr_nested.h spapr: nested: Add support for reporting Hostwide state counter 2025-03-11 22:43:32 +10:00
spapr_numa.h spapr: move FORM1 verifications to post CAS 2021-09-30 12:26:06 +10:00
spapr_nvdimm.h spapr: nvdimm: Implement H_SCM_FLUSH hcall 2022-02-18 08:34:14 +01:00
spapr_ovec.h spapr_numa.c: FORM2 NUMA affinity support 2021-09-30 12:26:06 +10:00
spapr_tpm_proxy.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
spapr_vio.h include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
spapr_xive.h spapr/xive: Make spapr_xive_pic_print_info() static 2021-01-06 11:09:59 +11:00
vof.h include/system: Move exec/address-spaces.h to system/address-spaces.h 2025-04-23 14:08:21 -07:00
xics.h include/system: Move exec/memory.h to system/memory.h 2025-04-23 14:08:21 -07:00
xics_spapr.h spapr/xics: Drop unused argument to xics_kvm_has_broken_disconnect() 2020-12-14 15:50:55 +11:00
xive.h ppc/xive: tctx signaling registers rework 2025-07-21 08:03:53 +02:00
xive2.h ppc/xive2: redistribute irqs for pool and phys ctx pull 2025-07-21 08:03:52 +02:00
xive2_regs.h ppc/xive2: redistribute irqs for pool and phys ctx pull 2025-07-21 08:03:52 +02:00
xive_regs.h ppc/xive2: Add grouping level to notification 2025-03-11 22:43:31 +10:00