HomeFreeBSD

pcib: Ignore power fault detected if a power controller is not present

Description

pcib: Ignore power fault detected if a power controller is not present

At least some PCI-express bridges exposed by Intel Volume Management
Devices report bogus power faults in their slot status register. As a
workaround, ignore the power fault detected flag if the slot
capability register does not indicate support for a power controller.

While the PCI-e spec does not explicitly state that the PFD flag
should always be zero if a power controller is not present, parts of
the spec do seem to assume this. For example, the flag is included in
the "Power Controller Registers" register group in 6.7.2.4, and the
definition of the value for this flag seems to presume the presence of
a power controller:

If a Power Controller that supports power fault detection is
implemented, this bit is Set when the Power Controller detects a
power fault at this slot. Note that, depending on hardware
capability, it is possible that a power fault can be detected at
any time, independent of the Power Controller Control setting or
the occupancy of the slot. If power fault detection is not
supported, this bit must not be Set.

PR: 285993
Reported by: Jim Long <freebsd-bugzilla@umpquanet.com>
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D49949

(cherry picked from commit 4c8b9f40cda7dd6b2de547b288d712c85998ce11)

Details

Provenance
jhbAuthored on Apr 22 2025, 2:08 AM
Reviewer
imp
Differential Revision
D49949: pcib: Ignore power fault detected if a power controller is not present
Parents
rG7485e6a867ab: telnet: Prevent buffer overflow in the user prompt for SRA
Branches
Unknown
Tags
Unknown