- Joined
- Jun 8, 2014
- Messages
- 7
- Motherboard
- Mac mini 2018
- CPU
- Intel i7 6 core
- Graphics
- RX 5700 XT
- Mac
- Mobile Phone
etimacias, thanks for the pointer. I've now got this working on my X520-DA2 card.Why do you overcomplicating such thing? Why not just change subdev id in eeprom with ethtool under Linux? You can find which word is that in datasheet on Intel site http://www.intel.com/content/dam/ww...asheets/82599-10-gbe-controller-datasheet.pdf and seek for PCIe General Configuration Module. Worked like a charm on my X520
FOLKS, PROCEED WITH CAUTION. THIS WILL WRITE TO THE CARD EEPROM AND INCORRECT USAGE COULD RENDER YOUR CARD USELESS. THESE STEPS ARE SPECIFIC TO MY INTEL X520-DA2 CARD ONLY. HOWEVER, WITH SOME WORK THEY CAN PROBABLY BE ADAPTED TO WORK ON MOST INTEL NETWORK CARDS.
First step, boot off Ubuntu 16.04 LTS Desktop CD, run terminal and the following commands.
http://www.ubuntu.com/download/desktop
TO LOCATE ethX:
ifconfig
TO BACKUP EEPROM (DO THIS!):
ethtool -e ethX raw on > ethX.bin
COMMAND WE NEED TO USE TO CHANGE OFFSET VALUES:
ethtool -E ethX magic 0x<device id><vendor id> offset 0x<offset> value 0x<value>
TO DETERMINE VENDOR, DEVICE AND SUBSYSTEM IDs:
lspci -nn -vvv | grep Ethernet
01:00.0 Ethernet controller [0200]: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection [8086:10fb] (rev 01)
Subsystem: Intel Corporation Ethernet Server Adapter X520-2 [8086:7a11]
01:00.1 Ethernet controller [0200]: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection [8086:10fb] (rev 01)
Subsystem: Intel Corporation Ethernet Server Adapter X520-2 [8086:7a11]
NOW, TO FIND THE RELEVANT OFFSETS!
Intel datasheet linked above states the following, but it doesn't seem to apply to my card:
PCIe Sub-System ID - Offset 0x08
Bits:15:0
Name:Sub System ID
Default: 0x0
By running the following command and eyeballing the offsets I've discovered that these are the two values on my Intel X520-DA2 card:
ethtool -e eth1 | less
"0x0320: 03 00 1f 00 00 00 00 2b 03 13 11 7a 86 80 a6 10"
So, if we start at offset 0x0320 you would count 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f for each pair of digits.
The values we need to change are 11 at 0x032a and 7a at 0x032b. We can remove the 0 to shorten to 0x32a and 0x32b
So, for an Intel X520-DA2 (8086:10fb), to set subsys ID of 0x000a we would run:
sudo ethtool -E eth1 magic 0x10fb8086 offset 0x32a value 0x0a
sudo ethtool -E eth1 magic 0x10fb8086 offset 0x32b value 0x00
sudo ethtool -E eth2 magic 0x10fb8086 offset 0x32a value 0x0a
sudo ethtool -E eth2 magic 0x10fb8086 offset 0x32b value 0x00
In order to allow the ethtool to write to the EEPROM you need the magic value specific to your card, which is: 0x<device id><vendor id>
The command below will show these values:
lspci -nn -vvv | grep Ethernet
NOTE these are not the Subsystem values, they are the device and vendor IDs, in this case 10fb and 8086.
Here's a useful reference:
http://pci-ids.ucw.cz/read/PC/8086
Reboot and done!
Last edited: