Crossflashing Intel official firmware on Dell / Lenovo PCIe X710-DA2 nics?

Make sure you have a backup of that F8F21E544070 folder elsewhere.

Based on the Intel community discussions and manuals I do not think nvmupdate can restore an unconfigured device and the only supported way is using a private tool called lanconf which I doubt will be anywhere on the internet.


I think there are a couple of ways you could resolve it.

Hardware Programmer

Use a hardware device to restore F8F21E544070.bin - I used a RPi+SOIC8 clip because I already had it, but the CH341A is a cheap popular device - WARNING it must be modified to operate at 3.3V

Linux ethtool

If ethtool can see the device you may be able to use it to rewrite the eeprom, see if you can find the device in ip link then I’d check you can dump the current broken eeprom ethtool -e DEVNAME raw on > DEVNAME.bin (replace DEVNAME)

Assuming that works what’s the relevant output from lspci -nn and I can try to determine what the ethtool command to flash it would be.

1 Like

Hi there,
I recently got an intel x710-DA4 and found out that it’s an OEM model and I can’t simply update the firmware.
While researching thankfully I came across this thread. Before I start with the procedure, I want to dump the flash first, to be safe if something goes wrong. As I’ve never done that before I want to make sure that I don’t make a mistake. So it would be very helpful if somebody could guide me a bit.

What I allready got and found out:

  • I ordered a SOIC8 clip
  • Raspberry pi B+ existing
  • I think I’ve identified the flash on my card. It’s located on the back and it’s a Windbond 25Q64FVSIG (datasheet: )

I found the connector pinout of the raspberry.

300px-Pi-GPIO-header

This is how I would connect the flash to the raspberry pi:

For Pin 3 and 7 I’m not sure if I can leave them unconnected or if I have to connect them to 3V3?

Flash Rasperry Pi
Pin1 - /CS CE0# / GPIO8
Pin2 - DO GPIO9 / MISO
Pin3 - /WP ?
Pin4 - GND GND
Pin5 - DI GPIO10 / MOSI
Pin6 - CLK GPIO11 / SCLK
Pin7 - /HOLD ?
Pin8 - VCC 3V3 (Pin1)

Any help very appreciated.

Edit: I was able to successfull dump the flash. I had to give the 3.3V to the Pin3 and Pin7.

I just executed the BOOTUTIL64E succesfully and want to flash now the nvm, but I’m not sure which image I should flash.
My PBA is H79857 and I can’t find that in the nvmupdate.cfg. My Product code is EX710DA4G1P5 if that maybe helps.
Thanks in advance.

You need to search little-endian, so H79857 becomes 7H8975

$ grep 7H8975 *.bin  
Binary file X710DA4_9p50_CFGID7p2_OEMGEN_OO.bin matches

So best guess you’d want to use this config (from 29.2) in nvmupdate.cfg, need to add your EEPID to REPLACES from nvmupdate64e.efi -i -l

CURRENT FAMILY: 1.0.0
CONFIG VERSION: 1.14.0

;OO
BEGIN DEVICE
DEVICENAME: XL710
VENDOR: 8086
DEVICE: 1572
NVM IMAGE: X710DA4_9p50_CFGID7p2_OEMGEN_OO.bin
OROM IMAGE: BootIMG.FLB
EEPID: 8000F150
REPLACES: 80001FAD 80002538 80002923 800035BC 80003CC7 80004CDB 80006475 800079E9 800083A4 80008B83 800093E5 8000961A 80009B98 8000A49F 8000ABE9 8000B6E3 8000B8B9 8000BD55 8000C3DC 8000C90F 8000CEB6 8000D311 8000D04F 8000D8C2 8000D935 8000E60B 8000ECAB
EEPROM MAP: PF_Alloc_WOL_DIS.txt
RESET TYPE: REBOOT
END DEVICE

Finally flash with nvmupdate64e.efi -rd and cold boot the system with reset -c

I’d encourage flashing from EFI, it was far quicker and stable for me.
Just change to the EFI2x64 directory or prepare a disk with it.

1 Like

Thank you for the little-endian hint. I flashed the one without the OO at the end and it worked.
I also flashed from EFI.

2 Likes