aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hw/phb4.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/hw/phb4.c b/hw/phb4.c
index 16304d5..48c591f 100644
--- a/hw/phb4.c
+++ b/hw/phb4.c
@@ -2167,7 +2167,16 @@ static int64_t phb4_retry_state(struct pci_slot *slot)
struct phb4 *p = phb_to_phb4(slot->phb);
if (!slot->link_retries--) {
- PHBERR(p, "Link detected but won't train\n");
+ switch (slot->state) {
+ case PHB4_SLOT_LINK_WAIT_ELECTRICAL:
+ PHBERR(p, "Presence detected but no electrical link\n");
+ break;
+ case PHB4_SLOT_LINK_WAIT:
+ PHBERR(p, "Electrical link detected but won't train\n");
+ break;
+ default:
+ PHBERR(p, "Unknown link issue\n");
+ }
return OPAL_HARDWARE;
}