[Skiboot] [PATCH 0/6] Fix Lost NVMe adapter behind PMC PCIe Switch

Gavin Shan gwshan at linux.vnet.ibm.com
Thu Mar 30 10:05:25 AEDT 2017

This series fixes the issue reported by Mark E Schreiter: NVMe adapters
behind PMC 8546 PCIe switch are lost. After some debugging together with
Chad J. Larson, the root causes are identified. First of all, the presence
bit is lost on the downstream port and PCI core doesn't probe the adapter
behind the downstream port. PATCH[3/6] fixes it by overriding presence bit
with PCIe linkup bit. Also, the ECRC functionality has to be disabled when
PMC 8546 PCIe switch is connected to PHB direct slot or PLX switch downstream
port. Otherwise, the Samsung NVMe adapter is lost. PATCH[4,5/6] fix the issue
by disable ECRC on root port when PMC 8546 PCIe switch is found. It's enabled
without the particular switch part or it's hot removed from the system. PATCH[6]
always enables ECRC on endpoints since we tune it on root port properly.

PATCH[1,2/6] are cleanup to avoid locating AER capability position if possible,
to save several CPU cycles and make the code consistent.

Gavin Shan (6):
  hw/phb3: Locate AER capability position if necessary
  hw/phb4: Locate AER capability position if necessary
  core/pci: Fix lost NVMe adapter behind PMC 8546 switch
  core/pci: Add phb->ops->device_remove
  hw/phb3: Adjust ECRC on root port dynamically
  hw/phb3: Enable ECRC on endpoints

 core/pci.c     |  31 +++++++++++++---
 hw/p7ioc-phb.c |   1 +
 hw/phb3.c      | 114 +++++++++++++++++++++++++++++++++++++--------------------
 hw/phb4.c      |  16 +++++---
 include/pci.h  |   1 +
 include/phb3.h |   1 +
 6 files changed, 112 insertions(+), 52 deletions(-)


More information about the Skiboot mailing list