华为SP333网卡刷入25G固件

本文最后更新于:January 22, 2025 pm

华为的SP333和SP380网卡应该就是MCX4121A-XCAT和MCX4121A-ACAT的OEM版本,本文主要介绍如何将10G的网卡SP333刷入25G网卡固件从而变为25G网卡。

准备工作

固件我们直接去官网下载

1
2
3
4
5
6
7
8
# 官方的固件下载地址
https://network.nvidia.com/support/firmware/connectx4lxen/

# 刷固件需要用到的MFT工具
https://network.nvidia.com/products/adapter-software/firmware-tools/

# 网卡驱动
https://network.nvidia.com/products/adapter-software/ethernet/windows/winof-2/

华子的网卡固件在官网没办法下载,但是在超聚合官网可以下载

1
https://support.xfusion.com/support/#/zh/software-basics/d4b7de78-c4c0-46db-bbbd-98926e13e2da

关于SP333和SP380这两个型号的华子官网介绍

1
2
3
4
# SP3332*10GE SFP+,向下兼容1GE速率(使用10GE SFP+光模块)。
https://support.huawei.com/enterprise/zh/doc/EDOC1100198574/672e0978
# SP3802*25GE SFP28,向下兼容10GE速率(使用10G SFP+光模块)。
https://support.huawei.com/enterprise/zh/doc/EDOC1100056515/c20b2897

根据之前对MCX4网卡的了解,这两个应该就是MCX4121A-XCAT和MCX4121A-ACAT的OEM版本

1
https://network.nvidia.com/files/doc-2020/pb-connectx-4-lx-en-card.pdf

这里需要提前说一下结论,这里刷固件的时候分别刷入了mellanox官方的MCX4121A-ACAT固件和华为的SP380固件:

刷入mellanox官方固件的时候,网卡只有一个网口能正常识别到模块,另一个网口在系统中能看到网卡,但是无法识别线缆(手头的AOC和DAC都不行,换另一个网口则都正常),并且正常识别的网卡在win11中没办法正常通过DHCP获取IP(其他系统暂时没测试)

刷入华为的SP380固件的时候,网卡信息能正常识别,两个网口各项功能看起来正常。建议还是刷入华为的固件比较稳妥。

windows 刷机

刷机命令参考如下

1
flint --no_fw_ctrl -allow_psid_change -d {设备号} -i {文件路径(注:这里最好为根目录下,如不为根目录注意目录名中不要含有中文)} burn

这里我用powershell执行的命令参考如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
PS C:\Users\Mr7th\Desktop\NIC-SP380-CX4Lx-FW-14.31.1014> flint --no_fw_ctrl -allow_psid_change -d mt4117_pciconf0 -i .\fw-ConnectX4Lx-rel-14_31_1014_H_SP380-FlexBoot-3.6.403_4117_14_24_13_RELEASE_X64_AARCH64_20210706_VPD.bin burn
Done.
Current FW version on flash: 14.32.1900
New FW version: 14.31.1014

Note: The new FW version is older than the current FW version on flash.

Do you want to continue ? (y/n) [n] : y


You are about to replace current PSID on flash - "MT_2420110034" with a different PSID - "HUA0000000023".
Note: It is highly recommended not to change the PSID.

Do you want to continue ? (y/n) [n] : y
Burning FW image without signatures - OK
Restoring signature - OK
-I- To load new FW run mlxfwreset or reboot machine.

刷固件需要等待挺长一段时间的,要有耐心,刷完之后我们使用mlxfwmanager命令检查当前固件信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
PS C:\Users\Mr7th\Desktop\NIC-SP380-CX4Lx-FW-14.31.1014> mlxfwmanager
Querying Mellanox devices firmware ...

Device #1:
----------

Device Type: ConnectX4LX
Part Number: MCX4121A-ACA_Ax
Description: ConnectX-4 Lx EN network interface card; 25GbE dual-port SFP28; PCIe3.0 x8; ROHS R6
PSID: MT_2420110034
PCI Device Name: mt4117_pciconf0
Base MAC: N/A
Versions: Current Available
FW 14.31.1014 N/A
FW (Running) 14.32.1900 N/A
PXE 3.6.0502 N/A
UEFI 14.25.0017 N/A

Status: No matching image found

看起来没问题,我们直接重启电脑,再看看网卡的信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
PS C:\Users\Mr7th> mlxfwmanager
Querying Mellanox devices firmware ...

Device #1:
----------

Device Type: ConnectX4LX
Part Number: Huawei_SP380_ConnectX4Lx_2P_25GbE_Ax
Description: Huawei SP380 2-port 25G Ethernet Adapter PCIE Gen3 x8
PSID: HUA0000000023
PCI Device Name: mt4117_pciconf0
Base MAC: N/A
Versions: Current Available
FW 14.31.1014 N/A
PXE 3.6.0403 N/A
UEFI 14.24.0013 N/A

Status: No matching image found


PS C:\Users\Mr7th> flint -d mt4117_pciconf0 q
Image type: FS3
FW Version: 14.31.1014
FW Release Date: 30.6.2021
Product Version: 14.31.1014
Rom Info: type=UEFI version=14.24.13 cpu=AMD64,AARCH64
type=PXE version=3.6.403 cpu=AMD64
Description: UID GuidsNumber
Base GUID: N/A 8
Base MAC: N/A 8
Image VSD: N/A
Device VSD: N/A
PSID: HUA0000000023
Security Attributes: N/A

按下win+R键,输入ncpa.cpl进去管理界面查看网卡信息

可以看到这两个网卡都正常协商到了10G速率(只有10G交换机),并且都通过DHCP的方式正常获取到了IP、DNS等信息

也可以通过下面这两个命令来查看网卡的速率信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
PS C:\Users\Mr7th> wmic nic where netEnabled=true get name,speed
Name Speed
Realtek Gaming 2.5GbE Family Controller #2 2500000000
Mellanox ConnectX-4 Lx Ethernet Adapter #5 10000000000
Mellanox ConnectX-4 Lx Ethernet Adapter #6 10000000000

PS C:\Users\Mr7th> Get-NetAdapter | select interfaceDescription,name,status,linkSpeed

interfaceDescription name Status LinkSpeed
-------------------- ---- ------ ---------
Mellanox ConnectX-4 Lx Ethernet Adapter #6 以太网 9 Up 10 Gbps
Mellanox ConnectX-4 Lx Ethernet Adapter #5 以太网 8 Up 10 Gbps
Intel(R) Wi-Fi 6E AX211 160MHz AX211 Disconnected 0 bps
Bluetooth Device (Personal Area Network) #3 蓝牙网络连接 3 Disconnected 3 Mbps
Realtek Gaming 2.5GbE Family Controller #2 Realtek Gaming 2.5GbE Up 2.5 Gbps

进到unraid里面之后我们能看到速率有25G的选项,说明正常

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
root@tiny-unraid:~# ethtool eth0
Settings for eth0:
Supported ports: [ Backplane ]
Supported link modes: 1000baseKX/Full
10000baseKR/Full
25000baseCR/Full
25000baseKR/Full
25000baseSR/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: Yes
Supported FEC modes: None RS BASER
Advertised link modes: 1000baseKX/Full
10000baseKR/Full
25000baseCR/Full
25000baseKR/Full
25000baseSR/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Advertised FEC modes: None
Speed: 10000Mb/s
Duplex: Full
Auto-negotiation: on
Port: Direct Attach Copper
PHYAD: 0
Transceiver: internal
Supports Wake-on: d
Wake-on: d
Link detected: yes
root@tiny-unraid:~# ethtool eth1
Settings for eth1:
Supported ports: [ Backplane ]
Supported link modes: 1000baseKX/Full
10000baseKR/Full
25000baseCR/Full
25000baseKR/Full
25000baseSR/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: Yes
Supported FEC modes: None RS BASER
Advertised link modes: 1000baseKX/Full
10000baseKR/Full
25000baseCR/Full
25000baseKR/Full
25000baseSR/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Advertised FEC modes: None
Speed: 10000Mb/s
Duplex: Full
Auto-negotiation: on
Port: Direct Attach Copper
PHYAD: 0
Transceiver: internal
Supports Wake-on: d
Wake-on: d
Link detected: yes

