Patching Intel X520 EEPROM to unlock all SFP+ transceivers

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

safado

Member
Aug 21, 2020
44
6
8
Lot of info for a new person to take on,
this might help some one.
(Copy & Paste ;))

Might have to run sudo before every command(I don't remember if i did for every command)

I had problems with the live Ubuntu on usb so I just installed it on a old HD I had laying around.(20.04.1 was used) did the apt-update and apt-upgrade and you will need to install ethtool in Ubuntu.

-‐----------------------------------------------------------------------


Dell XYT17 Intel X520-DA2


‐---------------------------------‐-------------------------------------
sudo ip link show (find your cards port one number)

View attachment 25704
‐----------------------------------‐---------------------------------
(Find current value)
Sudo ethtool -e PUTCARDNUMBERHERE offset 0x58 length 1

Offset Values
------ ------
0x0058: fc

‐---------------------------------‐-------------------------------------

(To Change value)

sudo lspci -nn

This will give you the manufacturer ID and the PCI ID( thanks Craig!) Like the text below.

(04:00.0 Ethernet controller [0200]: Intel Corporation Ethernet 10G 2P X520 Adapter [8086:154d] (rev 01)

The magic number was made from this line above [8086:154d] to 0x154d8086 To use below.

Sudo ethtool -E PUTCARDNUMBERHERE magic 0x154d8086 offset 0x58 value 0xfd length 1

‐---------------------------------‐-------------------------------------

(Check if it took)
Sudo ethtool -e PUTCARDNUMBERHERE offset 0x58 length 1

Offset Values
------ ------
0x0058: fd

Should be good

‐---------------------------------‐-------------------------------------

I am just a home lab user with very little Linux experience. This took me hours to figure out skimming the 3 pages here and basic Linux commands at others sites.
This only works for the dell version listed.
No spoon feeding at this site lol

Installed in a R210ii with pfsense and set my interfaces after boot. Works great so far, sfp+ rj45 adapter worked perfectly with my xb7 modem. Modem shows 2.5g and pfsense shows 10g.
Can confirm this worked well for me! I bulk did 4 Dell x520’s. Wish I would have had this walkthrough when I did my first like 3-4 months ago. Thank you so much Bomberski!!
 
  • Like
Reactions: Bomberski

Merwin

New Member
Jun 5, 2023
1
0
1
I bougth a supermicro AOC-STGN-I2S. But it's revision 2.10. Running it under Proxmox. 1 module gives the well known error. The contents of the EEPROM look different than in earlier posts:

Code:
root@HomeController:~# ethtool -e enp1s0f0
Offset          Values
------          ------
0x0000:         60 08 02 00 00 00 40 00 6d 00 fd 00 8d 01 a3 01
0x0010:         a9 01 af 01 b7 01 bf 01 c7 01 cf 01 09 02 b8 05
0x0020:         00 04 ff ff ff ff ff ff ff ff 10 02 ff ff c8 02
0x0030:         ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0040:         22 28 ff ff ff ff ff ff ff ff ff ff ff ff 19 28
0x0050:         13 28 40 40 40 40 c5 26 fd ff da 06 00 80 48 02
Dont't know if I should try it?
 

patg84

New Member
Sep 1, 2023
3
0
1
This is what a Silicom PE210G2SP19-SR 82599ES looks like:

I'm thinking this card is already unlocked from the factory. Reached out to Silicom's developers and they state there is no firmware upgrade for this card. The card was manufactured in 2018. Here's the read from the card without any patching.

Code:
ubuntu@ubuntu:~$ sudo ethtool -e ens6f0
Offset        Values
------        ------
0x0000:        60 07 00 00 00 00 40 00 6d 00 fd 00 8d 01 a3 01
0x0010:        a9 01 af 01 b7 01 bf 01 c7 01 cf 01 09 02 b8 05
0x0020:        00 04 ff ff ff ff ff ff ff ff ff ff ff ff c8 02
0x0030:        ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0040:        ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0050:        ff ff 30 10 ff ff 6a 0d ff ff 01 00 ab 1b 48 02
It still won't recognize Avago 16gb transceivers. I believe this is because the transceiver won't do 1gbps. The data sheet claims 16, 10, 8, 4gbps but not 1gbps. That's odd because I have a Trend Networks LanXPLORER PRO and a Fluke Optiview iii that will read the 16gb transceivers and each of those tools only support up to 1gbps through the transceiver slot. Each tester will send/receive data at 1gbps using the Avago 16gbps transceivers. IDK.
 
Last edited:

ske4za

Member
Feb 4, 2019
80
45
18
This is what a Silicom PE210G2SP19-SR 82599ES looks like:

I'm thinking this card is already unlocked from the factory. Reached out to Silicom's developers and they state there is no firmware upgrade for this card. The card was manufactured in 2018. Here's the read from the card without any patching.

Code:
ubuntu@ubuntu:~$ sudo ethtool -e ens6f0
Offset        Values
------        ------
0x0000:        60 07 00 00 00 00 40 00 6d 00 fd 00 8d 01 a3 01
0x0010:        a9 01 af 01 b7 01 bf 01 c7 01 cf 01 09 02 b8 05
0x0020:        00 04 ff ff ff ff ff ff ff ff ff ff ff ff c8 02
0x0030:        ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0040:        ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0050:        ff ff 30 10 ff ff 6a 0d ff ff 01 00 ab 1b 48 02
It still won't recognize Avago 16gb transceivers. I believe this is because the transceiver won't do 1gbps. The data sheet claims 16, 10, 8, 4gbps but not 1gbps. That's odd because I have a Trend Networks LanXPLORER PRO and a Fluke Optiview iii that will read the 16gb transceivers and each of those tools only support up to 1gbps through the transceiver slot. Each tester will send/receive data at 1gbps using the Avago 16gbps transceivers. IDK.
Silicom requires you to get the -SRD versions of their card to support both 1G/10G. Additionally on the Silicoms we use (which are the bypass versions) I have to set 1G manually like ethtool -s <nic> speed 1000 duplex full autoneg on instead of automatically working at 1G or 10G like other brands.
 

crashpb

New Member
Jun 9, 2022
7
0
1
sooo,
I think I might have bricked my hp 560sfp+ editing the eeprom..
any way to fix the card or its dead dead?
for context, the card after the eeprom edit and a reboot the card doesn't show up anymore on lspci but it appears on ilo console. (box is a dl380 g9).
 

blunden

Active Member
Nov 29, 2019
479
145
43
sooo,
I think I might have bricked my hp 560sfp+ editing the eeprom..
any way to fix the card or its dead dead?
for context, the card after the eeprom edit and a reboot the card doesn't show up anymore on lspci but it appears on ilo console. (box is a dl380 g9).
Yes, it should be possible to restore a working EEPROM with ethtool.

See this post earlier in this thread:

 

ElJefe

New Member
Dec 5, 2023
7
0
1
As anyone accomplished similar results/process with the X710 or X810 Ethernet cards? Removing the ability to use "allow_unsupported_sfp=1" in the ixgbe and ice drivers is a really uncool move by Intel.
 

blunden

Active Member
Nov 29, 2019
479
145
43
As anyone accomplished similar results/process with the X710 or X810 Ethernet cards? Removing the ability to use "allow_unsupported_sfp=1" in the ixgbe and ice drivers is a really uncool move by Intel.
Yes, at least on the X710 and XL710 cards. I don't know about X810.


This is the tool I used on my Dell OEM X710-DA2:


EDIT: It appears that Intel themselves claim that the E810 series of cards don't use vendor locking for SFP* modules (whichever type they use).


It sounds kind of like the reference to special "open" X710 cards supposedly being available from Intel too as mentioned from the original developer of the unlock tool (but the fork I linked was updated and improved):

 
Last edited:

Frnot

New Member
Sep 23, 2020
7
1
3
I've applied this patch to two separate Intel X520's, but I still get the dreaded "failed to load because an unsupported SFP+ or QSFP module type was detected" message. I'm using Cisco coded 10G BiDi SFP+ modules from FS.com. Unfortunately, I don't have any other SFP+ optics to test at the moment (DACs work fine however).

I'm wondering if these optics really are incompatible for some reason, or maybe the ixgbe driver has been patched to ignore the bit in EEPROM? I've searched around but I can't find another example of this patch not working on an Intel brand X520.
 
Last edited:

blunden

Active Member
Nov 29, 2019
479
145
43
I've applied this patch to two separate Intel X520's, but I still get the dreaded "failed to load because an unsupported SFP+ or QSFP module type was detected" message. I'm using Cisco coded 10G BiDi SFP+ modules from FS.com. Unfortunately, I don't have any other SFP+ optics to test at the moment (DACs work fine however).

I'm wondering if these optics really are incompatible for some reason, or maybe the ixgbe driver has been patched to ignore the bit in EEPROM? I've searched around but I can't find another example of this patch not working on an Intel brand X520.
Have you tried adding the flag to allow unsupported modules, just to see if the vendor lock is the issue? :)

Modifying these bits is essentially equivalent to what that flag does, but in a way that also works with drivers that don't offer a way to disable the lock.
 

Frnot

New Member
Sep 23, 2020
7
1
3
Have you tried adding the flag to allow unsupported modules, just to see if the vendor lock is the issue? :)

