[Howto] update the firmware of HP Enterprise Mellanox ConnectX-2 EN NIC (671798-001)

posted in: computer | 0

Disclaimer: All liability is excluded. Be careful, you can brick your card.


Important: you can’t use the firmware from HP 516937-B21 for the 671798-001, because all downloadable firmwares are for the 2-Port Version or for the wrong Board-Revision. So it won’t work without issues. The HP 671798-001 is an Mellanox MNPA19-XTR (=1 SFP+ Port, PCIe Gen2 x8, MT26448 Chip Rev. B0), so use this firmware.


#download and install the programming tool mft-tools from:

#load the kernel-modules, which are included in mft-tools (mst_pci, mst_pciconf)
mst start

#check, which cards were found (e.g. /dev/mst/mt26448_pci_cr0)
mst status

#query detailled info about your card
flint -d /dev/mst/mt26448_pci_cr0 query

#backup the old firmware
flint -d /dev/mst/mt26448_pci_cr0 ri old-firmware.bak

#backup the old rom
flint -d /dev/mst/mt26448_pci_cr0 rrom old-rom.bak

#download the new firmware from mellanox website (Mellanox ConnectX-2 EN MNPA19-XTR)
wget http://www.mellanox.com/downloads/firmware/fw-ConnectX2-rel-2_9_1200-MNPA19_A1-A3-FlexBoot-3.3.400.bin.zip

#unzip the new firmware
unzip fw-ConnectX2-rel-2_9_1200-MNPA19_A1-A3-FlexBoot-3.3.400.bin.zip

#flash the new firmware (you may note your old PSID, because it will be changed to the Mellanox one)
flint -d /dev/mst/mt26448_pci_cr0 --allow_psid_change -i fw-ConnectX2-rel-2_9_1200-MNPA19_A1-A3-FlexBoot-3.3.400.bin burn

#reboot or reload the mellanox kernel modules


If you want to flash a customized firmware use the following commands:

#get the firmware ini-files from mellanox-website

#backup your old configuration
flint -d /dev/mst/mt26448_pci_cr0 dc old-config.ini

#now you can customize the mellanox ini-file or your old-config.ini

#create the custom firmware binary with your customized ini-file
mlxburn -conf custom-config.ini -fw fw-ConnectX2-rel.mlx -wrimage new-firmware.img

#flash the new customized firmware
flint -d /dev/mst/mt26448_pci_cr0 --allow_psid_change -i new-firmware.img burn

#reboot or reload the mellanox kernel modules