unraid 刷机

unraid原生并不自带mft刷机工具,因此我们要到APPS里面找到Mellanox-Firmware-Tools并下载安装,这个是MFT的一个开源实现版本,大部分功能逻辑和官方版本是几乎一致的。

开始之前,先使用ethtool工具可以查看网卡信息

1
2
3
4
5
6
7
8
9
10
11
root@tiny-unraid:~# ethtool -i eth1
driver: mlx5_core
version: 6.6.68-Unraid
firmware-version: 14.17.1010 (HUA0010110034)
expansion-rom-version:
bus-info: 0000:01:00.1
supports-statistics: yes
supports-test: yes
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: yes

通过系统自带的lspci查看网卡信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
root@tiny-unraid:~# lspci -nnv

01:00.0 Ethernet controller [0200]: Mellanox Technologies MT27710 Family [ConnectX-4 Lx] [15b3:1015]
Subsystem: Mellanox Technologies Device [15b3:df30]
Flags: bus master, fast devsel, latency 0, IRQ 16, IOMMU group 14
Memory at 60e2000000 (64-bit, prefetchable) [size=32M]
Expansion ROM at 80e00000 [disabled] [size=1M]
Capabilities: [60] Express Endpoint, IntMsgNum 0
Capabilities: [48] Vital Product Data
Capabilities: [9c] MSI-X: Enable+ Count=64 Masked-
Capabilities: [c0] Vendor Specific Information: Len=18 <?>
Capabilities: [40] Power Management version 3
Capabilities: [100] Alternative Routing-ID Interpretation (ARI)
Capabilities: [110] Advanced Error Reporting
Capabilities: [180] Single Root I/O Virtualization (SR-IOV)
Capabilities: [1c0] Secondary PCI Express
Capabilities: [230] Access Control Services
Kernel driver in use: vfio-pci
Kernel modules: mlx5_core

01:00.1 Ethernet controller [0200]: Mellanox Technologies MT27710 Family [ConnectX-4 Lx] [15b3:1015]
Subsystem: Mellanox Technologies Device [15b3:df30]
Flags: bus master, fast devsel, latency 0, IRQ 17, IOMMU group 15
Memory at 60e0000000 (64-bit, prefetchable) [size=32M]
Expansion ROM at 80d00000 [disabled] [size=1M]
Capabilities: [60] Express Endpoint, IntMsgNum 0
Capabilities: [48] Vital Product Data
Capabilities: [9c] MSI-X: Enable+ Count=64 Masked-
Capabilities: [c0] Vendor Specific Information: Len=18 <?>
Capabilities: [40] Power Management version 3
Capabilities: [100] Alternative Routing-ID Interpretation (ARI)
Capabilities: [110] Advanced Error Reporting
Capabilities: [180] Single Root I/O Virtualization (SR-IOV)
Capabilities: [230] Access Control Services
Kernel driver in use: mlx5_core
Kernel modules: mlx5_core

查看网卡信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
root@tiny-unraid:~# mstconfig -d 01:00.0 query

Device #1:
----------

Device type: ConnectX4LX
Name: N/A
Description: N/A
Device: 01:00.0

