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: http://www.mellanox.com/page/management_tools #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 http://www.mellanox.com/page/custom_firmware_table #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