kernel - Enable busmaster on bridges (BIOS might not)

Operating Systems / DragonFlyBSD - Matthew Dillon [apollo.backplane.com] - 1 August 2019 17:51 EDT

- BIOSes do not always enable busmaster on bridges. Make sure busmaster is enabled on all bridges.

- Reproduced with an Asus X370-PRO (AM4) motherboard which was not enabling busmaster on the bridges connecting either the motherboard IGB or the quad IGB card installed in a slot, but only when booting EFI. When booting legacy the BIOS did enable busmaster.

- The characteristics of the failure is that NICs fail to physically transmit packets and received packets cannot be DMA'd into the rings, causing the packet error counter to increment once the receive hardware FIFO is full.

- Fixes EFI booting on some motherboards.

21cff6dd26 kernel - Enable busmaster on bridges (BIOS might not)
sys/bus/pci/pci_pci.c | 7 +++++++
1 file changed, 7 insertions(+)

Upstream: gitweb.dragonflybsd.org


  • Share