Lenovo X710 flashing with Dell Firmware?

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

JeremiahCricket

New Member
Nov 23, 2021
8
1
3
I've read the forum posts and other resources on flashing branded X710 cards with generic Intel firmware. I have a different "problem". I have a Lenovo X710-DA4 SFP+ card which I'd like to use in a Dell rack server. However, Dell in their infinite wisdom ramps up fan speed to 100% when a non-Dell card is in any PCIe slot. Ideally, the X710-DA4 would have Dell firmware which should solve this issues. But, I have been unable to get Dell firmware load. I know a workaround is to set `System.ThermalSettings.ThirdPartyPCIFanResponse` to `0` using `racadm`.
 

blunden

Active Member
Nov 29, 2019
492
155
43
I'm curious what you found about cross-flashing Intel firmware on OEM X710 cards? I was under the impression that it's something people generally don't do.
 

JeremiahCricket

New Member
Nov 23, 2021
8
1
3
It seems converting Dell or Intel branded to generic is much more common. I found several guides, these were the most helpful:
I do have several versions of the Dell firmware, the Lenovo firmware and the latest generic Intel firmware, all for RHEL as I prefer it over Windows. Modifying the instructions to flash the generic Intel firmware to the card but modified for the Dell files did not achieve any useful results, the `nvmupdate` utility simply refused to flash the card.
 
  • Like
Reactions: blunden

blunden

Active Member
Nov 29, 2019
492
155
43
It seems converting Dell or Intel branded to generic is much more common. I found several guides, these were the most helpful:
I do have several versions of the Dell firmware, the Lenovo firmware and the latest generic Intel firmware, all for RHEL as I prefer it over Windows. Modifying the instructions to flash the generic Intel firmware to the card but modified for the Dell files did not achieve any useful results, the `nvmupdate` utility simply refused to flash the card.
Thanks! :)

For some reason I didn't find those threads last year when I looked for whether it was possible and for some reason I got the impression that cross-flashing these Intel OEM cards wasn't really a thing.

I saw in another thread that at least the Dell firmware updater for the Intel e810 NICs might have checks to prevent you from flashing them in a non-Dell server. I also got a weird error when trying their Windows-based update but was able to work around it fairly easily.


Perhaps you are running into a similar lock?
 

JeremiahCricket

New Member
Nov 23, 2021
8
1
3
I am using Dell servers, that's why I'd prefer to run Dell firmware rather than generic firmware or some other branded firmware. If a Dell servers Dirac cannot read the cards temperature sensor, the fans are turned up to 100%. This results in unacceptable noise levels. There is an Dirac setting that allows one to change this behaviour to essentially exclude 3rd party cards from affecting fan speeds, but the preferred solution would be Dell firmware.

In my case the card is Lenovo branded but to be used in a Dell server.

I unpacked theDell firmware package and ran the `nvmupdate` tool directly. I also modified the `nvmupdate.cfg` file to try to convince the tool to flash Dell firmware onto a non-Dell card. I am suspecting one of two possible issues, the firmware file specified doesn't make sense and the tool does some ID checks between the cards current firmware, what's in the config file and may (I am not clear by the instructions) by what's embedded in the firmware file.
 

blunden

Active Member
Nov 29, 2019
492
155
43
I am using Dell servers, that's why I'd prefer to run Dell firmware rather than generic firmware or some other branded firmware. If a Dell servers Dirac cannot read the cards temperature sensor, the fans are turned up to 100%. This results in unacceptable noise levels. There is an Dirac setting that allows one to change this behaviour to essentially exclude 3rd party cards from affecting fan speeds, but the preferred solution would be Dell firmware.

In my case the card is Lenovo branded but to be used in a Dell server.

I unpacked theDell firmware package and ran the `nvmupdate` tool directly. I also modified the `nvmupdate.cfg` file to try to convince the tool to flash Dell firmware onto a non-Dell card. I am suspecting one of two possible issues, the firmware file specified doesn't make sense and the tool does some ID checks between the cards current firmware, what's in the config file and may (I am not clear by the instructions) by what's embedded in the firmware file.
Oh, right. Yeah, then I don't know why it would fail. Seeing as cross-flashing the other way works, you would think it would work. :)

If you dig around in the nvmupdate executable, do you see any hints of Dell modifications to it or is it the same as the executable from the Intel package?
 

JeremiahCricket

New Member
Nov 23, 2021
8
1
3
I suppose I could try flashing a card to generic firmware. I did not proceed with attempting that as that wasn't my goal, Dell firmware was. When I look at one set of instructions to flash the generic firmware, it instructs to craft a `nvmupdate.cfg` file such as this:

Code:
CURRENT FAMILY: 1.0.0
CONFIG VERSION: 1.14.0

