[solved] Intel i226 Firmware (see post #39)

Started by BrandyWine, August 31, 2025, 05:21:07 PM

Previous topic - Next topic
September 06, 2025, 06:01:24 AM #15 Last Edit: September 06, 2025, 06:50:35 AM by BrandyWine
I am not 100% certain, but it seems the 226V/LM/IT are same controller with different firmware.

Almost all (if not all) of the low-end stuff that has 226 will have 226V. LM IT seems to be reserved for integrators that are registered with Intel at a certain level, more of an enterprise outfit.

Which rev 226 do you have "lspci"

I have rev4
Ethernet controller: Intel Corporation Ethernet Controller I226-V (rev 04)





Mini-pc N150 i226v x520, FREEDOM

September 06, 2025, 11:48:49 PM #16 Last Edit: September 06, 2025, 11:53:26 PM by BrandyWine
Some more tidbit info.

Find your 226 eeprom version "dmesg | grep igc"

Mine is 2.17-0

But looking for 226 info I come across a page where a Intel support person says "Upon checking, the latest NVM version for I226 is 2.25 and for I225 is 1.94."
That's from 2-13-2024
Reference: https://community.intel.com/t5/Ethernet-Products/I225-226-series-network-card-and-a-strange-mofcomp-or-reinstall/m-p/1572142

We need to find the latest for 226-V.

This is a 2nd online post I have seen where someone says the 226-V faults when under high load, note the version.
QuoteI have an Asus rugged board nuc (NUC13BRK) with two onboard Intel I226-V NICs with firmware version 2.17 that are getting random disconnects under load, and that are not working as I'd expect from quality Intel NICs under latest FreeBSD 14.2

So, every time I go and try and find updates for 226, I find recent Intel packages like this one below that covers lots of controllers, but never anything for 226 ?
I might be suspecting silicon issues with 226 and because of that Intel is not making updates.

Reference: https://www.intel.com/content/www/us/en/download/15755/intel-ethernet-connections-boot-utility-preboot-images-and-efi-drivers.html?product=1140
Mini-pc N150 i226v x520, FREEDOM

Quote from: BrandyWine on September 06, 2025, 11:48:49 PMBut looking for 226 info I come across a page where a Intel support person says "Upon checking, the latest NVM version for I226 is 2.25 and for I225 is 1.94."
That's from 2-13-2024
Reference: https://community.intel.com/t5/Ethernet-Products/I225-226-series-network-card-and-a-strange-mofcomp-or-reinstall/m-p/1572142

We need to find the latest for 226-V.
[...]

What tree are you actually barking at?

I just got a brand new system with:
igc0: <Intel(R) Ethernet Controller I226-V> mem 0x80800000-0x808fffff,0x80900000-0x80903fff at device 0.0 on pci1
igc0: EEPROM V2.25-0 eTrack 0x800003ad

So if that is the latest firmware it is the latest firmware.

I run it with FreeBSD 14.3, LACP across 2 ports, VLANs on top of that - absolutely no problem whatsoever.

So what really is the issue?

Kind regards,
Patrick
Deciso DEC750
People who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)

September 07, 2025, 05:00:51 AM #18 Last Edit: September 07, 2025, 07:38:15 PM by BrandyWine
Ok, where can I get a NVM v2.25 ?
There wouldn't be anything past my 2.17 unless there was some fixing or some features added.

Your v2.25 is at least 19mo old, possibly older. My 2.17, from a device I just got recently, is way old NVM. I don't know if Intel flashes them before batch packaging, makes sense they would so that the end user (integrator) just needs to install it w/o worry of having to flash every device they install. My mini pc I just got is using 226's that are probably years old. When we upgrade OPNsense, which sometimes comes with newer OS and many times updated drivers in that OS, having updated hardware makes sense.

There's a lot of complaints going around with 226 and fbsd 14.3. There was some updating to igc in 14.3, so probably not working well with older NVM when using specific features. My mini pc is running ok, but I am not using a lot of features nor pushing it hard on network side.

