Intel i225-V/LM NVM 1.94 FW


The reason I tried to flash the newer version of nvm was because the NICs were causing problems with proxmox, the cards have suddenly dropped out under heavy load or have caused a kernel panic in network driver.

The only way I could keep the ports stable with the 1.89fw version was by running the commands.

/sbin/ethtool -K enp3s0 tso off gso off gro off

Intel said they released i225-V firmware, but this firmware seems to be impossible to find on Intel’s website.

I only got the i225-LM firmware from this link, although Intel’s support says that you can get all i225 firmwares https://www.intel.com/content/www/us/en/download/15084/intel-ethernet-adapter-complete-driver-pack.html

Because I couldn’t find that v1.94 i225-V firmware, I decided to investigate what the difference is with the older Lenovo v1.89 LM/V firmware and I noticed that the firmwares are exactly the same except for 3 points in the firmware that changed.

So I changed v1.94 to match the 1.89 version, Upper F3 refers to that device identifier 15F3 because in the LM version it’s 15F2 and in the V version it’s 15F3 so the lower ones are probably firmware version numbers, FC is ETrackID versio. I’m not sure if that need any modification but I modified that to same as lenovo 1.89fw and same with DD to keep with same numbers that 1.89 easier flashback when versions don´t change.

The next step was to try to flash the modded firmware to the Chinese n5105 device where those i225-v network ports are.

By downloading that Intel package you will find those firmware update tools

Below is a screenshot showing the 1.89 version

./nvmupdate64e -i -l

The next question was how to get that tool to install that modded version, for that you had to move the firmware to that folder and update nvmupdate.cfg to match the current firmware file and device.

I just copied the existing one and changed the subvendor, subdevice and EEPID information a bit and that still didn’t work, so I needed add “IMAGE DOWNGRADE: TRUE” line. maybe because i changed the ETrackID and the DD to same as lenovo 1.89fw.

This added nvmupdate.cfg
; NIC device
BEGIN DEVICE
DEVICENAME: Foxpond1_I225_15F2_V_1MB_1p94_800003FC
VENDOR: 8086
DEVICE: 15F3
SUBVENDOR: 17AA
SUBDEVICE: 22D8
NVM IMAGE: Foxpond1_I225_15F3_V_1MB_1p94.bin
EEPID: 800003FC
EEPROM MAP: Foxpond_Map_File_v01.txt
RESET TYPE: REBOOT
IMAGE DOWNGRADE: TRUE
END DEVICE

In Linux, use the command below after editing the cfg file, it should automatically recognize each i225-V and give you the option to flash all at once or just one and take a backup of the nic.
./nvmupdate64e

The flasher gave an error message at the end, but still flashed that port. At first I just flashed one port so that all the ports wouldn’t die at once if that didn’t work. After restarting, the port seemed to work normally, so I flashed the rest of the ports as well.

The lower picture shows all the ports of the second n5105 flashed (rev 01)

After flashing both machines it was time to test whether I can turn TSO GRO GSO back on, for the first time I can take backups from a 500GB vm machine without the network port giving a kernel panic.

This still requires further testing, so if you try this, do so AT YOUR OWN RISK

Below you will find the original and modded firmware files and the flasher. So all you have to do is copy the modified fw file and nvmupdate.cfg to the firmware flasher folder, if the subdevice or subvendor is different, they must be changed accordingly and maybe ETrackId.