mstflint - Updating Firmware Using ethtool/devlink and .mfa2 File

NVIDIA Firmware Tools (MFT) Documentation v4.26.1 LTS

In order to flash the firmware on the device using ethtool, you need to prepare a .mfa2 firmware file using the mstarchive tool - see mstarchive – Binary Files Compression Tool. Note that mstarchive requires installing mstflint with --enable-fw-mgr option.

To perform firmware upgrade using ethtool/devlink, follow the steps below:

Procedure_Heading_Icon-version-1-modificationdate-1707133798336-api-v2.PNG

  1. Run the mstarchive tool to generate the .mfa2 file (the following example assumes MFA2 v1.1.1).

    Copy
    Copied!
                

    # mstarchive -v 1.1.1 --bins-dir <source binaries directory> --out-file /lib/firmware/<file_name>.mfa2

  2. Obtain the interface name of the adapter for which you wish to update firmware. For example, you can use ifconfig -a.

    Copy
    Copied!
                

    # ifconfig -a ... p5p1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 ether ec:0d:9a:48:af:2a txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0   p5p2: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 ether ec:0d:9a:48:af:2b txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ...

  3. Burn the firmware using the .mfa2 image with ethtool/devlink. Please use the .mfa2 file path relative to /lib/firmware.

    ethtool command:

    Copy
    Copied!
                

    # ethtool -f <interface name> <file_name>.mfa2

    devlink command:

    Copy
    Copied!
                

    $ devlink dev flash <dev> file <file_name>.mfa2

  4. Query the adapter to verify that the new firmware version has been loaded following.

    Copy
    Copied!
                

    # lspci -n | grep 15b3   04:00.0 0207: 15b3:1017 04:00.1 0207: 15b3:1017     # mstflint -d 04:00.0 q Image type: FS4 FW Version: 16.26.0292 FW Version(Running): 16.25.1020 FW Release Date: 9.9.2019 Product Version: 16.26.0292 Rom Info: type=UEFI version=14.19.13 cpu=AMD64 type=PXE version=3.5.802 cpu=AMD64 Description: UID GuidsNumber Base GUID: 248a0703009e950c 4 Base MAC: 248a079e950c 4 Image VSD: N/A Device VSD: N/A PSID: MT_0000000008 Security Attributes: N/A

  5. For the firmware update to take effect, you need to either reboot the server or run:

    Copy
    Copied!
                

    # mstfwreset -d 04:00.0 -y r

  6. Validate the firmware update by a query.

    Using mst:

    Copy
    Copied!
                

    # mstflint -d 04:00.0 q Image type: Image type: FS4 FW Version: 16.26.0292 FW Release Date: 15.5.2019 Product Version: 16.25.1042 Rom Info: type=UEFI version=14.18.19  cpu=AMD64 type=PXE version=3.5.701 cpu=AMD64 Description: UID Base GUID: ec0d9a030048af2a Base MAC: ec0d9a48af2a Image VSD: N/A Device VSD: N/A PSID: MT_0000000080 Security Attributes: N/A #

    Using devlink:

    Copy
    Copied!
                

    $ devlink dev info <dev> pci/0000:05:00.0: driver mlx5_core versions: fixed: fw.psid MT_0000000080 running: fw.version 16.23.1000 stored: fw.version 16.25.1042

© Copyright 2023, NVIDIA. Last updated on Mar 21, 2024.