BEGIN DEVICE
DEVICENAME: X710-DA2
VENDOR: 8086
DEVICE: 1572
NVM IMAGE: X710DA2_9p40_CFGID7p2_OEMGEN_K97470.bin
OROM IMAGE: BootIMG.FLB
EEPID: 8000ECB7
REPLACES: 8000EE1C
RESET TYPE: POWER
END DEVICE
However, the `nvmupdate.cfg` from Dell has `BootIMG.FLB` specified for both `NVM` and `OROM` images. It fails to flash with an image error. The Dell `nvmupdate.cfg` file has another `NVM IMAGE` file line that has been commented out. The file in that line I have not been able to find. I have 3 different Dell firmware update packages, none of which have the commented file.

I didn't compare the `nvmupdate` executable using md5, but on the surface they behave identically. It does not seem to matter which binary I use, whether the one from the Intel generic package, the Lenovo package or the Dell package.
 

blunden

Active Member
Nov 29, 2019
492
155
43
The Dell `nvmupdate.cfg` file has another `NVM IMAGE` file line that has been commented out. The file in that line I have not been able to find. I have 3 different Dell firmware update packages, none of which have the commented file.

I didn't compare the `nvmupdate` executable using md5, but on the surface they behave identically. It does not seem to matter which binary I use, whether the one from the Intel generic package, the Lenovo package or the Dell package.
And the nvmupdate.cfg file in older versions of the Dell firmware also have that commented out line referencing a missing file?

Ok. My thinking was that they might've implemented an additional hardware check in there, but that assumes the OEMs actually get the source code for that executable and not just the compiled binary.
 

JeremiahCricket

New Member
Nov 23, 2021
8
1
3
And the nvmupdate.cfg file in older versions of the Dell firmware also have that commented out line referencing a missing file?
Yes, the 3 I checked.

Ok. My thinking was that they might've implemented an additional hardware check in there, but that assumes the OEMs actually get the source code for that executable and not just the compiled binary.
I took the firmware files and the hand crafted `nvmupdate.cfg` and tried flashing them with `nvmupdate` from the Lenovo package and the generic Intel package. Neither Dell, Lenovo, nor generic allowed it to happen.
 
  • Sad
Reactions: blunden

cromo

Member
Jun 6, 2019
93
23
8
I suppose I could try flashing a card to generic firmware. I did not proceed with attempting that as that wasn't my goal, Dell firmware was. When I look at one set of instructions to flash the generic firmware, it instructs to craft a `nvmupdate.cfg` file such as this:

Code:
CURRENT FAMILY: 1.0.0
CONFIG VERSION: 1.14.0

BEGIN DEVICE
DEVICENAME: X710-DA2
VENDOR: 8086
DEVICE: 1572
NVM IMAGE: X710DA2_9p40_CFGID7p2_OEMGEN_K97470.bin
OROM IMAGE: BootIMG.FLB
EEPID: 8000ECB7
REPLACES: 8000EE1C
RESET TYPE: POWER
END DEVICE
However, the `nvmupdate.cfg` from Dell has `BootIMG.FLB` specified for both `NVM` and `OROM` images. It fails to flash with an image error. The Dell `nvmupdate.cfg` file has another `NVM IMAGE` file line that has been commented out. The file in that line I have not been able to find. I have 3 different Dell firmware update packages, none of which have the commented file.

I didn't compare the `nvmupdate` executable using md5, but on the surface they behave identically. It does not seem to matter which binary I use, whether the one from the Intel generic package, the Lenovo package or the Dell package.
I was trying to update my Dell x710 DA2 yesterday using same instructions and had literally same exact observations, which I summarized here: 18h

For the record I also cannot update that card with Dells own firmware now.. Their nvmupdate64e detects the card as Dell’s own and suggests an update, but it ends up with same exact error. Not sure if this is due to the Flash that I had manually updated with bootutil64e — I tried restoring it using backup it saved during the update, but that actually put the card into Recovery mode and subsequently bootutil64e could not initialize the device anymore. Luckily I was able to bring it back using the original complete FLB that I backed up with nvmupdate64e — although this one was saved after I had already updated the flash, so I am effectively stuck now. The card works, but cannot update it with any version.

EDIT: I was able to downgrade Flash using the Dell firmware package that matched the version currently installed. However, trying to update to most recent Dell firmware still fails with "OROM: One of the module updates failed - skipping update."
 
Last edited:

cromo

Member
Jun 6, 2019
93
23
8
I took the firmware files and the hand crafted `nvmupdate.cfg` and tried flashing them with `nvmupdate` from the Lenovo package and the generic Intel package. Neither Dell, Lenovo, nor generic allowed it to happen.
Can you check if you can actually update the card using Dell's own package? It fails here and I have a feeling something is messed up.