mstflint - 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 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:
Run the mstarchive tool to generate the .mfa2 file (the following example assumes MFA2 v1.1.1).
# mstarchive -v
1.1.1--bins-dir <source binaries directory> --out-file /lib/firmware/<file_name>.mfa2Obtain the interface name of the adapter for which you wish to update firmware. For example, you can use ifconfig -a.
# ifconfig -a ... p5p1: flags=
4099<UP,BROADCAST,MULTICAST> mtu1500ether ec:0d:9a:48:af:2a txqueuelen1000(Ethernet) RX packets0bytes0(0.0B) RX errors0dropped0overruns0frame0TX packets0bytes0(0.0B) TX errors0dropped0overruns0carrier0collisions0p5p2: flags=4099<UP,BROADCAST,MULTICAST> mtu1500ether ec:0d:9a:48:af:2b txqueuelen1000(Ethernet) RX packets0bytes0(0.0B) RX errors0dropped0overruns0frame0TX packets0bytes0(0.0B) TX errors0dropped0overruns0carrier0collisions0...Burn the firmware using the .mfa2 image with ethtool/devlink. Please use the .mfa2 file path relative to /lib/firmware.
ethtool command:
# ethtool -f <
interfacename> <file_name>.mfa2devlink command:
$ devlink dev flash <dev> file <file_name>.mfa2
Query the adapter to verify that the new firmware version has been loaded following.
# lspci -n | grep 15b3
04:00.00207: 15b3:101704:00.10207: 15b3:1017# mstflint -d04:00.0q Image type: FS4 FW Version:16.26.0292FW Version(Running):16.25.1020FW Release Date:9.9.2019Product Version:16.26.0292Rom Info: type=UEFI version=14.19.13cpu=AMD64 type=PXE version=3.5.802cpu=AMD64 Description: UID GuidsNumber Base GUID: 248a0703009e950c4Base MAC: 248a079e950c4Image VSD: N/A Device VSD: N/A PSID: MT_0000000008 Security Attributes: N/AFor the firmware update to take effect, you need to either reboot the server or run:
# mstfwreset -d
04:00.0-y rValidate the firmware update by a query.
Using mst:
# mstflint -d
04:00.0q Image type: Image type: FS4 FW Version:16.26.0292FW Release Date:15.5.2019Product Version:16.25.1042Rom Info: type=UEFI version=14.18.19cpu=AMD64 type=PXE version=3.5.701cpu=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:
$ devlink dev info <dev> pci/
0000:05:00.0: driver mlx5_core versions: fixed: fw.psid MT_0000000080 running: fw.version16.23.1000stored: fw.version16.25.1042