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:
- Run the mlxarchive tool to generate the .mfa2 file (the following example assumes MFA2 v1.1.1). - # mlxarchive -v - 1.1.- 1--bins-dir <source binaries directory> --out-file /lib/firmware/<file_name>.mfa2
- Obtain 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> mtu- 1500ether ec:0d:9a:- 48:af:2a txqueuelen- 1000(Ethernet) RX packets- 0bytes- 0(- 0.0B) RX errors- 0dropped- 0overruns- 0frame- 0TX packets- 0bytes- 0(- 0.0B) TX errors- 0dropped- 0overruns- 0carrier- 0collisions- 0p5p2: flags=- 4099<UP,BROADCAST,MULTICAST> mtu- 1500ether ec:0d:9a:- 48:af:2b txqueuelen- 1000(Ethernet) RX packets- 0bytes- 0(- 0.0B) RX errors- 0dropped- 0overruns- 0frame- 0TX packets- 0bytes- 0(- 0.0B) TX errors- 0dropped- 0overruns- 0carrier- 0collisions- 0...
- 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>.mfa2- devlink command: - $ devlink dev flash <dev> file <file_name>.mfa2 
- Query the adapter to verify that the new firmware version has been loaded following. - # 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.1mlx5_3 net-p5p2- 0ConnectX5(rev:- 0) /dev/mst/mt4119_pciconf0- 05:- 00.0mlx5_2 net-p5p1- 0... # # flint -d /dev/mst/mt4119_pciconf0 q Image type: FS4FW Version:- 16.25.- 1042FW Version(Running):- 16.25.- 1020FW Release Date:- 30.4.- 2019Product Version:- 16.25.- 1020Rom Info: type=UEFI version=- 14.18.- 19cpu=AMD64 type=PXE version=- 3.5.- 701cpu=AMD64 Description: UID GuidsNumber Base GUID: ec0d9a030048af2a- 4Base MAC: ec0d9a48af2a- 4Image VSD: N/A Device VSD: N/A PSID: MT_0000000080 Security Attributes: N/A
- For the firmware update to take effect, you need to either reboot the server or run: - # mlxfwreset -d /dev/mst/mt4119_pciconf0 -y r 
- Validate the firmware update by a query. - Using mst: - # mst start # flint -d /dev/mst/mt4119_pciconf0 q Image type: FS4 FW Version: - 16.25.- 1042FW 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 GuidsNumber Base GUID: ec0d9a030048af2a- 4Base MAC: ec0d9a48af2a- 4Image 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.version- 16.23.- 1000stored: fw.version- 16.25.- 1042