Mellanox ETH

Upgrade firmwaru karty

Zjisteni part numberu a verze firmwaru u Mellanox karet. Potrebujeme mit nainstalovany balicek mstflint

# ethtool -i ens4f0np0
driver: mlx5_core
version: 5.5-1.0.3
firmware-version: 14.27.1016 (MT_2420110004)
expansion-rom-version:
bus-info: 0000:10:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: yes
# lspci | grep Mella
10:00.0 Ethernet controller: Mellanox Technologies MT27710 Family [ConnectX-4 Lx]
10:00.1 Ethernet controller: Mellanox Technologies MT27710 Family [ConnectX-4 Lx]
81:00.0 Ethernet controller: Mellanox Technologies MT27710 Family [ConnectX-4 Lx]
81:00.1 Ethernet controller: Mellanox Technologies MT27710 Family [ConnectX-4 Lx]
# lspci -vv -s 10:00.0 | grep "Part number" -A 3
[PN] Part number: MCX4121A-XCAT
[EC] Engineering changes: AJ
[SN] Serial number: MT2031J10949
[V0] Vendor specific: PCIeGen3 x8
# mstflint -d 10:00.0 q
Image type: FS3
FW Version: 14.27.1016
FW Release Date: 27.2.2020
Product Version: 14.27.1016
Rom Info: type=UEFI version=14.20.19 cpu=AMD64,AARCH64
type=PXE version=3.5.901 cpu=AMD64
Description: UID GuidsNumber
Base GUID: 0c42a10300eabd04 4
Base MAC: 0c42a1eabd04 4
Image VSD: N/A
Device VSD: N/A
PSID: MT_2420110004
Security Attributes: N/A

Upgrade FW

Podle part number a PSID vybereme konkretni verzi FW na webu NVIDIA. V našem případě je to Part number: MCX4121A-XCAT a PSID: MT_2420110004. Vybereme tedy nasledujici firmware:

Po stazeni je dobre overit md5 prikazem md5sum a porovnat, jestli sedí s checksumem uvedeným na webu.

06adda309f41dae265387470cae6c880 fw-ConnectX4Lx-rel-14_32_1900-MCX4121A-XCA_Ax-UEFI-14.25.17-FlexBoot-3.6.502.bin.zip

A nyní můžeme po rozbalení přejít k upgradu FW:

