Reviving a "Non-Updatable" Intel X550-T2 NIC (Silicom / Lenovo Variant)
I ran into a fun one with a Silicom X550-AT2 recently: a dual-port 10 GbE NIC based on Intel's X550 that's advertised as supporting 1G / 2.5G / 5G / 10G, but appeared to be non-updatable using Intel's official tools.
It turned out to be an OEM-branded Lenovo variant (device 1563) with custom subvendor IDs that the stock Intel NVM update config doesn't know about. With a bit of config editing and an older Lenovo update bundle, the card is now happily running current firmware and negotiating 2.5 GbE.
Environment and Prerequisites
- Host OS: Linux (Ubuntu live ISO recommended)
- Hardware: Silicom X550-AT2 (Lenovo-branded Intel X550-T2, device ID
1563) - Tools needed:
- Lenovo NIC update bundle:
intc-lnvgy_sw_nic_v24.1-sw-cd2_anyos_x86-64.zip - Intel Ethernet NVM Update Tool (from Intel's X550 firmware packages)
- Lenovo NIC update bundle:
Tip: Use a live USB or secondary NIC. Don't update your only network connection.
Step 1: Identify the NIC and PCI IDs
lspci -nn | grep -i ether
Expected output:
37:00.0 Ethernet controller : Intel Corporation Ethernet Controller X550-T2 [8086:1563]
37:00.1 Ethernet controller : Intel Corporation Ethernet Controller X550-T2 [8086:1563]
Run Intel's inventory tool:
sudo ./nvmupdate64e -i
Key output showing the problem:
[00:037:00:00]: Intel(R) Ethernet Controller X550-T2
Vendor : 8086
Device : 1563
Subvendor : 1374
Subdevice : 0220
NVM Version : 3.112(3.70)
NVM update : No config file entry
Step 2: Download Lenovo Update Bundle
Get the older Lenovo package:
mkdir -p ~/x550-lenovo
# Download: intc-lnvgy_sw_nic_v24.1-sw-cd2_anyos_x86-64.zip
unzip intc-lnvgy_sw_nic_v24.1-sw-cd2_anyos_x86-64.zip -d ~/x550-lenovo
cd ~/x550-lenovo
Step 3: Edit nvmupdate.cfg
nano nvmupdate.cfg
Add/modify an entry matching your IDs:
[Device0]
VendorID = 0x8086
DeviceID = 0x1563
SubVendorID = 0x1374
SubDeviceID = 0x0220
Your exact values from inventory:
Vendor: 8086
Device: 1563
Subvendor: 1374
Subdevice: 0220
Step 4: Flash Lenovo Firmware
sudo ./nvmupdate64e
Let it apply the Lenovo firmware image. Reboot:
sudo reboot
Verify:
sudo ./nvmupdate64e -i
Step 5: Update to Latest Intel Firmware
Download Intel's latest X550 package and extract:
mkdir -p ~/x550-intel
unzip <intel-package>.zip -d ~/x550-intel
cd ~/x550-intel
sudo ./nvmupdate64e
Reboot again:
sudo reboot
Step 6: Verify Success
Final inventory shows clean detection:
NVM Version : 3.112(3.70)
checksum : Valid
PXE : 2.4.45, checksum Valid
EFI : 8.1.0
Check link speed:
sudo ethtool eno1
Supported link modes: 1000baseT/Full 2500baseT/Full 5000baseT/Full 10000baseT/Full
Speed: 2500Mb/s
Duplex: Full
Why This Works
OEM X550 cards use custom SubVendor/SubDevice IDs that Intel's generic config ignores. Lenovo's older bundle knows these OEM IDs.
The process:
- Lenovo updater → gets card to "standard" firmware state
- Intel updater → applies latest official firmware
Notes and Warnings
- Backup access: Have console/IPMI or secondary NIC
- Don't mix: Only use X550-T2 firmware images
- IDs matter: Double-check your exact PCI values
- Works for: Silicom X550-AT2, Lenovo 1563, similar OEM rebrands
Now your "non-updatable" X550 runs current firmware with full 2.5G/10G support. No more e-waste!
💬 Comments Setup Required
To enable comments on your blog:
.env.localfile: