HomeFreeBSD

MFC 250418,252166:
rS252317Unpublished

Unpublished Commit ยท Learn More

No further details are available.

Description

MFC 250418,252166:
Revision 233677 broke certain machines. Specifically, if the firmware/BIOS
assigned conflicting ranges to BARs then leaving the BARs alone could
result in one device stealing mmio accesses intended to go to a second
device. Prior to 233677 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
rS252316: IFC @ r252288
Branches
Unknown
Tags
Unknown

Event Timeline