[Skiboot] [PATCH] phb3/4: Don't perform a hot reset at boot
Russell Currey
ruscur at russell.cc
Tue Sep 27 10:51:52 AEST 2016
Recent releases of skiboot contain a regression, causing certain adapters
behind certain switches to timeout waiting for links to come up. This is
due to a hot reset at boot time:
a) having to permeate down through all devices and
b) being potentially unsafe given the links aren't up yet.
Avoid the hot reset at boot in phb3 and phb4.
Cc: stable # 5.3.x
Signed-off-by: Russell Currey <ruscur at russell.cc>
---
hw/phb3.c | 2 +-
hw/phb4.c | 10 +---------
2 files changed, 2 insertions(+), 10 deletions(-)
diff --git a/hw/phb3.c b/hw/phb3.c
index d0b5010..b8e3439 100644
--- a/hw/phb3.c
+++ b/hw/phb3.c
@@ -2240,7 +2240,7 @@ static int64_t phb3_pfreset(struct pci_slot *slot)
/* CAPP FPGA requires 1s to flash before polling link */
return pci_slot_set_sm_timeout(slot, secs_to_tb(1));
case PHB3_SLOT_PFRESET_DEASSERT_DELAY:
- pci_slot_set_state(slot, PHB3_SLOT_HRESET_START);
+ pci_slot_set_state(slot, PHB3_SLOT_HRESET_DELAY);
return slot->ops.hreset(slot);
default:
PHBERR(p, "Unexpected slot state %08x\n", slot->state);
diff --git a/hw/phb4.c b/hw/phb4.c
index 385ce8c..746bfb7 100644
--- a/hw/phb4.c
+++ b/hw/phb4.c
@@ -1951,16 +1951,8 @@ static int64_t phb4_pfreset(struct pci_slot *slot)
/* CAPP FPGA requires 1s to flash before polling link */
return pci_slot_set_sm_timeout(slot, secs_to_tb(1));
case PHB4_SLOT_PFRESET_DEASSERT_DELAY:
-#if 0 /* PHB3 does a Hreset here. It's unnecessary I think and it's
- * causing problems with the simulator croc model so don't do
- * it until I figure out Gavin's reasons
- */
- pci_slot_set_state(slot, PHB4_SLOT_HRESET_START);
+ pci_slot_set_state(slot, PHB4_SLOT_HRESET_DELAY);
return slot->ops.hreset(slot);
-#else
- pci_slot_set_state(slot, PHB4_SLOT_LINK_START);
- return slot->ops.poll_link(slot);
-#endif
default:
PHBERR(p, "Unexpected slot state %08x\n", slot->state);
}
--
2.10.0
More information about the Skiboot
mailing list