If I can find an actual Intel v2.25 nvm, I will flash that to the nic chips (I have three 226's)

I need to contact Billy Curtis and ask about his posted i226 bin files. He has posted v2.27 and v2.32, two revs past your v2.25.
https://github.com/BillyCurtis/Intel-i226-V-NVM-Firmware


EDIT: From another usre post here on OPNsense forums, the version you see from "dmesg | grep [driver]" is showing in hex. Hence, v2.25 is hex 2.25, or 2.37 in decimal. So the actual version is 37. No matter what base we count in, it's going up. My 2.17 is actual version 2.23(decimal).
Mini-pc N150 i226v x520, FREEDOM

Here's all the NVM's in one zip file from Billy Curtis git page
https://github.com/BillyCurtis/Intel-I226-V-NVM-Firmware/archive/refs/heads/main.zip

I am trying to find at least one NVM version sourced from Intel to see if MD5/SHA will match what B.C. has posted, as a way to see if his posting of bin's are the real deal.

If any readers here have Intel link to any of the 226 NVM's, please post it.
Mini-pc N150 i226v x520, FREEDOM

Ok, some more progress, seems I have found a legit NVM v2.25
I found v2.25 2MB bin from VERSA site (https://support.versa-networks.com/support/solutions/articles/23000028082-csg150-i226-nic-nvm-update)
It's name is "FXVL_125C_V_2MB_2.25.bin"

This same bin is in the Billy Curtis download, same name.

When I MD5 them, same hash !!

I am confident this v2.25 is legit.
You can do the same to verify my data. I just added VERSA and BC to the filename to make distinction.

PS C:\Users\RiceCake\Downloads\i226> Get-FileHash .\* -Algorithm MD5

Algorithm       Hash                                                                   Path
---------       ----                                                                   ----
MD5             8198F8062CD702C89FF42153B306886C                                       C:\Users\RiceCake\Downloads\i226\FXVL_125C_V_2MB_2.25.BC.bin
MD5             8198F8062CD702C89FF42153B306886C                                       C:\Users\RiceCake\Downloads\i226\FXVL_125C_V_2MB_2.25.VERSA.bin

Mini-pc N150 i226v x520, FREEDOM

September 07, 2025, 08:39:30 PM #21 Last Edit: September 10, 2025, 08:42:23 AM by BrandyWine
SEE POST #39

Here's a file grab.

An i226 bundle as a zip (https://intel226bucket.s3.us-east-1.amazonaws.com/i226.zip)
You can download to Windows and look at it, you can "curl -O https://intel226bucket.s3.us-east-1.amazonaws.com/i226.zip" from opnsense fw to get it onto the fw.
You can also just go grab all these files on your own.

In zip you will find:
1) The full set of Billy Curtis 1MB and 2MB NVM bin files, I believe they are all legit Intel bins
2) The v2.25 2MB bin from VERSA (same MD5 as the Billy Curtis v2.25 2MB bin)
3) the nvmupdate64e util for freeBSD (obtained from Intel 34.0 bundle download)
4) "Foxpond_Map_File_v01.txt" taken from the Intel 34.0 bundle download, from the i225 NVM folder for freeBSD
5) "nvmupdate.cfg" taken from the Intel 34.0 bundle download, from the i225 NVM folder for freeBSD
6) "333909_NVMUpdateTool-FreeBSD_Rev1.4.pdf" is Intel's how-to-use the nvmupdate64e utility
7) and a "readme" file from the Intel bundle, just shows some info about using nvmupdate64e util

Would need to modify #4 and #5 for the i226, which I am looking into.


And as noted in the PDF, you can update devices individually, so since I have three 226's on my mini PC and I am only using two know, I will muck around with the 3rd one to update it's NVM, and then move my LAN or WAN to that 3rd nic. So we have room to play.
Mini-pc N150 i226v x520, FREEDOM

September 09, 2025, 07:27:18 AM #22 Last Edit: September 10, 2025, 08:45:05 AM by BrandyWine
Quote from: Patrick M. Hausen on September 06, 2025, 11:59:51 PMigc0: EEPROM V2.25-0 eTrack 0x800003ad

TY Patrick. I needed the 2.25 eTrack ID for 226 cfg file.

