[Bug 285993] nvme device breakage in 14.2 STABLE n270867-25df691800f0
Date: Fri, 18 Apr 2025 18:40:24 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=285993 --- Comment #22 from John Baldwin <jhb@FreeBSD.org> --- Hmm, so two things stand out to me: 1) We were able to clear the PFD bit (0x02): pcib10: initial SLOT_STA 0x15a pcib10: cleared SLOT_STA 0x40 yet the device set it again later: pcib10: Power Fault Detected pcib10: (3) PCIEM_SLOT_STA_PFD pcib10: (3) PCIEM_SLOT_STA_PFD pcib10: card not inserted It was also set for pcib11 initially: pcib11: initial SLOT_STA 0x12 pcib11: cleared SLOT_STA 0 2) The slot capabilities register (the one read at offset 0xa4) does not include support for a power controller: #define PCIEM_SLOT_CAP_PCP 0x00000002 is not set in 0x02d80078. Without a power controller present, there shouldn't be power fault events by my reading of the PCI-e spec. That suggests that this might fix your system: diff --git a/sys/dev/pci/pci_pci.c b/sys/dev/pci/pci_pci.c index 5e71a376604b..10de719e020d 100644 --- a/sys/dev/pci/pci_pci.c +++ b/sys/dev/pci/pci_pci.c @@ -930,7 +930,8 @@ pcib_hotplug_inserted(struct pcib_softc *sc) return (false); /* A power fault implicitly turns off power to the slot. */ - if (sc->pcie_slot_sta & PCIEM_SLOT_STA_PFD) + if (sc->pcie_slot_cap & PCIEM_SLOT_CAP_PCP && + sc->pcie_slot_sta & PCIEM_SLOT_STA_PFD) return (false); /* If the MRL is disengaged, the slot is powered off. */ -- You are receiving this mail because: You are the assignee for the bug.