Mellanox ConnectX-5 Firmware RequirementsΒΆ

Mellanox ConnectX-5 network interface cards (mlx5) in the MT27800 family are currently shipping with firmware revision 16.26.1040 which is not compatible with TNSR.

The incompatible firmware can be identified by errors in the log (e.g. sudo vppctl show errors), such as:

net_mlx5: probe of PCI device [PCI ID] aborted after encountering an error: Operation not supported

Or:

Interface WAN error -12: Unknown error -12
net_mlx5: Failed to query QP using DevX
net_mlx5: Fail to query port 0 Tx queue 0 QP TIS transport domain
net_mlx5: port 0 Tx queue allocation failed: Cannot allocate memory
Device with port_id=0 already stopped

Firmware version 16.24.1000 is compatible with TNSR, and can be manually downgraded using the following procedure.

First, identify the first PCI ID of the card in question. This can be found by looking in the boot logs, the output of a utility such as lspci, or similar methods. The ID will take the form of xx:yy.z, for example 65:00.0. The ID will be used in the following set of commands.

Next, download and decompress the appropriate firmware:

$ curl -LO http://www.mellanox.com/downloads/firmware/fw-ConnectX5-rel-16_24_1000-MCX516A-CCA_Ax-UEFI-14.17.11-FlexBoot-3.5.603.bin.zip
$ unzip fw-ConnectX5-rel-16_24_1000-MCX516A-CCA_Ax-UEFI-14.17.11-FlexBoot-3.5.603.bin.zip

Now install the Mellanox firmware tool and perform the firmware downgrade:

$ sudo apt install mstflint
$ sudo mstconfig q > mst.log
$ sudo mstfwmanager -d <PCI ID> -u -f -i fw-ConnectX5-rel-16_24_1000-MCX516A-CCA_Ax-UEFI-14.17.11-FlexBoot-3.5.603.bin

Replace <PCI ID> in the last command with the first PCI ID of the card.

With the appropriate firmware loaded on the card, it will no longer produce errors and it will be usable by TNSR.

Warning

Reboot after performing the firmware downgrade to ensure the card is fully reinitialized with the appropriate firmware.