HomeFreeBSD

MFC 233662,233677-233678,250418,252166:
rS252318Unpublished

Unpublished Commit ยท Learn More

No further details are available.

Description

MFC 233662,233677-233678,250418,252166:
If the firmware/BIOS assigns conflicting ranges to BARs then leaving the
BARs alone could result in one device stealing mmio accesses intended to go
to a second device. Previously the PCI bus driver attempted to handle this
case by clearing the BAR to 0 depending on BARs based at 0 not decoding (which
is not guaranteed to be true). Now when a conflicting BAR is detected the
following steps are taken:

  1. If hw.pci.realloc_bars (a new tunable) is enabled (default is disabled), then ignore the current BAR setting from the firmware and attempt to allocate a fresh resource range for the BAR.
  2. If 1) failed (or was disabled), disable decoding for the relevant BAR type (e.g. disable mem decoding for a memory BAR) and emit a warning if booting verbose.

Details

Provenance
jhbAuthored on
Parents
rS252317: MFC 250418,252166:
Branches
Unknown
Tags
Unknown

Event Timeline