# mstflint -d 10:00.0 -i fw-ConnectX4Lx-rel-14_32_1900-MCX4121A-XCA_Ax-UEFI-14.25.17-FlexBoot-3.6.502.bin burn
Current FW version on flash: 14.27.1016
New FW version: 14.32.1900
FSMST_INITIALIZE - OK
Writing Boot image component - OK
-I- To load new FW run mstfwreset or reboot machine.
# mstflint -d 10:00.0 v
FS3 failsafe image
/0x00800038-0x00801e8b (0x001e54)/ (BOOT2) - OK
/0x00802000-0x0080201f (0x000020)/ (ITOC_HEADER) - OK
/0x00804000-0x0081472b (0x01072c)/ (IRON_PREP_CODE) - OK
/0x00815000-0x008150ff (0x000100)/ (FS3_RESET_INFO) - OK
/0x00816000-0x00816bff (0x000c00)/ (FW_MAIN_CFG) - OK
/0x00817000-0x008174bf (0x0004c0)/ (FW_BOOT_CFG) - OK
/0x00818000-0x008195ff (0x001600)/ (HW_MAIN_CFG) - OK
/0x0081a000-0x0081a13f (0x000140)/ (HW_BOOT_CFG) - OK
/0x0081b000-0x0081dc7f (0x002c80)/ (PHY_UC_CONSTS) - OK
/0x0081e000-0x0081e13f (0x000140)/ (IMAGE_SIGNATURE_256) - OK
/0x0081f000-0x0081f8ff (0x000900)/ (PUBLIC_KEYS_2048) - OK
/0x00820000-0x0082008f (0x000090)/ (FORBIDDEN_VERSIONS) - OK
/0x00821000-0x0082123f (0x000240)/ (IMAGE_SIGNATURE_512) - OK
/0x00822000-0x008230ff (0x001100)/ (PUBLIC_KEYS_4096) - OK
/0x00824000-0x00873fff (0x050000)/ (FS4_PART_TYPE_PROGRAMMABLE_HW_FW) - OK
/0x00874000-0x00925e27 (0x0b1e28)/ (ROM_CODE) - OK
/0x00926000-0x00935fff (0x010000)/ (CRDUMP_MASK_DATA) - OK
/0x00936000-0x009369ff (0x000a00)/ (PHY_UC_CMD) - OK
/0x00937000-0x0094091f (0x009920)/ (PHY_UC_CODE) - OK
/0x00941000-0x0096c457 (0x02b458)/ (PCI_CODE) - OK
/0x0096d000-0x00cbb8bf (0x34e8c0)/ (MAIN_CODE) - OK
/0x00cbc000-0x00cc9cbf (0x00dcc0)/ (PCIE_LINK_CODE) - OK
/0x00cca000-0x00ccae3f (0x000e40)/ (POST_IRON_BOOT_CODE) - OK
/0x00ccb000-0x00ccce0f (0x001e10)/ (UPGRADE_CODE) - OK
/0x00ccd000-0x00ccd3ff (0x000400)/ (IMAGE_INFO) - OK
/0x00ccd400-0x00ccdb6f (0x000770)/ (DBG_FW_INI) - OK
/0x00ccdb70-0x00ccdb77 (0x000008)/ (DBG_FW_PARAMS) - OK
/0x00fa0000-0x00faffff (0x010000)/ (NV_DATA) - CRC IGNORED
/0x00fb0000-0x00fbffff (0x010000)/ (NV_DATA) - CRC IGNORED
/0x00fc0000-0x00fcffff (0x010000)/ (FW_NV_LOG) - CRC IGNORED
/0x00fee000-0x00fee1ff (0x000200)/ (DEV_INFO) - OK
/0x00ff8000-0x00ff813f (0x000140)/ (MFG_INFO) - OK
/0x00ff8140-0x00ff81b7 (0x000078)/ (VPD_R0) - OK
-I- FW image verification succeeded. Image is bootable.
# mstflint -d 10:00.0 q full
Image type: FS3
FW Version: 14.32.1900
FW Version(Running): 14.27.1016
FW Release Date: 25.8.2024
Part Number: MCX4121A-XCA_Ax
Description: ConnectX-4 Lx EN network interface card; 10GbE dual-port SFP28; PCIe3.0 x8; ROHS R6
Product Version: 14.27.1016
Rom Info: type=UEFI version=14.20.19 cpu=AMD64,AARCH64
type=PXE version=3.5.901 cpu=AMD64
Description: UID GuidsNumber
Base GUID: 0c42a10300eabd04 4
Base MAC: 0c42a1eabd04 4
Image VSD: N/A
Device VSD: N/A
PSID: MT_2420110004
Security Attributes: N/A
Default Update Method: fw_ctrl

Nakonec provedeme reboot stroje.

Image type: FS3
FW Version: 14.32.1900
FW Release Date: 25.8.2024
Product Version: 14.32.1900
Rom Info: type=UEFI version=14.25.17 cpu=AMD64,AARCH64
type=PXE version=3.6.502 cpu=AMD64
Description: UID GuidsNumber
Base GUID: 0c42a10300eabd04 4
Base MAC: 0c42a1eabd04 4
Image VSD: N/A
Device VSD: N/A
PSID: MT_2420110004
Security Attributes: N/A

Cerpano odtud:

Firmware Connect-X4

Upgrade ovladacu v jadre

Ovladace je mozne stahnout z teto stránky

Doporučuje se stáhnout vždy zdrojový balíček pro příslušnou nejbližší verzi OS

Před instalací modulu jádra potřebujeme aktuální zdrojové kody spuštěného jádra systému. V debianu toho docílíme instalací balíčku linux-headers-amd64

Po rozbaleni archivu do adresáře /usr/src spustíme příkaz /install.pl --force-dkms

Tímto způsobem zajistíme kompilaci kodulu pomocí dkms avygenerování pčíslušných instalčních balíčků, které se sami i nainstalují.

Po úspěšném dokončení restartujeme system.

Následně můžeme ověřit příkazem ethool instalaci nového modulu jádra

# ethtool -i eth2
driver: mlx5_core
version: 5.8-6.0.4
firmware-version: 14.32.1900 (MT_2420110004)
expansion-rom-version:
bus-info: 0000:03:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: yes

Instalace řes DKMS zajistí, že se modul překompije pro aktuální verzi kernelu v případě že v budoucnu dojde k upgradu jádra systému.

Po instalaci nových ovladačů bjude potřeba asi doinstalovat znovu balíček mstflint, protože instalační skript preventivně před instalací nové verze modulu odinstaluje všchny stávající balíčky týkající se mellanox karet.