Configurations: Next Boot
ROCE_NEXT_PROTOCOL 254
NUM_PF_MSIX_VALID True(1)
NUM_OF_VFS 8
NUM_OF_PF 2
SRIOV_EN True(1)
PF_LOG_BAR_SIZE 5
VF_LOG_BAR_SIZE 0
NUM_PF_MSIX 63
NUM_VF_MSIX 11
INT_LOG_MAX_PAYLOAD_SIZE AUTOMATIC(0)
CQE_COMPRESSION BALANCED(0)
PCI_ATOMIC_MODE PCI_ATOMIC_DISABLED_EXT_ATOMIC_ENABLED(0)
LRO_LOG_TIMEOUT0 6
LRO_LOG_TIMEOUT1 7
LRO_LOG_TIMEOUT2 8
LRO_LOG_TIMEOUT3 12
LOG_DCR_HASH_TABLE_SIZE 14
MAX_PACKET_LIFETIME 61
DCR_LIFO_SIZE 16384
NUM_OF_PLANES_P1 0
NUM_OF_PLANES_P2 0
IB_PROTO_WIDTH_EN_MASK_P1 0
IB_PROTO_WIDTH_EN_MASK_P2 0
ROCE_CC_PRIO_MASK_P1 0
ROCE_CC_CNP_MODERATION_P1 DEVICE_DEFAULT(0)
ROCE_CC_PRIO_MASK_P2 0
ROCE_CC_CNP_MODERATION_P2 DEVICE_DEFAULT(0)
CLAMP_TGT_RATE_AFTER_TIME_INC_P1 True(1)
CLAMP_TGT_RATE_P1 False(0)
RPG_TIME_RESET_P1 600
RPG_BYTE_RESET_P1 32767
RPG_THRESHOLD_P1 5
RPG_MAX_RATE_P1 0
RPG_AI_RATE_P1 5
RPG_HAI_RATE_P1 50
RPG_GD_P1 11
RPG_MIN_DEC_FAC_P1 50
RPG_MIN_RATE_P1 1
RATE_TO_SET_ON_FIRST_CNP_P1 100
DCE_TCP_G_P1 4
DCE_TCP_RTT_P1 1
RATE_REDUCE_MONITOR_PERIOD_P1 4
INITIAL_ALPHA_VALUE_P1 0
MIN_TIME_BETWEEN_CNPS_P1 0
CNP_802P_PRIO_P1 0
CNP_DSCP_P1 7
CLAMP_TGT_RATE_AFTER_TIME_INC_P2 True(1)
CLAMP_TGT_RATE_P2 False(0)
RPG_TIME_RESET_P2 600
RPG_BYTE_RESET_P2 32767
RPG_THRESHOLD_P2 5
RPG_MAX_RATE_P2 0
RPG_AI_RATE_P2 5
RPG_HAI_RATE_P2 50
RPG_GD_P2 11
RPG_MIN_DEC_FAC_P2 50
RPG_MIN_RATE_P2 1
RATE_TO_SET_ON_FIRST_CNP_P2 100
DCE_TCP_G_P2 4
DCE_TCP_RTT_P2 1
RATE_REDUCE_MONITOR_PERIOD_P2 4
INITIAL_ALPHA_VALUE_P2 0
MIN_TIME_BETWEEN_CNPS_P2 0
CNP_802P_PRIO_P2 0
CNP_DSCP_P2 7
LLDP_NB_DCBX_P1 False(0)
LLDP_NB_RX_MODE_P1 OFF(0)
LLDP_NB_TX_MODE_P1 OFF(0)
LLDP_NB_DCBX_P2 False(0)
LLDP_NB_RX_MODE_P2 OFF(0)
LLDP_NB_TX_MODE_P2 OFF(0)
ROCE_RTT_RESP_DSCP_P1 0
ROCE_RTT_RESP_DSCP_MODE_P1 DEVICE_DEFAULT(0)
ROCE_RTT_RESP_DSCP_P2 0
ROCE_RTT_RESP_DSCP_MODE_P2 DEVICE_DEFAULT(0)
DCBX_IEEE_P1 True(1)
DCBX_CEE_P1 True(1)
DCBX_WILLING_P1 True(1)
DCBX_IEEE_P2 True(1)
DCBX_CEE_P2 True(1)
DCBX_WILLING_P2 True(1)
KEEP_ETH_LINK_UP_P1 False(0)
KEEP_IB_LINK_UP_P1 False(0)
KEEP_LINK_UP_ON_BOOT_P1 False(0)
KEEP_LINK_UP_ON_STANDBY_P1 False(0)
KEEP_ETH_LINK_UP_P2 False(0)
KEEP_IB_LINK_UP_P2 False(0)
KEEP_LINK_UP_ON_BOOT_P2 False(0)
KEEP_LINK_UP_ON_STANDBY_P2 False(0)
NUM_OF_VL_P1 _4_VLs(3)
NUM_OF_TC_P1 _8_TCs(0)
NUM_OF_PFC_P1 8
NUM_OF_VL_P2 _4_VLs(3)
NUM_OF_TC_P2 _8_TCs(0)
NUM_OF_PFC_P2 8
DUP_MAC_ACTION_P1 LAST_CFG(0)
DUP_MAC_ACTION_P2 LAST_CFG(0)
PORT_OWNER True(1)
ALLOW_RD_COUNTERS True(1)
RENEG_ON_CHANGE True(1)
TRACER_ENABLE False(0)
IP_VER IPv4(0)
BOOT_UNDI_NETWORK_WAIT 0
BOOT_VLAN 1
LEGACY_BOOT_PROTOCOL PXE(1)
BOOT_VLAN_EN False(0)
BOOT_PKEY 0

