qemu/hw/ppc
Glenn Miles 6f86885a74 ppc/pnv: Wire up pca9552 GPIO pins for PCIe hotplug power control
For power10-rainier, a pca9552 device is used for PCIe slot hotplug
power control by the Power Hypervisor code.  The code expects that
some time after it enables power to a PCIe slot by asserting one of
the pca9552 GPIO pins 0-4, it should see a "power good" signal asserted
on one of pca9552 GPIO pins 5-9.

To simulate this behavior, we simply connect the GPIO outputs for
pins 0-4 to the GPIO inputs for pins 5-9.

Each PCIe slot is assigned 3 GPIO pins on the pca9552 device, for
control of up to 5 PCIe slots.  The per-slot signal names are:

   SLOTx_EN.......PHYP uses this as an output to enable
                  slot power.  We connect this to the
                  SLOTx_PG pin to simulate a PGOOD signal.
   SLOTx_PG.......PHYP uses this as in input to detect
                  PGOOD for the slot.  For our purposes
                  we just connect this to the SLOTx_EN
                  output.
   SLOTx_Control..PHYP uses this as an output to prevent
                  a race condition in the real hotplug
                  circuitry, but we can ignore this output
                  for simulation.

Reviewed-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Glenn Miles <milesg@linux.vnet.ibm.com>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
2024-02-23 23:24:42 +10:00
..
amigaone.c ppc/amigaone: Allow running AmigaOS without firmware image 2023-11-30 22:13:00 +10:00
e500-ccsr.h
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
fw_cfg.c
Kconfig ppc/pnv: Add pca9552 to powernv10-rainier for PCIe hotplug power control 2024-02-23 23:24:42 +10:00
mac_newworld.c hw/ppc: use pci_init_nic_devices() 2024-02-02 16:23:47 +00:00
mac_oldworld.c hw/ppc: use pci_init_nic_devices() 2024-02-02 16:23:47 +00:00
meson.build hw/ppc/spapr: Rename 'softmmu' -> 'vhyp_mmu' 2024-02-23 23:24:42 +10:00
mpc8544_guts.c
mpc8544ds.c hw/ppc: Use MachineClass->default_nic in the ppc machines 2023-05-22 09:44:22 +02:00
pef.c migration: simplify blockers 2023-10-20 08:51:41 +02:00
pegasos2.c hw/ppc/pegasos2: Let pegasos2 machine configure SuperI/O functions 2024-02-14 06:09:32 -05:00
pnv_bmc.c hw/ppc/pnv_bmc: Use qdev_new() instead of QOM API 2024-02-22 12:47:40 +01:00
pnv_core.c hw/ppc: Reset timebase facilities on machine reset 2023-09-06 11:19:33 +02: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: Fix PNV I2C invalid status after reset 2023-11-21 08:39:58 +01:00
pnv_lpc.c bulk: Remove pointless QOM casts 2023-06-05 20:48:34 +02: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 pnv/psi: Clean up local variable shadowing 2023-09-29 10:07:17 +02:00
pnv_sbe.c bulk: Remove pointless QOM casts 2023-06-05 20:48:34 +02:00
pnv_xscom.c hw/ppc/pnv_xscom: Do not use SysBus API to map local MMIO region 2023-10-19 23:13:28 +02:00
pnv.c ppc/pnv: Wire up pca9552 GPIO pins for PCIe hotplug power control 2024-02-23 23:24:42 +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 ppc4xx_sdram: Rename functions to prevent name clashes 2022-10-17 16:15:09 -03: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 hw/ppc/ppc4xx_pci: Extract PCI host definitions to hw/pci-host/ppc4xx.h 2024-02-22 12:47:40 +01: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
ppc.c qemu/main-loop: rename QEMU_IOTHREAD_LOCK_GUARD to BQL_LOCK_GUARD 2024-01-08 10:45:43 -05:00
ppce500_spin.c target/ppc: Restrict KVM-specific fields from ArchCPU 2023-06-28 14:27:59 +02: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 hw/ppc/ppc4xx_pci: Extract PCI host definitions to hw/pci-host/ppc4xx.h 2024-02-22 12:47:40 +01:00
spapr_caps.c hw/ppc: Constify VMState 2023-12-30 07:38:06 +11:00
spapr_cpu_core.c hw/ppc/spapr_cpu: Use qdev_is_realized() instead of QOM API 2024-02-22 12:47:40 +01: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 hw/ppc/spapr_hcall: Rename {softmmu -> vhyp_mmu}_resize_hpt_pr 2024-02-23 23:24:42 +10:00
spapr_iommu.c hw/ppc: Constify VMState 2023-12-30 07:38:06 +11:00
spapr_irq.c ppc/spapr: Introduce SPAPR_IRQ_NR_IPIS to refer IRQ range for CPU IPIs. 2024-02-23 23:24:42 +10:00
spapr_nested.c ppc/spapr: Move spapr nested HV to a new file 2023-06-25 22:41:30 +02: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: Constify VMState 2023-12-30 07:38:06 +11: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 Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
spapr.c spapr: Tag pseries-2.1 - 2.11 machines as deprecated 2024-02-23 23:24:42 +10:00
trace-events hw/ppc/ppc440_pcix: Move ppc440_pcix.c to hw/pci-host/ 2024-02-22 12:47:40 +01:00
trace.h
virtex_ml507.c ppc/{bamboo, virtex_ml507}: Remove useless dependency on ppc405.h header 2023-10-21 15:00:22 +03:00
vof.c ppc/vof: Fix missed fields in VOF cleanup 2023-09-06 11:19:33 +02:00