[Skiboot] [PATCH 00/16] PCI Surprise Hotplug Support

Gavin Shan gwshan at linux.vnet.ibm.com
Fri Sep 16 15:05:07 AEST 2016


This series of patches supports PCI surprise hotplug. The functionality
relies on PCI slot presence and link state change reporting event. When
surprise hotplug has been claimed on the slot through device-tree property
"ibm,slot-surprise-pluggable", we have to keep slot's power supply always
on. Otherwise, the required events won't be raised properly. The code changes
were tested on Firestone+{Sumsung NVMe Adapter, Memblaze NVMe Adapter} when
the PCI adapters seat behind PLX or PMC PCIe switch downstream port.

PATCH[1-4] supports dynamic PCIe slots on openPower platforms. It's requested
from customer who inserts a PMC PCIe switch behind PHB direct slot in order to
evaluate its functionality. Those patches populate PCIe slots on the PMC PCIe
switch downstream ports and their labels ("S<domain><bus_num>") are populated
dynamically.

PATCH[5-12] are preparation for PCI surprise hotplug support by fixing couple
of issues: Use the cached power state; Find the associated PCI slot before
applying quirk; Reserve PCI buses on the root port when there is nothing
connected. 

PATCH[13-15] claims PCI surprise hotplug capability on the PCI slot when
it's supported in PCI slot capability (in PCIe capability) or link state
change reporting is claimed. The surprise link down event on the PCI slot
shouldn't cause a EEH error when the PCI slot supports surprise hotplug.

PATCH[16] fixes a bug. We have to disable ECRC functionality when BCM57800
seats behind PMC PCIe switch. Otherwise, the adapter cannot be probed by
PCI subsystem successfully.

Gavin Shan (16):
  platforms/astbmc: Fix coding style for slot_table_get_slot_info()
  platforms/astbmc: ibm,slot-label not depend on ibm,slot-location-code
  platforms/astbmc: Introduce helper function slot_init_info()
  platforms/astbmc: Support dynamic PCI slot
  core/pci: Output CRS retry times
  core/pci: Fix PCIe slot power state
  core/pci: Return error on invalid power state transition
  core/pci: Cache power state on slot without power control
  core/pci: Return slot cached power state
  core/pci: Update PCI topology after power change
  core/pci: Get PCI slot before applying quirk
  core/pci: Reserve PCI buses for RC's slot
  core/pci: Claim surprise hotplug capability
  hw/phb3: Disable surprise link down event on PCI slots
  hw/phb3: Override root slot's prepare_link_change() with PHB's
  hw/phb3: Disable ECRC on Broadcom adapter behind PMC switch

 core/pci-opal.c                 | 20 ++++++---
 core/pci-slot.c                 | 26 +++++++----
 core/pci.c                      | 47 +++++++++++++-------
 core/pcie-slot.c                | 79 ++++++++++++++++++++++++++-------
 hw/phb3.c                       | 88 +++++++++++++++++++++++++++++++-----
 include/pci-slot.h              |  1 +
 platforms/astbmc/slots.c        | 98 ++++++++++++++++++++++++++++++++++-------
 platforms/ibm-fsp/firenze-pci.c | 10 +++++
 8 files changed, 296 insertions(+), 73 deletions(-)

-- 
2.1.0



More information about the Skiboot mailing list