Here's what I learned today. NVM v2.17 was confirmed as being a problem NVM, dropping connection stuff. I don't know if prior NVM's had same issue or not. I am running v2.17(hex), so I need to upgrade, will go v2.25 or newer.

Here's the start of cfg file, main section is still i225, but the eeprom up top if for i226

SEE POST #39

EEPROM V2.17-0 eTrack 0x80000308
EEPROM V2.25-0 eTrack 0x800003ad


CURRENT FAMILY: 1.0.0
CONFIG VERSION: 1.20.0

; NIC device
BEGIN DEVICE
Mini-pc N150 i226v x520, FREEDOM

There are at least these unknowns:

1. Which SUBDEVICE maps to which size version (for I225, we can see it is 2 = 1 MByte and 1 = 2 MByte, but I know that SUBDEVICE 0 exists for I226-V, see below).
2. The MAP file pointer offsets for I226.
3. Any older eTrack IDs for each of the 2.13, 2.14, 2.17, 2.22, 2.25, 2.27 and 2.32 versions that obviously exist.

I added 2.13, because I have that:

[1] igc0: EEPROM V2.13-0 eTrack 0x80000284

igc0@pci0:2:0:0:        class=0x020000 rev=0x04 hdr=0x00 vendor=0x8086 device=0x125c subvendor=0x8086 subdevice=0x0000
    vendor     = 'Intel Corporation'
    device     = 'Ethernet Controller I226-V'
    class      = network
    subclass   = ethernet

On another machine, I saw this (also with subdevice 0):

[1] igc0: EEPROM V2.14-0 eTrack 0x80000290


On a side note, I225-V is not always DEVICE 15F2:

[1] igc0: EEPROM V1.57-0 eTrack 0x80000185

igc0@pci0:2:0:0:        class=0x020000 rev=0x03 hdr=0x00 vendor=0x8086 device=0x15f3 subvendor=0x8086 subdevice=0x0000
    vendor     = 'Intel Corporation'
    device     = 'Ethernet Controller I225-V'
    class      = network
    subclass   = ethernet
Intel N100, 4* I226-V, 2* 82559, 16 GByte, 500 GByte NVME, ZTE F6005

1100 down / 800 up, Bufferbloat A+

September 09, 2025, 03:47:20 PM #24 Last Edit: September 10, 2025, 05:41:14 AM by BrandyWine
Great info.
I am not 100% if 226V is 1MB or 2MB. Online docs say most 226's are 2MB versions but 1MB does exist. Will need to investigate subdevice number. Mine is the 00000. I will flash my igc2 that I am not usins with the 2MB bin and see what happens, if there's only 1MB prom then it's gonna complain, etc.

Edit: from some intel docs, the 2MB version of i226 has extra features, PXE being one of them. If your 226 has PXE then it has to be the 2MB version. 226-V is bottom barrel, 226-IT 226-LM are the "more advanced" chips, perhaps just because they support more features, which presumably means a 2MB prom.

Here's almost-done cfg file, need to investigate the map file, the one listed below is the 225 map file but it only has alt MAC entry.
Map file is optional.

I might take bin file into a better tool like Ghidra to investigate it further.

Here's a must read tutorial on using nvmupdate64e util (http://tmei-net.com/technology-sharing/how-do-use-intel-ethernet-nvm-update-tool.html)
To avoid any non-expected updating of all 3 of my 226's, I will use the MAC switch, and the same MAC must be in the cfg file, this limits what can be updated.

Also, the must read tutorial suggests cfg file not need etid as the took should pull etid from the bin file.

EEPROM Map file is not needed.

cfg starts at "CURRENT FAMILY", the stuff above that is just nic info. etid is that last two hex values.

EEPROM V1.57-0 eTrack 0x8000[b]0185[/b] for i225-V , post #23
EEPROM V2.13-0 eTrack 0x8000[b]0284[/b] i226V
EEPROM V2.14-0 eTrack 0x8000[b]0290[/b] i226V
EEPROM V2.17-0 eTrack 0x8000[b]0308[/b] i226V
EEPROM V2.25-0 eTrack 0x8000[b]03ad[/b] i226V

