qemu/hw/ppc
Glenn Miles c6e07f03f7 ppc/pnv: Fix loss of LPC SERIRQ interrupts
The LPC HC irq status register bits are set when an LPC IRQSER input is
asserted. These irq status bits drive the PSI irq to the CPU interrupt
controller. The LPC HC irq status bits are cleared by software writing
to the register with 1's for the bits to clear.

Existing register write was clearing the irq status bits even when the
input was asserted, this results in interrupts being lost.

This fix changes the behavior to keep track of the device IRQ status
in internal state that is separate from the irq status register, and
only allowing the irq status bits to be cleared if the associated
input is not asserted.

Signed-off-by: Glenn Miles <milesg@linux.ibm.com>
[np: rebased before P9 PSI SERIRQ patch, adjust changelog/comments]
Reviewed-by: Glenn Miles <milesg@linux.ibm.com>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
2024-07-26 09:21:06 +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: use pci_init_nic_devices() 2024-02-02 16:23:47 +00:00
e500.h hw/ppc/e500: Add Freescale eSDHC to e500plat 2022-12-21 14:17:55 -03: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 kconfig: express dependency of individual boards on libfdt 2024-05-10 15:45:15 +02:00
mac_newworld.c mac_newworld: change timebase frequency from 100MHz to 25MHz for mac99 machine 2024-03-09 19:17:01 +01:00
mac_oldworld.c hw/ppc: use pci_init_nic_devices() 2024-02-02 16:23:47 +00:00
meson.build meson: pick libfdt from common_ss when building target-specific files 2024-05-10 15:45:15 +02:00
mpc8544_guts.c target/ppc: Prefer fast cpu_env() over slower CPU QOM cast macro 2024-03-12 12:04:24 +01: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 hw/isa/vt82c686: Turn "intr" irq into a named gpio 2024-07-16 20:04:08 +02: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: Implement the ChipTOD to Core transfer 2024-02-23 23:24:43 +10:00
pnv_core.c ppc/pnv: Improve pervasive topology calculation for big-core 2024-03-13 02:47:04 +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 loss of LPC SERIRQ interrupts 2024-07-26 09:21:06 +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/ppc: Avoid using Monitor in pnv_psi_pic_print_info() 2024-06-19 12:40:49 +02:00
pnv_sbe.c bulk: Remove pointless QOM casts 2023-06-05 20:48:34 +02:00
pnv_xscom.c target/ppc: Prefer fast cpu_env() over slower CPU QOM cast macro 2024-03-12 12:04:24 +01:00
pnv.c ppc/pnv: Update Power10's cfam id to use Power10 DD2 2024-07-26 09:21:06 +10:00
ppc4xx_devs.c ppc4xx_sdram: Move ppc4xx_sdram_banks() to ppc4xx_sdram.c 2022-10-28 13:15:23 -03:00
ppc4xx_sdram.c *: Add missing includes of qemu/error-report.h 2023-03-22 15:06:57 +00:00
ppc405_boards.c hw/ppc: Deprecate 'ref405ep' machine and 405 CPUs 2024-05-09 00:07:21 +02:00
ppc405_uc.c Drop duplicate #include 2023-02-08 07:28:05 +01:00
ppc405.h ppc4xx_sdram: QOM'ify 2022-10-17 16:15:09 -03:00
ppc440_bamboo.c exec/cpu: Extract page-protection definitions to page-protection.h 2024-05-06 11:17:15 +02: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
ppc440.h ppc440: Remove ppc460ex_pcie_init legacy init function 2023-07-07 04:47:49 -03:00
ppc_booke.c Use g_new() & friends where that makes obvious sense 2022-03-21 15:44:44 +01:00
ppc.c spapr: nested: Introduce H_GUEST_RUN_VCPU hcall. 2024-03-13 02:47:04 +10:00
ppce500_spin.c target/ppc: Prefer fast cpu_env() over slower CPU QOM cast macro 2024-03-12 12:04:24 +01:00
prep_systemio.c hw/ppc: Constify VMState 2023-12-30 07:38:06 +11:00
prep.c hw/ppc/prep: Realize ISA bridge before accessing it 2024-02-15 16:58:46 +01:00
rs6000_mc.c hw: Simplify memory_region_init_ram() calls 2024-01-05 16:20:15 +01:00
sam460ex.c exec/cpu: Extract page-protection definitions to page-protection.h 2024-05-06 11:17:15 +02:00
spapr_caps.c spapr: Migrate ail-mode-3 spapr cap 2024-07-26 09:21:06 +10:00
spapr_cpu_core.c ppc: Drop support for POWER9 and POWER10 DD1 chips 2024-03-13 02:47:04 +10:00
spapr_drc.c hw/ppc: Constify VMState 2023-12-30 07:38:06 +11:00
spapr_events.c qemu/main-loop: rename qemu_cond_wait_iothread() to qemu_cond_wait_bql() 2024-01-08 10:45:43 -05: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/ppc: Constify VMState 2023-12-30 07:38:06 +11: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: use bitwise NOT operator for flags check 2024-03-30 18:31:38 +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_vfio.c hw/ppc/Kconfig: Imply VFIO_PCI 2023-12-19 19:03:38 +01:00
spapr_pci.c hw/ppc/spapr_pci: Do not reject VFs created after a PF 2024-07-03 18:14:07 -04:00
spapr_rng.c system/cpus: rename qemu_mutex_lock_iothread() to bql_lock() 2024-01-08 10:45:43 -05:00
spapr_rtas_ddw.c spapr/ddw: Implement 64bit query extension 2022-07-06 10:22:37 -03:00
spapr_rtas.c ppc: qtest already exports qtest_rtas_call() 2023-11-07 15:49:41 -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 hw/ppc/spapr: Rename 'softmmu' -> 'vhyp_mmu' 2024-02-23 23:24:42 +10:00
spapr_vio.c hw/ppc: Constify VMState 2023-12-30 07:38:06 +11:00
spapr_vof.c spapr: Free stdout path 2024-07-26 09:21:06 +10:00
spapr.c spapr: Migrate ail-mode-3 spapr cap 2024-07-26 09:21:06 +10:00
trace-events ppc/pnv: Add POWER9/10 chiptod model 2024-02-23 23:24:43 +10:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
virtex_ml507.c exec/cpu: Extract page-protection definitions to page-protection.h 2024-05-06 11:17:15 +02:00
vof.c ppc/vof: Fix unaligned FDT property access 2024-07-26 09:21:06 +10:00