HomeFreeBSD

Allocate BAR for ENA MSIx vector table

Description

Allocate BAR for ENA MSIx vector table

In the new ENA-based instances like c6gn, the vector table moved to a
new PCIe bar - BAR1. Previously it was always located on the BAR0, so
the resources were already allocated together with the registers.

As the FreeBSD isn't doing any resource allocation behind the scenes,
the driver is responsible to allocate them explicitly, before other
parts of the OS (like the PCI code allocating MSIx) will be able to
access them.

To determine dynamically BAR on which the MSIx vector table is present
the pci_msix_table_bar() is being used and the new BAR is allocated if
needed.

Submitted by: Michal Krawczyk <mk@semihalf.com>
Obtained from: Semihalf
Sponsored by: Amazon, Inc
MFC after: 3 days

Details

Provenance
mk_semihalf.comAuthored on Feb 18 2021, 9:00 AM
mwCommitted on Feb 18 2021, 12:54 PM
Parents
R10:e13e4fa6c4eb: fix Navdeeps LINT_NOINET error.
Branches
Unknown
Tags
Unknown