<Instance vendor="8086" device="125C" subdevice="0000" subvendor="8086" bus="2" dev="0" func="0" PBA="G23456-000" port_id="Port 1 of 1" display="Intel(R) Ethernet Controller I226-V">
                <Module type="NVM" version="80000308" update="0">


CURRENT FAMILY: 1.0.0
CONFIG VERSION: 1.20.0

; NIC device
BEGIN DEVICE
DEVICENAME: Intel(R) Ethernet Controller I226-V
VENDOR: 8086
DEVICE: 125C
SUBVENDOR: 8086
SUBDEVICE: 0000
NVM IMAGE: FXVL_125C_V_2MB_2.25.VERSA.bin
EEPID: 800003ad
RESET TYPE: REBOOT
REPLACES: 80000308
END DEVICE

225 map file, looks like 11 values in the 0x37 block.
EEPROM MAP FILE VERSION: 1.0.0
 
BEGIN OVERWRITE
            BEGIN POINTER
                        0x37 0x00 ;Alternate MAC Address value 0
                        0x37 0x01 ;Alternate MAC Address value 1
                        0x37 0x02 ;Alternate MAC Address value 2
                        0x37 0x03 ;Alternate MAC Address value 3
                        0x37 0x04 ;Alternate MAC Address value 4
                        0x37 0x05 ;Alternate MAC Address value 5
                        0x37 0x06 ;Alternate MAC Address value 6
                        0x37 0x07 ;Alternate MAC Address value 7
                        0x37 0x08 ;Alternate MAC Address value 8
                        0x37 0x09 ;Alternate MAC Address value 9
                        0x37 0x0A ;Alternate MAC Address value 10
                        0x37 0x0B ;Alternate MAC Address value 11
            END POINTER
END OVERWRITE


Mini-pc N150 i226v x520, FREEDOM

September 09, 2025, 07:26:32 PM #25 Last Edit: September 09, 2025, 07:31:47 PM by BrandyWine
I am all set up to flash in v2.25 bin onto my unused 226 nic. Will do it later tonight. If it flashes ok then I will setup another cfg to flash in v2.32 bin.

Quote from: Patrick M. Hausen on September 06, 2025, 11:59:51 PMSo if that is the latest firmware it is the latest firmware.
I run it with FreeBSD 14.3, LACP across 2 ports, VLANs on top of that - absolutely no problem whatsoever.
For the 225/226-V chips, I think these net features (including .1q) come from outside the NVM code. I could be wrong, but the datasheet for 225/226 has a lot of "no" for net features in -V chips.
Mini-pc N150 i226v x520, FREEDOM

Following. I think I have the same miniPC as you with the same nics

September 10, 2025, 12:16:16 AM #27 Last Edit: September 10, 2025, 12:30:53 AM by BrandyWine
Quote from: raberrio on September 09, 2025, 07:30:59 PMFollowing. I think I have the same miniPC as you with the same nics
If your 226's are vendor="8086" device="125C" subdevice="0000", then yes, same devices (nics). Actual mini pc not of concern here, we are way too low level for that.

For these low budget china stuff there's a lot of "OEM to fill in" entries for various things, as seen by using dmidecode. IIRC, my 226's have missing serial numbers which I think is a field used by integrators to track their products for support reasons.
Mini-pc N150 i226v x520, FREEDOM

September 10, 2025, 12:21:05 AM #28 Last Edit: September 10, 2025, 01:21:25 AM by BrandyWine
Quote from: meyergru on September 09, 2025, 11:24:45 AMOn a side note, I225-V is not always DEVICE 15F2
Well, 225-V for all rev's are supposed to be 15F3, never 15F2. 15F2 is the LM version.






Mini-pc N150 i226v x520, FREEDOM

Quote from: BrandyWine on September 10, 2025, 12:21:05 AM
Quote from: meyergru on September 09, 2025, 11:24:45 AMOn a side note, I225-V is not always DEVICE 15F2
Well, 225-V for all rev's are supposed to be 15F3, never 15F2. 15F2 is the LM version.

I only noted that, because your nvmupdate.cfg listed only 15F2 for the I225-V.
Intel N100, 4* I226-V, 2* 82559, 16 GByte, 500 GByte NVME, ZTE F6005

1100 down / 800 up, Bufferbloat A+