[Skiboot] [PATCH 7/8] astbmc/p8dnu: Enable PCI slot's power supply on PEX8718 in hot-add path

Gavin Shan gwshan at linux.vnet.ibm.com
Wed Jan 11 11:31:17 AEDT 2017

This issue is reported from superMicro's "p8dnu" platform. PEX8718
is connected to PHB direct slot. We create dynamic PCI slots for
its (2) downstream ports and all of them support surprise hotplug
capability. The problem is power supply lost on hot-remove and it
isn't turned on automatically on hot-add. It means the PCIe link
behind the slot isn't up and the PCI adapter behind the slot can't
be probed successfully.

This fixes the issue by forcing to turn on the power supply on
hardware when user (kernel) requests to do so, as we did for PEX9733.

Reported-by: Hank Chang <hankmax0000 at gmail.com>
Signed-off-by: Gavin Shan <gwhsan at linux.vnet.ibm.com>
Tested-by: Willie Liauw <williel at supermicro.com.tw>
 platforms/astbmc/slots.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/platforms/astbmc/slots.c b/platforms/astbmc/slots.c
index f28ad7d..8be7426 100644
--- a/platforms/astbmc/slots.c
+++ b/platforms/astbmc/slots.c
@@ -175,9 +175,11 @@ static void create_dynamic_slot(struct phb *phb, struct pci_device *pd)
 	 * isn't turned on automatically when inserting PCI adapter to
 	 * the slot at later point. We set a flag to the slot here, to
 	 * turn on the power supply in (suprise or managed) hot-add path.
+	 *
+	 * We have same issue with PEX8718 as above on "p8dnu" platform.
-	if (dt_node_is_compatible(dt_root, "supermicro,p8dnu") &&
-	    slot->pd && slot->pd->vdid == 0x973310b5)
+	if (dt_node_is_compatible(dt_root, "supermicro,p8dnu") && slot->pd &&
+	    (slot->pd->vdid == 0x973310b5 || slot->pd->vdid == 0x871810b5))
 		pci_slot_add_flags(slot, PCI_SLOT_FLAG_FORCE_POWERON);

More information about the Skiboot mailing list