Modifying these bits is essentially equivalent to what that flag does, but in a way that also works with drivers that don't offer a way to disable the lock.
I've tried loading the driver with allow_unsupported_sfp set with the same results. I'm not even sure if the option was being applied correctly.

I suspect that between the driver flag and the eeprom bit, something should've worked. That's why I'm wondering if there is a legitimate reason these optics aren't compatible.

I would order an Intel coded optic from FS to try, but I think instead I'll buy another NIC.
 

blunden

Active Member
Nov 29, 2019
479
145
43
I've tried loading the driver with allow_unsupported_sfp set with the same results. I'm not even sure if the option was being applied correctly.

I suspect that between the driver flag and the eeprom bit, something should've worked. That's why I'm wondering if there is a legitimate reason these optics aren't compatible.

I would order an Intel coded optic from FS to try, but I think instead I'll buy another NIC.
I see. Is this on a recent firmware too, in case there have been any changes to transceiver compatibility?

Yeah, that's a legitimate question that I unfortunately don't have the answer to. Let's hope someone does. :)
 

Frnot

New Member
Sep 23, 2020
7
1
3
I see. Is this on a recent firmware too, in case there have been any changes to transceiver compatibility?
I wasn't aware there was anything on these cards worth updating (I've seen references to PXE and UEFI), but I'm not opposed to trying. Do you know where I can find the OEM firmware for this card?
 