查看固件版本信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
root@tiny-unraid:~# mstflint -d 01:00.0 q
Image type: FS3
FW Version: 14.17.1010
FW Release Date: 22.9.2016
Rom Info: type=PXE version=3.4.903
Description: UID GuidsNumber
Base GUID: e868190300c8f3b8 8
Orig Base GUID: N/A 8
Base MAC: e86819c8ebcc 8
Orig Base MAC: N/A 8
Image VSD: N/A
Device VSD: N/A
PSID: HUA0010110034
Security Attributes: N/A

检查image信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
root@tiny-unraid:~# mstflint -d 01:00.0 v

FS3 failsafe image

/0x00000038-0x0000173b (0x001704)/ (BOOT2) - OK
/0x00002000-0x0000201f (0x000020)/ (ITOC_HEADER) - OK
/0x00004000-0x000040ff (0x000100)/ (RESET_INFO) - OK
/0x00005000-0x00005fff (0x001000)/ (FW_MAIN_CFG) - OK
/0x00006000-0x000064bf (0x0004c0)/ (FW_BOOT_CFG) - OK
/0x00007000-0x00007aff (0x000b00)/ (HW_MAIN_CFG) - OK
/0x00008000-0x0000813f (0x000140)/ (HW_BOOT_CFG) - OK
/0x00009000-0x0000c4ff (0x003500)/ (PHY_UC_CONSTS) - OK
/0x0000d000-0x0000d13f (0x000140)/ (IMAGE_SIGNATURE_256) - OK
/0x0000e000-0x0000e13f (0x000140)/ (PUBLIC_KEYS_2048) - OK
/0x0000f000-0x00030a13 (0x021a14)/ (ROM_CODE) - OK
/0x00031000-0x0003133f (0x000340)/ (PCIE_PHY_UC_CODE) - OK
/0x00032000-0x00039d7f (0x007d80)/ (PHY_UC_CODE) - OK
/0x0003a000-0x00063b33 (0x029b34)/ (PCI_CODE) - OK
/0x00064000-0x00074f03 (0x010f04)/ (IRON_PREP_CODE) - OK
/0x00075000-0x0029c6ff (0x227700)/ (MAIN_CODE) - OK
/0x0029d000-0x002aca23 (0x00fa24)/ (PCIE_LINK_CODE) - OK
/0x002ad000-0x002b0487 (0x003488)/ (POST_IRON_BOOT_CODE) - OK
/0x002b1000-0x002b3ba7 (0x002ba8)/ (UPGRADE_CODE) - OK
/0x002b4000-0x002b43ff (0x000400)/ (IMAGE_INFO) - OK
/0x002b4400-0x002d364f (0x01f250)/ (FW_ADB) - OK
/0x002d3650-0x002d3e27 (0x0007d8)/ (DBG_FW_INI) - OK
/0x002d3e28-0x002d3e2f (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-0x00ff813f (0x000000)/ (VPD_R0) - OK

-I- FW image verification succeeded. Image is bootable.

解压下载好的安装包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
root@tiny-unraid:~# unzip NIC-SP380-CX4Lx-FW-14.31.1014.zip
Archive: NIC-SP380-CX4Lx-FW-14.31.1014.zip
inflating: version.xml
inflating: install.sh
inflating: fw-ConnectX4Lx-rel-14_31_1014_H_SP380-FlexBoot-3.6.403_4117_14_24_13_RELEASE_X64_AARCH64_20210706_VPD.bin
creating: tools/
inflating: tools/mdevices_info
inflating: tools/mstop
inflating: tools/flint
inflating: tools/flint_ext
inflating: tools/minit
inflating: tools/mst
inflating: tools/mcra
creating: drivers/

同样的操作可以检查固件信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
root@tiny-unraid:~# mstflint -i fw-ConnectX4Lx-rel-14_31_1014_H_SP380-FlexBoot-3.6.403_4117_14_24_13_RELEASE_X64_AARCH64_20210706_VPD.bin v

FS3 failsafe image

/0x00000038-0x00001d97 (0x001d60)/ (BOOT2) - OK
/0x00002000-0x0000201f (0x000020)/ (ITOC_HEADER) - OK
/0x00004000-0x00013dd3 (0x00fdd4)/ (IRON_PREP_CODE) - OK
/0x00014000-0x000140ff (0x000100)/ (RESET_INFO) - OK
/0x00015000-0x00015bff (0x000c00)/ (FW_MAIN_CFG) - OK
/0x00016000-0x0001647f (0x000480)/ (FW_BOOT_CFG) - OK
/0x00017000-0x000185ff (0x001600)/ (HW_MAIN_CFG) - OK
/0x00019000-0x0001913f (0x000140)/ (HW_BOOT_CFG) - OK
/0x0001a000-0x0001cc7f (0x002c80)/ (PHY_UC_CONSTS) - OK
/0x0001d000-0x0001d13f (0x000140)/ (IMAGE_SIGNATURE_256) - OK
/0x0001e000-0x0001e8ff (0x000900)/ (PUBLIC_KEYS_2048) - OK
/0x0001f000-0x0001f08f (0x000090)/ (FORBIDDEN_VERSIONS) - OK
/0x00020000-0x0002023f (0x000240)/ (IMAGE_SIGNATURE_512) - OK
/0x00021000-0x000220ff (0x001100)/ (PUBLIC_KEYS_4096) - OK
/0x00023000-0x00072fff (0x050000)/ (PROGRAMMABLE_HW_FW) - OK
/0x00073000-0x00123827 (0x0b0828)/ (ROM_CODE) - OK
/0x00124000-0x00133fff (0x010000)/ (CRDUMP_MASK_DATA) - OK
/0x00134000-0x001349ff (0x000a00)/ (PCIE_PHY_UC_CODE) - OK
/0x00135000-0x0013e91f (0x009920)/ (PHY_UC_CODE) - OK
/0x0013f000-0x0016a4e7 (0x02b4e8)/ (PCI_CODE) - OK
/0x0016b000-0x004ab11f (0x340120)/ (MAIN_CODE) - OK
/0x004ac000-0x004b9c5f (0x00dc60)/ (PCIE_LINK_CODE) - OK
/0x004ba000-0x004bae3f (0x000e40)/ (POST_IRON_BOOT_CODE) - OK
/0x004bb000-0x004bcbfb (0x001bfc)/ (UPGRADE_CODE) - OK
/0x004bd000-0x004bd3ff (0x000400)/ (IMAGE_INFO) - OK
/0x004bd400-0x004bdf53 (0x000b54)/ (DBG_FW_INI) - OK
/0x004bdf54-0x004bdf5b (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-0x00ff81bf (0x000080)/ (VPD_R0) - OK

-I- FW image verification succeeded. Image is bootable.

更新固件完成后

1
2
3
4
5
6
7
8
9
10
11
12
13
root@tiny-unraid:~# mstflint --no_fw_ctrl -allow_psid_change -d 01:00.0 -i fw-ConnectX4Lx-rel-14_31_1014_H_SP380-FlexBoot-3.6.403_4117_14_24_13_RELEASE_X64_AARCH64_20210706_VPD.bin burn
Done.
Current FW version on flash: 14.17.1010
New FW version: 14.31.1014


You are about to replace current PSID on flash - "HUA0010110034" with a different PSID - "HUA0000000023".
Note: It is highly recommended not to change the PSID.

Do you want to continue ? (y/n) [n] : y
Burning FW image without signatures - OK
Restoring signature - OK
-I- To load new FW run mstfwreset or reboot machine.

我们再次检查固件信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
root@tiny-unraid:~# mstflint -d 01:00.0 q
Image type: FS3
FW Version: 14.31.1014
FW Version(Running): 14.17.1010
FW Release Date: 30.6.2021
Rom Info: type=UEFI version=14.24.13 cpu=AMD64,AARCH64
type=PXE version=3.6.403 cpu=AMD64
Description: UID GuidsNumber
Base GUID: e868190300c8f3b8 8
Orig Base GUID: N/A 8
Base MAC: e86819c8ebcc 8
Orig Base MAC: N/A 8
Image VSD: N/A
Device VSD: N/A
PSID: HUA0000000023
Orig PSID: HUA0010110034
Security Attributes: N/A

注意这个时候固件可以看到running版本和非running版本,我们通过ethtool查看当前的固件版本会发现新刷入的固件版本并未生效,需要重启

1
2
3
4
5
6
7
8
9
10
11
root@tiny-unraid:~# ethtool -i eth1
driver: mlx5_core
version: 6.6.68-Unraid
firmware-version: 14.17.1010 (HUA0010110034)
expansion-rom-version:
bus-info: 0000:01:00.1
supports-statistics: yes
supports-test: yes
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: yes

重启机器之后查看网卡信息可以发现固件版本和网卡速率都是正常

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
root@tiny-unraid:~# ethtool eth1
Settings for eth1:
Supported ports: [ Backplane ]
Supported link modes: 1000baseKX/Full
10000baseKR/Full
25000baseCR/Full
25000baseKR/Full
25000baseSR/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: Yes
Supported FEC modes: None RS BASER
Advertised link modes: 1000baseKX/Full
10000baseKR/Full
25000baseCR/Full
25000baseKR/Full
25000baseSR/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Advertised FEC modes: None
Speed: 10000Mb/s
Duplex: Full
Auto-negotiation: on
Port: Direct Attach Copper
PHYAD: 0
Transceiver: internal
Supports Wake-on: d
Wake-on: d
Link detected: yes
root@tiny-unraid:~# ethtool -i eth1
driver: mlx5_core
version: 6.6.68-Unraid
firmware-version: 14.31.1014 (HUA0000000023)
expansion-rom-version:
bus-info: 0000:01:00.1
supports-statistics: yes
supports-test: yes
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: yes

这里建议不要刷入mellanox官方的固件(虽然看起来网卡的速度正常,但是却无法正确识别到光模块和线缆),使用华为的官方固件即可,刷入的方法是一样的。