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.

santeo

New Member
Mar 26, 2024
2
1
3
Hello!
I have an Intel X520-DA2 card that I want to unlock. Is this the correct command for flipping the bits to
unlocked based on the information below:
(Don't know how to do the binary math, so I am not completely sure if the command below is completely right according to the output below?)

sudo ethtool -E enp1s0f0 magic 0x154d8086 0x58 value 0xfd <-- Wrong
sudo ethtool -E enp1s0f0 magic 0x154d8086 offset 0x58 value 0xfd <-- Correct

EDIT: When running the above command I got:
ethtool: bad command line argument(s)
For more information run ethtool -h

I should have the right magic word?
It does not work with length 1 in the end either..

ip addr
4: enp1s0f0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
5: enp1s0f1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff


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


sudo ethtool -e enp1s0f0 offset 0x58 length 1
Offset Values
------ ------
0x0058: fc



sudo ethtool -e enp1s0f0
Offset Values
------ ------
0x0000: 60 09 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 05 ff ff ff ff ff ff ff ff fa fa 9d 37 c8 02
0x0030: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0040: a3 37 ff ff ff ff ff ff ff ff ff ff ff ff 94 37
0x0050: 8e 37 28 40 35 40 40 36 fc ff bd 08 00 80 48 02


Thanks in advance!
 
Last edited:

MPServers

New Member
Feb 4, 2024
27
16
3
Hello!
I have an Intel X520-DA2 card that I want to unlock. Is this the correct command for flipping the bits to
unlocked based on the information below:
(Don't know how to do the binary math, so I am not completely sure if the command below is completely right according to the output below?)

sudo ethtool -E enp1s0f0 magic 0x154d8086 0x58 value 0xfd
Include "length 1" on the end of the -E command that sets that value.

I just did this on a couple X520 card in a system I was converting to fiber SFP's and didn't realize it wouldn't accept my Cisco modules. Fortunately I had a couple Intel modules I could use for now, but it bugged me and I found this thread after searching.

You have to specify that length on the set command, which some earlier posts leave out, probably a change in "ethtool" itself over the years.

Here's the command I used, for example:
ethtool -E enp131s0f0 magic 0x154d8086 offset 0x58 value 0xfd length 1

I also made the mistake of not double-checking my device ID so it took me a little more reading to realize my X520 (in a Dell) is 154d, not the other one used in other examples. Once I made that change also, it worked fine.

Well, I say it worked, but I still need to try out those Cisco modules now that I've made the change, just to make sure it *really* worked. :)
 

santeo

New Member
Mar 26, 2024
2
1
3
Include "length 1" on the end of the -E command that sets that value.

I just did this on a couple X520 card in a system I was converting to fiber SFP's and didn't realize it wouldn't accept my Cisco modules. Fortunately I had a couple Intel modules I could use for now, but it bugged me and I found this thread after searching.

You have to specify that length on the set command, which some earlier posts leave out, probably a change in "ethtool" itself over the years.

Here's the command I used, for example:
ethtool -E enp131s0f0 magic 0x154d8086 offset 0x58 value 0xfd length 1

I also made the mistake of not double-checking my device ID so it took me a little more reading to realize my X520 (in a Dell) is 154d, not the other one used in other examples. Once I made that change also, it worked fine.

Well, I say it worked, but I still need to try out those Cisco modules now that I've made the change, just to make sure it *really* worked. :)
Thank you very much! I just saw that my command was missing the offset word. I did this in the middle of the night, and I guess I was really tired to miss that. :)

This command now worked for me with my other Intel X520 (actually it is a 82599ES):
ethtool -E enp1s0f0 magic 0x10fb8086 offset 0x58 value 0xfd length 1

The magic word was different on that card: (so had to change to 10fb8086.
01:00.0 Ethernet controller [0200]: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection [8086:10fb] (rev 01)

And for my other card this command works:
ethtool -E enp1s0f0 magic 0x154d8086 offset 0x58 value 0xfd length 1
Magic word comes from here:
01:00.0 Ethernet controller [0200]: Intel Corporation Ethernet 10G 2P X520 Adapter [8086:154d] (rev 01)
01:00.1 Ethernet controller [0200]: Intel Corporation Ethernet 10G 2P X520 Adapter [8086:154d] (rev 01)


(Of course run as root, otherwise you have to put sudo first)
 
Last edited:
  • Like
Reactions: blunden

Larz

New Member
May 17, 2024
1
0
1
Thanks to NathanA and all the others who have contributed to understanding and dealing with this. One flippin' bit has saved a lot of heartburn and hair loss.
Best Regards