Updating Firmware Using ethtool/devlink and .mfa2 File

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

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

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

    Copy
    Copied!
                

    # mlxarchive -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!
                

    # mst start # mst status -v MST modules: ------------ MST PCI module loaded MST PCI configuration module loaded PCI devices: ------------ DEVICE_TYPE MST PCI RDMA NET NUMA ConnectX5(rev:0) /dev/mst/mt4119_pciconf0.1 05:00.1 mlx5_3 net-p5p2 0 ConnectX5(rev:0) /dev/mst/mt4119_pciconf0 05:00.0 mlx5_2 net-p5p1 0 ... #   # flint -d /dev/mst/mt4119_pciconf0 q Image type: FS4FW Version: 16.25.1042 FW Version(Running): 16.25.1020 FW Release Date: 30.4.2019 Product Version: 16.25.1020 Rom Info: type=UEFI version=14.18.19 cpu=AMD64 type=PXE version=3.5.701 cpu=AMD64 Description: UID GuidsNumber Base GUID: ec0d9a030048af2a 4 Base MAC: ec0d9a48af2a 4 Image VSD: N/A Device VSD: N/A PSID: MT_0000000080 Security Attributes: N/A

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

    Copy
    Copied!
                

    # mlxfwreset -d /dev/mst/mt4119_pciconf0 -y r

  6. Validate the firmware update by a query.
    Using mst:

    Copy
    Copied!
                

    # mst start   # flint -d /dev/mst/mt4119_pciconf0 q Image type: FS4 FW Version: 16.25.1042 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 GuidsNumber Base GUID: ec0d9a030048af2a 4 Base MAC: ec0d9a48af2a 4 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 May 23, 2023.