I’m wondering if its possible to run the official intel firmware on dell/lenovo branded X710-DA2 10G SFP+ network cards. I haven’t found any information online about this other than running the intel software update will not find updates for non-intel cards and folks need to run dell specific firmware update procedures.
UPDATE: These instructions load the wrong firmware on the card, resulting in only one of the SFP+ ports working. See update below!
I’ve just done this to two Dell cards. I don’t yet have any transceivers or DACs that the cards will talk with to test they’re not bricked though.
You’ll need two tools, both available in the latest Intel “complete package” for these devices.
You need to use the BootUtil to replace the Dell Option ROM, as it contains extras that the Intel firmware flasher refuses to have anything to do with.
update=combo
Once that’s done, you’ll have to use the firmware update utility nvmupdate to do an inventory of the card and discover the current unique ID of the existing Dell firmware - Intel calls this an ETrackID
Make your own copy of the included nvmupdate.cfg, and rip out everything but the two-line header and the one block for X710-DA2. Replace the contents of the Replaces: line with the ETrackID on your card.
Then run the firmware utility instructing it to use your configuration file.
To follow up, yes the cards were kinda bricked.
You’ll need to run the nvmupdate utility with the -rd option to reset the card options to factory defaults.
Lastly, if someone else hasn’t already done it, you’re probably going to want to boot an Ubuntu live-cd and hit the card with an unlocker to make it actually work with SFP+ modules not specifically approved by Intel. Have a look at github slash bibigon812/xl710-unlocker
Yes, I know that repository hasn’t been touched in 6 years. But it works!
My initial instructions load the wrong firmware, resulting in only one SFP+ port working.
When editing the configuration file, remove all entries for everything that isn’t X710 or X710-DA2. That should leave you with four entries.
One is for OCP 3.0 - get rid of it.
The one I mistakenly instructed to flash previously is X710-DA2 - get rid of it.
That leaves you with two entries, both with NVM image files named HPI_EagleFountain
One ends 000_v00.bin, and the other 000.bin
I didn’t try 000_v00, but 000.bin appears to be working correctly for me. As of firmware 9.20, that’s ETrack 8000D8CD, but of course this will have changed if you’re reading these instructions in the future.
Good luck!
First of all, thank you for those instructions, they helped my to update the firmware on my card. The different entries in the config file - besides other things - depend on the SPI flash size on the card. I have a HPE 562SFP+ card which uses a 8Mb flash compared to others that use a 4Mb chip. This lead to the flash process failing, leaving the card in a bricked state.
I was able to flash the backup made by the updater via a hardware flasher, recovery might not be possible without that. So check beforehand if the image you’re about to flash has the right size! I actually needed the X710-DA2 entry which uses the correct flash size for this particular card. WIth the -rd option the card flashes and works fine and I now have the current version 9.30 on the card.
Hi there, I would like to flash my Lenovo X710-DA2 to the latest Intel 9.4 FW.
But I have some questions:
- do i need to use bootutil as well?
Where do I get it?Edit: Got it from the intel preboot.tar.gz, but I’m not sure what to do here:
./bootutil64e -?
Error: Connection to QV driver failed - please reinstall it!
RUNNING BootUtil
================
The syntax for issuing BootUtil command-line options is:
BOOTUTIL -[OPTION] or -<OPTION>=<VALUE>
COMMAND LINE OPTIONS
====================
BootUtil accepts one executable option and its associated non-executable
options in an execution. If conflicting executable options are specified,
BootUtil exits with an error.
The options, where applicable, are listed in logical groups.
NOTE: If you run BootUtil without any command-line options, the utility
displays a list of all supported Intel network ports found in the system.
GENERAL OPTIONS:
-? or -HELP
Displays a list of command-line options.
> Press ENTER key to continue, 'q' to exit:
- can i also use the “replaces” line from the original lenovo config? Because Inventory mode displays nothing:
./nvmupdate64e -i
Intel(R) Ethernet NVM Update Tool
NVMUpdate version 1.40.5.5
Copyright(C) 2013 - 2023 Intel Corporation.
how do I know which spi flash size my card usesEdit: I used a Raspberry Pi to dump the SPI Flash (3 times) it is 8 MB, I made sure that all 3 dumps are 100% identical.
I have a Dell branded Intel X710-T4L card that advertises only 1G and 10G modes even though it should also work with 5G and 2.5G. I guess the Dell firmware might be the cause of this problem.
Now I would like to flash the Intel firmware.
Could you provide more detailed instructions how to do that? I don’t want to brick the card for obvious reasons.
root@proxmox:~# ethtool enp5s0f1
Settings for enp5s0f1:
Supported ports: [ ]
Supported link modes: 1000baseT/Full
10000baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 1000baseT/Full
10000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: Unknown!
Duplex: Unknown! (255)
Auto-negotiation: off
Port: Other
PHYAD: 0
Transceiver: internal
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: no
root@proxmox:~# ethtool -i enp5s0f1
driver: i40e
version: 6.5.13-1-pve
firmware-version: 9.40 0x8000e9b2 22.5.7
expansion-rom-version:
bus-info: 0000:05:00.1
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes
root@proxmox:~# lspci -d 8086: -vvv
05:00.0 Ethernet controller: Intel Corporation Ethernet Controller X710 for 10GBASE-T (rev 02)
Subsystem: Intel Corporation Ethernet 10G 4P X710-T4L-t Adapter
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 93
NUMA node: 0
IOMMU group: 33
Region 0: Memory at 3001e000000 (64-bit, prefetchable) [size=16M]
Region 3: Memory at 3001f818000 (64-bit, prefetchable) [size=32K]
Expansion ROM at f2680000 [disabled] [size=512K]
Capabilities: [40] Power Management version 3
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=1 PME-
Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 64bit+
Address: 0000000000000000 Data: 0000
Masking: 00000000 Pending: 00000000
Capabilities: [70] MSI-X: Enable+ Count=129 Masked-
Vector table: BAR=3 offset=00000000
PBA: BAR=3 offset=00001000
Capabilities: [a0] Express (v2) Endpoint, MSI 00
DevCap: MaxPayload 2048 bytes, PhantFunc 0, Latency L0s <512ns, L1 <64us
ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 0W
DevCtl: CorrErr+ NonFatalErr+ FatalErr+ UnsupReq+
RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop- FLReset-
MaxPayload 512 bytes, MaxReadReq 512 bytes
DevSta: CorrErr+ NonFatalErr- FatalErr- UnsupReq+ AuxPwr- TransPend-
LnkCap: Port #0, Speed 8GT/s, Width x8, ASPM L1, Exit Latency L1 <16us
ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
LnkCtl: ASPM Disabled; RCB 64 bytes, Disabled- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 8GT/s, Width x8
TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ NROPrPrP- LTR-
10BitTagComp- 10BitTagReq- OBFF Not Supported, ExtFmt- EETLPPrefix-
EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
FRS- TPHComp- ExtTPHComp-
AtomicOpsCap: 32bit- 64bit- 128bitCAS-
DevCtl2: Completion Timeout: 260ms to 900ms, TimeoutDis- LTR- 10BitTagReq- OBFF Disabled,
AtomicOpsCtl: ReqEn-
LnkCap2: Supported Link Speeds: 2.5-8GT/s, Crosslink- Retimer- 2Retimers- DRS-
LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-
Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot
LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete+ EqualizationPhase1+
EqualizationPhase2+ EqualizationPhase3+ LinkEqualizationRequest-
Retimer- 2Retimers- CrosslinkRes: unsupported
Capabilities: [e0] Vital Product Data
Product Name: X710 10GbE Controller
Read-only fields:
[V0] Vendor specific: FFV22.5.7
[PN] Part number: ND4PT
[MN] Manufacture ID: 1028
[V1] Vendor specific: DSV1028VPDR.VER2.1
[V3] Vendor specific: DTINIC
[V4] Vendor specific: DCM1001FFFFFF2101FFFFFF3201FFFFFF4301FFFFFF
[V5] Vendor specific: NPY4
[V6] Vendor specific: PMT1
[V7] Vendor specific: NMVIntel Corp
[V8] Vendor specific: L1D0
[RV] Reserved: checksum good, 1 byte(s) reserved
Read/write fields:
[Y1] System specific: CCF1
End
Capabilities: [100 v2] Advanced Error Reporting
UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol-
UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt+ UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol-
UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO+ CmpltAbrt- UnxCmplt+ RxOF+ MalfTLP+ ECRC+ UnsupReq- ACSViol-
CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr-
AERCap: First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn-
MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
HeaderLog: 00000000 00000000 00000000 00000000
Capabilities: [140 v1] Device Serial Number e0-d3-f1-ff-ff-91-96-b4
Capabilities: [150 v1] Alternative Routing-ID Interpretation (ARI)
ARICap: MFVC- ACS-, Next Function: 1
ARICtl: MFVC- ACS-, Function Group: 0
Capabilities: [160 v1] Single Root I/O Virtualization (SR-IOV)
IOVCap: Migration- 10BitTagReq- Interrupt Message Number: 000
IOVCtl: Enable- Migration- Interrupt- MSE- ARIHierarchy+ 10BitTagReq-
IOVSta: Migration-
Initial VFs: 32, Total VFs: 32, Number of VFs: 0, Function Dependency Link: 00
VF offset: 16, stride: 1, Device ID: 154c
Supported Page Size: 00000553, System Page Size: 00000001
Region 0: Memory at 000003001f600000 (64-bit, prefetchable)
Region 3: Memory at 000003001f9a0000 (64-bit, prefetchable)
VF Migration: offset: 00000000, BIR: 0
Capabilities: [1a0 v1] Transaction Processing Hints
Device specific mode supported
No steering table available
Capabilities: [1b0 v1] Access Control Services
ACSCap: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
ACSCtl: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
Capabilities: [1d0 v1] Secondary PCI Express
LnkCtl3: LnkEquIntrruptEn- PerformEqu-
LaneErrStat: 0
Kernel driver in use: i40e
Kernel modules: i40e
I’ve tried it today. The bootutil part worked fine as far as I can see.
Before:
root@proxmox:/tmp/BootUtil/Linux_x64# ./bootutil64e
Error: Connection to QV driver failed - please reinstall it!
Intel(R) Ethernet Flash Firmware Utility
BootUtil version 1.40.05.0
Copyright (C) 2003-2023 Intel Corporation
Type BootUtil -? for help
Port Network Address Location Series WOL Flash Firmware Version
==== =============== ======== ======= === ============================= =======
1 B49691F1D3E0 5:00.0 40GbE N/A UEFI,PXE -------
2 B49691F1D3E1 5:00.1 40GbE N/A UEFI,PXE -------
3 B49691F1D3E2 5:00.2 40GbE N/A UEFI,PXE -------
4 B49691F1D3E3 5:00.3 40GbE N/A UEFI,PXE -------
After:
root@proxmox:/tmp/BootUtil/Linux_x64# ./bootutil64e -NIC=1 -up=combo
Error: Connection to QV driver failed - please reinstall it!
Intel(R) Ethernet Flash Firmware Utility
BootUtil version 1.40.05.0
Copyright (C) 2003-2023 Intel Corporation
Programming flash on port 1 with flash firmware image
Create restore image of NIC 1 before proceeding? (Y)es or (N)o: y
Y
Saving flash firmware image on port 1 to file 15FF600B.FLB...saved /
Flash update successful
Port Network Address Location Series WOL Flash Firmware Version
==== =============== ======== ======= === ============================= =======
1 B49691F1D3E0 5:00.0 40GbE N/A UEFI,PXE Enabled 1.1.45
2 B49691F1D3E1 5:00.1 40GbE N/A UEFI,PXE Enabled 1.1.45
3 B49691F1D3E2 5:00.2 40GbE N/A UEFI,PXE Enabled 1.1.45
4 B49691F1D3E3 5:00.3 40GbE N/A UEFI,PXE Enabled 1.1.45
I’ve installed the QV driver after that:
root@proxmox:/tmp/BootUtil/Linux_x64/DRIVER# ./install
Extracting archive...OK!
Compiling the driver...OK!
Directory for driver installation does not exist...need to create it.
Directory for driver installation created successfully.
Skipping removing QV driver - it does not exist...
Copying iqvlinux.ko driver file to /lib/modules directory...OK!
Driver installation verification...Installed!
But if I run nvmupdate I get “Device not found.” even though the device is listed:
root@proxmox:/tmp/NVMUpdate/Linux_x64# ./nvmupdate64e
Intel(R) Ethernet NVM Update Tool
NVMUpdate version 1.40.5.5
Copyright(C) 2013 - 2023 Intel Corporation.
WARNING: To avoid damage to your device, do not stop the update or reboot or power off the system during this update.
Inventory in progress. Please wait [|.........]
Num Description Ver.(hex) DevId S:B Status
=== ================================== ============ ===== ====== ==============
01) Intel(R) Ethernet 10G 4P 9.64(9.40) 15FF 00:005 Update not
X710-T4L-t Adapter available
Tool execution completed with the following status: Device not found.
Press any key to exit.
If I want to run the inventory I just get nothing:
root@proxmox:/tmp/NVMUpdate/Linux_x64# ./nvmupdate64e -i
Intel(R) Ethernet NVM Update Tool
NVMUpdate version 1.40.5.5
Copyright(C) 2013 - 2023 Intel Corporation.
So how do I get the current ETrackID now?
I’m stuck at the same point QV is installed but I don’t get an inventory.
Update, I found this post:
https://forums.servethehome.com/index.php?threads/firmware-flash-x520.8438/post-151071
Run this to get the ETrackId:
$ ./nvmupdate64e -i -l
Intel(R) Ethernet NVM Update Tool
NVMUpdate version 1.39.56.8
Copyright(C) 2013 - 2023 Intel Corporation.
Config file will not be read.
Unsupported device found - DeviceId: 15BC.
Inventory
[00:001:00:00]: Intel(R) Ethernet Controller X710 for 10GbE SFP+
Flash inventory started.
Shadow RAM inventory started.
Shadow RAM inventory finished.
Flash inventory finished.
OROM inventory started.
OROM inventory finished.
[00:001:00:01]: Intel(R) Ethernet Converged Network Adapter X710
Device already inventoried.
[00:001:00:00]: Intel(R) Ethernet Controller X710 for 10GbE SFP+
Vendor : 8086
Device : 1572
Subvendor : 8086
Subdevice : 000A
Revision : 1
LAN MAC : xxxx
Alt MAC : 000000000000
SAN MAC : xxxx
ETrackId : 8000EE1C
SerialNumber : xxxx
NVM Version : 9.48(9.30)
PBA : J31980-004
VPD status : Valid
VPD size : 212
NVM update : No config file entry
checksum : Valid
OROM update : No config file entry
CIVD : 1.3450.0
PXE : 1.1.44, checksum Valid
EFI : 4.9.70, checksum None
[00:001:00:01]: Intel(R) Ethernet Converged Network Adapter X710
Vendor : 8086
Device : 1572
Subvendor : 8086
Subdevice : 0000
Revision : 1
LAN MAC : xxxx
Alt MAC : 000000000000
SAN MAC : xxxx
ETrackId : 8000EE1C
SerialNumber : xxxx
NVM Version : 9.48(9.30)
PBA : J31980-004
VPD status : Valid
VPD size : 212
NVM update : No config file entry
checksum : Valid
OROM update : No config file entry
CIVD : 1.3450.0
PXE : 1.1.44, checksum Valid
EFI : 4.9.70, checksum None
You can also save the inventory to a xml file with:
./nvmupdate64e -i -o inventory.xml
Edit:
Which BootIMG.FLB
did you use? There are two one in the APPS/BootUtil
folder and one in NVMUpdatePackage/700_Series/700Series/Linux_x64/
❯ sha256sum APPS/BootUtil/BootIMG.FLB
3cc4d7e712a8740d337737d40d27bdcf19d138070c551a09de9b971b478bf899 APPS/BootUtil/BootIMG.FLB
❯ sha256sum NVMUpdatePackage/700_Series/700Series/Linux_x64/BootIMG.FLB
17aedbe64ef8097597abc939ba78fbb96585fc1e1c6dd2c5a323bba0fc3d9ecf NVMUpdatePackage/700_Series/700Series/Linux_x64/BootIMG.FLB
Did you copy bootutil64e
in the NVMUpdatePackage folder?
Ok, I got it working for my X710-T4L:
- Install QV driver:
root@proxmox:/tmp/BootUtil/Linux_x64/DRIVER# ./install
Extracting archive...OK!
Compiling the driver...OK!
Directory for driver installation does not exist...need to create it.
Directory for driver installation created successfully.
Skipping removing QV driver - it does not exist...
Copying iqvlinux.ko driver file to /lib/modules directory...OK!
Driver installation verification...Installed!
- Update ROM using BootUtil:
root@proxmox:/tmp/BootUtil/Linux_x64# ./bootutil64e -NIC=1 -up=combo
Error: Connection to QV driver failed - please reinstall it!
Intel(R) Ethernet Flash Firmware Utility
BootUtil version 1.40.05.0
Copyright (C) 2003-2023 Intel Corporation
Programming flash on port 1 with flash firmware image
Create restore image of NIC 1 before proceeding? (Y)es or (N)o: y
Y
Saving flash firmware image on port 1 to file 15FF600B.FLB...saved /
Flash update successful
Port Network Address Location Series WOL Flash Firmware Version
==== =============== ======== ======= === ============================= =======
1 B49691F1D3E0 5:00.0 40GbE N/A UEFI,PXE Enabled 1.1.45
2 B49691F1D3E1 5:00.1 40GbE N/A UEFI,PXE Enabled 1.1.45
3 B49691F1D3E2 5:00.2 40GbE N/A UEFI,PXE Enabled 1.1.45
4 B49691F1D3E3 5:00.3 40GbE N/A UEFI,PXE Enabled 1.1.45
- Run ethtool to get the ETrackID:
root@proxmox:~# ethtool -i enp5s0f1
driver: i40e
version: 6.5.13-1-pve
firmware-version: 9.40 0x8000e9b2 22.5.7
expansion-rom-version:
bus-info: 0000:05:00.1
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes
Here you are looking for “8000e9b2”.
- Edit nvmupdate.cfg: Find the right image via the PBA (In my case “K37380”) and delete everything else.
CURRENT FAMILY: 1.0.0
CONFIG VERSION: 1.14.0
BEGIN DEVICE
DEVICENAME: XL710
VENDOR: 8086
DEVICE: 15FF
NVM IMAGE: X710_T4L_9p40_CFGID14p0_Retail_K37380.bin
OROM IMAGE: BootIMG.FLB
EEPID: 8000ECCF
REPLACES: 8000E9B2
RESET TYPE: REBOOT
END DEVICE
Delete everything after “REPLACES:” and add your ETrackID.
- Run the firmware update via NVMUpdate:
root@proxmox:/tmp/NVMUpdate/Linux_x64# ./nvmupdate64e
Intel(R) Ethernet NVM Update Tool
NVMUpdate version 1.40.5.5
Copyright(C) 2013 - 2023 Intel Corporation.
WARNING: To avoid damage to your device, do not stop the update or reboot or power off the system during this update.
Inventory in progress. Please wait [*****.....]
Num Description Ver.(hex) DevId S:B Status
=== ================================== ============ ===== ====== ==============
01) Intel(R) Ethernet 10G 4P 9.64(9.40) 15FF 00:005 Update
X710-T4L-t Adapter available
Options: Adapter Index List (comma-separated), [A]ll, e[X]it
Enter selection: 01
Would you like to back up the NVM images? [Y]es/[N]o: y
Update in progress. This operation may take several minutes.
[.....+****]
Num Description Ver.(hex) DevId S:B Status
=== ================================== ============ ===== ====== ==============
01) Intel(R) Ethernet 10G 4P 9.64(9.40) 15FF 00:005 Update
X710-T4L-t Adapter successful
A reboot is required to complete the update process.
Tool execution completed with the following status: All operations completed successfully.
Press any key to exit.
- Result:
root@proxmox:~# ethtool -i enp5s0f0
driver: i40e
version: 6.5.13-1-pve
firmware-version: 9.40 0x8000eccf 1.3534.0
expansion-rom-version:
bus-info: 0000:05:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes
I’ve used the BootIMG.FLB that came in the folder of the respective utility.
Unfortunatelly the retail firmware didn’t fix my problem and the card is still not listing 2,5G and 5G:
Settings for enp5s0f0:
Supported ports: [ ]
Supported link modes: 1000baseT/Full
10000baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 1000baseT/Full
10000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: Unknown!
Duplex: Unknown! (255)
Auto-negotiation: off
Port: Other
PHYAD: 0
Transceiver: internal
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: no
Edit: I also documented everything in a gist: X710 OEM crossflash · GitHub
Summary:
- Card: LENOVO INTEL X710-DA 00YK615 (LP)
- Issue: SR-IOV not working
It worked for me as well:
root@proxmox-m720q-0:~/intel_x710/700Series_NVMUpdatePackage_v9_40_Linux/700Series/Linux_x64# ./bootutil64e
Intel(R) Ethernet Flash Firmware Utility
BootUtil version 1.40.05.0
Copyright (C) 2003-2023 Intel Corporation
Type BootUtil -? for help
Port Network Address Location Series WOL Flash Firmware Version
==== =============== ======== ======= === ============================= =======
1 xxx 0:31.6 Gigabit N/A FLASH Not Present
2 xxx 1:00.0 40GbE N/A UEFI,PXE -------
3 xxx 1:00.1 40GbE N/A UEFI,PXE -------
root@proxmox-m720q-0:~/intel_x710/700Series_NVMUpdatePackage_v9_40_Linux/700Series/Linux_x64# ./bootutil64e -NIC=2 -up=combo
Intel(R) Ethernet Flash Firmware Utility
BootUtil version 1.40.05.0
Copyright (C) 2003-2023 Intel Corporation
Programming flash on port 2 with flash firmware image
Create restore image of NIC 2 before proceeding? (Y)es or (N)o: Y
Y
Saving flash firmware image on port 2 to file 1572600B.FLB...saved
/
Flash update successful
Port Network Address Location Series WOL Flash Firmware Version
==== =============== ======== ======= === ============================= =======
1 xxx 0:31.6 Gigabit N/A FLASH Not Present
2 xxx 1:00.0 40GbE N/A UEFI,PXE Enabled 1.1.44
3 xxx 1:00.1 40GbE N/A UEFI,PXE Enabled 1.1.44
root@proxmox-m720q-0:~/intel_x710/700Series_NVMUpdatePackage_v9_40_Linux/700Series/Linux_x64# ethtool -i enp1s0f0
driver: i40e
version: 6.5.13-1-pve
firmware-version: 9.30 0x8000ee1c 1.2890.0
expansion-rom-version:
bus-info: 0000:01:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes
root@proxmox-m720q-0:~/intel_x710/700Series_NVMUpdatePackage_v9_40_Linux/700Series/Linux_x64# mv nvmupdate.cfg nvmupdate.cfg.bak
root@proxmox-m720q-0:~/intel_x710/700Series_NVMUpdatePackage_v9_40_Linux/700Series/Linux_x64# cat <<EOF > nvmupdate.cfg
CURRENT FAMILY: 1.0.0
CONFIG VERSION: 1.14.0
BEGIN DEVICE
DEVICENAME: XL710
VENDOR: 8086
DEVICE: 1572
NVM IMAGE: X710DA2_9p40_CFGID7p2_J51959_Retail_8M.bin
EEPID: 8000ECCE
REPLACES: 8000EE1C
OROM IMAGE: BootIMG.FLB
RESET TYPE: REBOOT
END DEVICE
EOF
root@proxmox-m720q-0:~/intel_x710/700Series_NVMUpdatePackage_v9_40_Linux/700Series/Linux_x64# ./nvmupdate64e -rd
Intel(R) Ethernet NVM Update Tool
NVMUpdate version 1.40.5.5
Copyright(C) 2013 - 2023 Intel Corporation.
WARNING: To avoid damage to your device, do not stop the update or reboot or power off the system during this update.
Inventory in progress. Please wait [.|********]
Num Description Ver.(hex) DevId S:B Status
=== ================================== ============ ===== ====== ==============
01) Intel(R) Ethernet Connection (7) N/A(N/A) 15BC 00:000 Not supported
I219-V
02) Intel(R) Ethernet Controller X710 9.64(9.40) 1572 00:001 Update
for 10GbE SFP+ available
Options: Adapter Index List (comma-separated), [A]ll, e[X]it
Enter selection: 2
Would you like to back up the NVM images? [Y]es/[N]o: Y
Update in progress. This operation may take several minutes.
[.....-****]
Num Description Ver.(hex) DevId S:B Status
=== ================================== ============ ===== ====== ==============
01) Intel(R) Ethernet Connection (7) N/A(N/A) 15BC 00:000 Not supported
I219-V
02) Intel(R) Ethernet Controller X710 9.64(9.40) 1572 00:001 Update
for 10GbE SFP+ successful
A power cycle is required to complete the update process.
Tool execution completed with the following status: All operations completed successfully.
Press any key to exit.
root@proxmox-m720q-0:~/intel_x710/700Series_NVMUpdatePackage_v9_40_Linux/700Series/Linux_x64# reboot
root@proxmox-m720q-0:~# ethtool -i enp1s0f0
driver: i40e
version: 6.5.13-1-pve
firmware-version: 9.40 0x8000ecb7 1.3429.0
expansion-rom-version:
bus-info: 0000:01:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes
Which
BootIMG.FLB
did you use? There are two one in theAPPS/BootUtil
folder and one inNVMUpdatePackage/700_Series/700Series/Linux_x64/
And I can answer my own Question, I used the BootIMG.FLB
inside the NVMUpdatePackage
folder and it is older 1.1.44
vs. 1.1.45
Unfortunately I also didn’t get the result I hoped for, I had a glimps of hope of getting SR-VIO working, but sadly it wasn’t the FW.
You might want to try flashing again with ./nvmupdate64e -rd
to reset to defaults. Perhaps there are still some “dell settings” left , it unlocked SR-IOV for my lenovo card
Capabilities: [150 v1] Alternative Routing-ID Interpretation (ARI)
ARICap: MFVC- ACS-, Next Function: 0
ARICtl: MFVC- ACS-, Function Group: 0
Capabilities: [160 v1] Single Root I/O Virtualization (SR-IOV)
IOVCap: Migration- 10BitTagReq- Interrupt Message Number: 000
IOVCtl: Enable- Migration- Interrupt- MSE- ARIHierarchy- 10BitTagReq-
IOVSta: Migration-
Initial VFs: 64, Total VFs: 64, Number of VFs: 0, Function Dependency Link: 01
VF offset: 335, stride: 1, Device ID: 154c
Supported Page Size: 00000553, System Page Size: 00000001
Region 0: Memory at 00000000b1400000 (64-bit, prefetchable)
Region 3: Memory at 00000000b1910000 (64-bit, prefetchable)
VF Migration: offset: 00000000, BIR: 0
I updated the post above.
Yes, that did the trick! Awesome that we both got working what we wanted.
root@proxmox:~# ethtool enp5s0f0
Settings for enp5s0f0:
Supported ports: [ ]
Supported link modes: 100baseT/Full
1000baseT/Full
10000baseT/Full
2500baseT/Full
5000baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 100baseT/Full
1000baseT/Full
10000baseT/Full
2500baseT/Full
5000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: Unknown!
Duplex: Unknown! (255)
Auto-negotiation: off
Port: Other
PHYAD: 0
Transceiver: internal
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: no
Thank you for the very detailed instructions. As I was following along with Dell x710-DA4 card I got stuck at the bootutil64e step. I’m running Debian live (off of USB stick) and I do not see expected output of the bootutil64e command. Mine looks like
root@debian:/opt/intel_x710_ethernet_fw/v9.40# cd $WORKDIR/$VERSION && ./bootutil64e
Intel(R) Ethernet Flash Firmware Utility
BootUtil version 1.40.05.0
Copyright (C) 2003-2023 Intel Corporation
Type BootUtil -? for help
Port Network Address Location Series WOL Flash Firmware Version
==== =============== ======== ======= === ============================= =======
1 (Cannot initialize adapter)
2 (Cannot initialize adapter)
3 (Cannot initialize adapter)
4 (Cannot initialize adapter)
Otherwise card work fine. I can connect to the internet, and in fact, I’m writing this post with it connected. Any insight?
root@debian:/opt/intel_x710_ethernet_fw/v9.40# ethtool enp98s0f0
Settings for enp98s0f0:
Supported ports: [ FIBRE ]
Supported link modes: 10000baseSR/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10000baseSR/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 10000Mb/s
Duplex: Full
Auto-negotiation: off
Port: FIBRE
PHYAD: 0
Transceiver: internal
Supports Wake-on: g
Wake-on: g
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
root@debian:/opt/intel_x710_ethernet_fw/v9.40# ethtool -i enp98s0f0
driver: i40e
version: 6.1.0-18-amd64
firmware-version: 9.40 0x8000e9af 22.5.7
expansion-rom-version:
bus-info: 0000:62:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes
root@debian:/opt/intel_x710_ethernet_fw/v9.40# ./nvmupdate64e -i -l
Intel(R) Ethernet NVM Update Tool
NVMUpdate version 1.40.5.5
Copyright(C) 2013 - 2023 Intel Corporation.
Config file will not be read.
Inventory
[00:098:00:00]: Intel(R) Ethernet Converged Network Adapter X710
Flash inventory started.
Shadow RAM inventory started.
Shadow RAM inventory finished.
Flash inventory finished.
OROM inventory started.
OROM inventory finished.
[00:098:00:01]: Intel(R) Ethernet Converged Network Adapter X710
Device already inventoried.
[00:098:00:02]: Intel(R) Ethernet Converged Network Adapter X710
Device already inventoried.
[00:098:00:03]: Intel(R) Ethernet Converged Network Adapter X710
Device already inventoried.
[00:098:00:00]: Intel(R) Ethernet Converged Network Adapter X710
Vendor : 8086
Device : 1572
Subvendor : 8086
Subdevice : 0005
Revision : 1
LAN MAC : F8F21E1C0C00
Alt MAC : 000000000000
SAN MAC : F8F21E1C0C01
ETrackId : 8000E9AF
SerialNumber : 000C1CFFFF1EF2F8
NVM Version : 9.64(9.40)
PBA : H53934-010
VPD status : Valid
VPD size : 303
NVM update : No config file entry
checksum : Valid
OROM update : No config file entry
CIVD : 22.5.7
PXE : 1.1.44, checksum Valid
EFI : 4.9.83, checksum None
[00:098:00:01]: Intel(R) Ethernet Converged Network Adapter X710
Vendor : 8086
Device : 1572
Subvendor : 8086
Subdevice : 0000
Revision : 1
LAN MAC : F8F21E1C0C02
Alt MAC : 000000000000
SAN MAC : F8F21E1C0C03
ETrackId : 8000E9AF
SerialNumber : 000C1CFFFF1EF2F8
NVM Version : 9.64(9.40)
PBA : H53934-010
VPD status : Valid
VPD size : 303
NVM update : No config file entry
checksum : Valid
OROM update : No config file entry
CIVD : 22.5.7
PXE : 1.1.44, checksum Valid
EFI : 4.9.83, checksum None
[00:098:00:02]: Intel(R) Ethernet Converged Network Adapter X710
Vendor : 8086
Device : 1572
Subvendor : 8086
Subdevice : 0000
Revision : 1
LAN MAC : F8F21E1C0C04
Alt MAC : 000000000000
SAN MAC : F8F21E1C0C05
ETrackId : 8000E9AF
SerialNumber : 000C1CFFFF1EF2F8
NVM Version : 9.64(9.40)
PBA : H53934-010
VPD status : Valid
VPD size : 303
NVM update : No config file entry
checksum : Valid
OROM update : No config file entry
CIVD : 22.5.7
PXE : 1.1.44, checksum Valid
EFI : 4.9.83, checksum None
[00:098:00:03]: Intel(R) Ethernet Converged Network Adapter X710
Vendor : 8086
Device : 1572
Subvendor : 8086
Subdevice : 0000
Revision : 1
LAN MAC : F8F21E1C0C06
Alt MAC : 000000000000
SAN MAC : F8F21E1C0C07
ETrackId : 8000E9AF
SerialNumber : 000C1CFFFF1EF2F8
NVM Version : 9.64(9.40)
PBA : H53934-010
VPD status : Valid
VPD size : 303
NVM update : No config file entry
checksum : Valid
OROM update : No config file entry
CIVD : 22.5.7
PXE : 1.1.44, checksum Valid
EFI : 4.9.83, checksum None
The installation of the QV driver did work?
Yes. Identical output from it as you posted it earlier.
Do you have any other NICs installed besides the X710-DA4? If not I would just try running ./bootutil64e -NIC=1 -up=combo
Copy the BootIMG.FLB to the Linux_x64 directory first.
The only other NICs are on-board Realtek 2.5Gb/s one, and onboard WiFi. I guess I can try to disable them in the BIOS. I originally tried to force it, like you show, but no dice. Still couldn’t find anything.