Firmware Programming

This section is intended for future firmware upgrades, and provides instructions for (1) installing firmware update tools (MFT), (2) downloading firmaware, and (3) updating adapter card firmware.

  1. Download the current MFT from www.mellanox.com > Products > Software > InfiniBand (Learn More) Firmware Tools.
    The tools package to download is "MFT_SW for FreeBSD" (tarball name is mft- X.X.X.tgz).

  2. Extract the tarball and run the installation script.

  1. Retrieve the device's PCI slot (i.e. pci0:x:0:0). Run:

    Copy
    Copied!
                

    #> mst status

  2. Verify your card's PSID.

    Copy
    Copied!
                

    #> flint -d pci0:<x>:0:0 q

  3. Download the desired firmware from the website at: https://www.mellanox.com/support/firmware/firmware-downloads

Updating Firmware Using flint

  1. Before burning a new firmware, make sure the modules are unloaded. To unload the modules, run:

    Copy
    Copied!
                

    #> kldunload mlx5en #> kldunload mlx5ib #> kldunload mlx5 #> kldstat | grep mlx5

  2. Unzip the firmware binary file.

  3. Burn the firmware on your server:

    Copy
    Copied!
                

    $flint -d pci0:<x>:0:0 -i <img.bin> b

  4. Reboot the server.

Updating Firmware Using mlx5tool

Warning

Please note that mlx5tool can only use images of MFA2 format.

  1. Upload the MFA2 firmware file to the device.

    Copy
    Copied!
                

    mlx5tool -d domain:bus:slot:func -f file.mfa2

  2. Perform a link-level firmware reset for the firmware update to take effect.

    Copy
    Copied!
                

    mlx5tool -d domain:bus:slot:func -z

where:

Argument

Description

-f

Flashes the firmware image file.mfa2 to the specified adapter. Image must be in MFA2 format and must contain a component suitable for the adapter hardware

-z

Initiate firmware reset

Updating Firmware Using Kernel Module

  1. Create a Makefile in sys/modules/mlx5mfa/Makefile directory structure as follows:

    Copy
    Copied!
                

    $ cat sys/modules/mlx5mfa/Makefile # $FreeBSD$ KMOD= mlx5fw_mfa FIRMWS= mlx5fw.mfa2:${KMOD} .include <bsd.kmod.mk>

  2. Place the MFA2 file in the same directory.

  3. Build and install the Kernel module.

  4. Enable auto-firmware update.

    Copy
    Copied!
                

    kenv hw.mlx5.auto_fw_update=1

    Warning

    Make sure to disable auto firmware update before rebooting/resetting the firmware.

If you have a VPI HCA, you will need to set the ports to ETH. This is done by using the mlxconfig tool (part of the MFT).

  1. If you have a card with two ports, run:

    Copy
    Copied!
                

    #> mlxconfig -d pci0:<x>:0:0 set LINK_TYPE_P1=2 (For the first port) #> mlxconfig -d pci0:<x>:0:0 set LINK_TYPE_P2=2 (For the second port)

  2. Reboot the server.

© Copyright 2023, NVIDIA. Last updated on May 24, 2023.