blunden

Active Member
Nov 29, 2019
479
145
43
I wasn't aware there was anything on these cards worth updating (I've seen references to PXE and UEFI), but I'm not opposed to trying. Do you know where I can find the OEM firmware for this card?
Yeah, it's old enough that there likely hasn't been a firmware update released from Intel in a long time. It you bought it used, it might be worth checking though.

Is it an Intel branded card, or an OEM model? If the latter, which OEM and model number?
 

Frnot

New Member
Sep 23, 2020
7
1
3
Yeah, it's old enough that there likely hasn't been a firmware update released from Intel in a long time. It you bought it used, it might be worth checking though.

Is it an Intel branded card, or an OEM model? If the latter, which OEM and model number?
Sorry, It's Intel branded. I haven't been able to find an official firmware update from Intel for this card. From what I have found, Intel handles firmware updates from the driver (or not at all).

As such just patching the EEPROM or setting allow_unsupported_sfp will not have an effect if the driver determines that it's not a 10GE module. As such after patching the EEPROM ensure to try out multiple modules. Else Intel's driver will block initialization.
I'm afraid I might be suffering from this. although I really don't know how to check.
 

blunden

Active Member
Nov 29, 2019
479
145
43
Sorry, It's Intel branded. I haven't been able to find an official firmware update from Intel for this card. From what I have found, Intel handles firmware updates from the driver (or not at all).
Yes, some quick googling suggests that might be the case. For my Dell OEM X710-DA2 there were separate firmware updates. That's why I assumed it was the same for your X520.
 

mauzilla

New Member
Aug 11, 2022
16
5
3
Has anyone ever seen in Linux that the X520 interfaces come up as "side-{randomnumber}-eth2" - It does not seem like the interfaces are detected correctly, not sure if this is normal behaviour for interfaces from intel?