Like the others, Mellanox network adapters should be updated to the latest firmware to solve issues. When you download the Mellanox firmware release note, you can see how much reported issues have been solved (usually, a lot :)). Mellanox provides tools to update and manage the firmware from Linux, Freebsd, VMware ESXi, Windows and Windows PE. Thanks to this set of tools, you can update Mellanox network adapter firmware from a powered-up operating system. In this topic, we will see how to manage the firmware from Windows Server 2016 Datacenter Core and from VMware ESXi 6.5u1.
This topic shows you how to update Mellanox network adapter from Mellanox. If you have a branded Mellanox network adapter (Dell, IBM etc.), please check the related documentation from the vendor.
Requirements
First, you need to identify which Mellanox network adapter is installed on your system. You can retrieve this information from a sticker on the network adapter or from invoice. In my lab, I have two Mellanox model:
- ConnectX3-Pro (MCX312B-XCCT)
- ConnectX3 (MCX312A-XCBT)
N.B: If you can’t get the model of the network adapter, run mlxfwmanager when the Mellanox tools will be deployed. Then retrieve the PSID information and make a search on Google.
Once you have identified the network adapter model, you can download the firmware from Mellanox. Usually I type in Google “Firmware MCX312B-XCCT” for example. Then I can get this webpage from Mellanox and I can download and unzip the firmware.
You need also the Mellanox toolset called Mellanox Firmware Tools (MST). You can get the documentation from this location. If you need to update firmware from VMware ESXi 6.5u1, download the two VIB files as below:
If you plan to update firmware from Windows Server, download the following executable:
Update firmware from VMware ESXi
First, we need to install MST on ESXi. A reboot is required. I recommend you to place your server in maintenance mode. From vCenter or ESXi web interface, upload in a datastore the firmware and VIB files.
Then open a SSH session and navigate to /vmfs/volumes/<your datastore>. Copy the path with the datastore ID as below:
Then install both VIB files with the command esxcli software vib install -v <path to vib file>:
Then reboot the server. Once you have rebooted the server, you can navigate to /opt/mellanox/bin. The command /opt/Mellanox/bin/mst status gives you the installed Mellanox device.
Then you can flash your device by specifying /opt/Mellanox/bin/flint -d <device> -I <path to firmware file> burn
After the firmware is updated on Mellanox network adapter, you need to reboot your server again. If you open Flexboot (CtRL+B at startup), you can see the new version. You can also use /opt/Mellanox/bin/mlxfwmanager to get this information.
Update firmware from Windows Server
I recommend you to place your node in pause state because a reboot is required. On the MST web page, download the Windows executable as indicated in the following screenshot:
Copy the executable on the server and run the installation. Once MST is installed, navigate to C:\Program Files\Mellanox\WinMFT. You can run mst status to get information about installed Mellanox network adapter:
Then you can run flint -d <Device> -I <path to firmware> burn
As you can see, after the firmware is updated, the new version is not active (you can use mlxfwmanager.exe to get these information). You need to reboot the server in order to use the new firmware version.
After a reboot, you can see that the new version is the only one.
Force to change the PSID to remove vendor custom firmware
There is a chance to brick your network adapter! I’m not responsible in case of hardware degradation.
Recently, I bought on eBay a ConnectX3 from Mellanox with a IBM PSID. I wanted to flash the firmware with a Mellanox image. To make this change, I run /opt/Mellanox/bin/flint -d <device> -i <path to firmware> -allow_psid_change burn. Then flint asked me if I really want to change the PSID because it is not recommended.
After a reboot, I checked from /opt/Mellanox/bin/mlxfwmanager and the PSID was changed.