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

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

Previous topic - Next topic
September 10, 2025, 12:46:16 AM #30 Last Edit: September 10, 2025, 08:57:56 AM by BrandyWine
Quote from: meyergru on September 10, 2025, 12:24:54 AMI only noted that, because your nvmupdate.cfg listed only 15F2 for the I225-V.
SEE POST #39
I see why.
I didn't note it was -V, but neither did the NVM folder from where it came from., edit: my bad, the nvm folder from the 34.0 download bundle uses "15F2" in bin filenames, indicating the LM version.
It does get confusing.
I pulled that cfg file from the Intel 34.0 download bundle, from the 225 Linux gz, and no where in there does it say it's for -V or -LM )other than bin filenames have "15F2" in them and the 1MB file also has "_LM", etc.
It ID's 15F2, so I would suspect it's for the -LM 225.
Intel does docs kinda weird, it may be listed in the Release notes for 34.0 what 225's 34.0 has.

The actual Device Name in cfg is said to be just for admin reference only (from that tutorial). Is there really any nic device named "FoxPond1_I225_15F2_2MB_1p94_800003BB"? Likely not. I think the NVM util matches on vendor/device/subvendor/subdevice.

DEVICENAME: xxxx
    [Optional] The branding string of the device. This is only used to make the file easier to read; it is not processed by the tool.


And the 225 LMvP 5502, not sure if there's a 226 LMvP

September 10, 2025, 06:05:40 AM #33 Last Edit: September 10, 2025, 08:10:27 AM by BrandyWine
SEE POST #39

My update is failing, but the bkup bin is a 2MB bin
-r--------  1 root wheel 2097152 Sep 10 03:53 00E0B468DCBC.bin

exit status 6
"An error occurred when updating a firmware module.", nice and meaningful. ;)

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

./nvmupdate64e -b -l nvm.log -m 00E0B468DCBC -f -u -c nvm.cfg

log file
Quote# more nvm.log
Intel(R) Ethernet NVM Update Tool
NVMUpdate version 1.43.20.0
Copyright(C) 2013 - 2025 Intel Corporation.

./nvmupdate64e -b -l nvm.log -m 00E0B468DCBC -f -u -c nvm.cfg

Config file read.
Inventory
[00:003:00:00]: Intel(R) Ethernet Controller I226-V
        Alternate MAC address is not set.
        Flash inventory started.
        Shadow RAM inventory started.
        Shadow RAM inventory finished.
        Flash inventory finished.
Update
[00:003:00:00]: Intel(R) Ethernet Controller I226-V
        Creating backup images in directory: 00E0B468DCBC.
        Backup images created.
        Flash update started.
Error:          Flash update failed.
        Device update failed.
Update security revisions
[00:003:00:00]: Intel(R) Ethernet Controller I226-V
        Skipping update minimum security revisions.
Update VPD with VPD template
[00:003:00:00]: Intel(R) Ethernet Controller I226-V
        Skipping VPD update with VPD template.

Quote from: BrandyWine on September 10, 2025, 06:05:40 AMMy update is failing, but the bkup bin is a 2MB bin


Your update is failing because it requires the 1MB BIN file. EtrackID 80000308 corresponds to a 1MB image, but you're attempting to flash a 2MB BIN file instead. Keep in mind that backups created with eeupdate64e/nvmupdate64e are always 2MB in size, even when the actual firmware is only 1MB.

I've also added the EtrackIDs for all BIN files to my GitHub README for reference.

September 10, 2025, 07:02:05 AM #35 Last Edit: September 10, 2025, 07:04:09 AM by BrandyWine
Quote from: BillyCurtis on September 10, 2025, 06:42:42 AM
Quote from: BrandyWine on September 10, 2025, 06:05:40 AMMy update is failing, but the bkup bin is a 2MB bin


Your update is failing because it requires the 1MB BIN file. EtrackID 80000308 corresponds to a 1MB image, but you're attempting to flash a 2MB BIN file instead. Keep in mind that backups created with eeupdate64e/nvmupdate64e are always 2MB in size, even when the actual firmware is only 1MB.

I've also added the EtrackIDs for all BIN files to my GitHub README for reference.
Thanks for joining, thanks for the update. I will now try and flash the 1MB bin.
Are there any release notes for the versions, and, silly tool only logs err as "error", and not an actual error like "image too large for eeprom".

September 10, 2025, 07:09:24 AM #36 Last Edit: September 10, 2025, 07:11:50 AM by BillyCurtis
Quote from: BrandyWine on September 10, 2025, 06:05:40 AMAre there any release notes for the versions, and, silly tool only logs err as "error", and not an actual error like "image too large for eeprom".


No i don't have any release notes. but if you was to use eeupdate64e instead of nvmupdate64e. when trying to flash a 2MB bin file onto a 1MB NIC it would give an error saying "Shared Flash image update FAILED! Flash index is bad or out of range"

September 10, 2025, 07:15:53 AM #37 Last Edit: September 10, 2025, 07:35:16 AM by BrandyWine
Quote from: BillyCurtis on September 10, 2025, 07:09:24 AM
Quote from: BrandyWine on September 10, 2025, 06:05:40 AMAre there any release notes for the versions, and, silly tool only logs err as "error", and not an actual error like "image too large for eeprom".


No i don't have any release notes. but if you was to use eeupdate64e instead of nvmupdate64e. when trying to flash a 2MB bin file onto a 1MB NIC it would give an error saying "Shared Flash image update FAILED! Flash index is bad or out of range"

Does eeupdate64e run on freeBSD 14.3?

The 2.32 1MB flash went good.
[1] igc2: <Intel(R) Ethernet Controller I226-V> mem 0x80000000-0x800fffff,0x80100000-0x80103fff at device 0.0 on pci3
[1] igc2: EEPROM V2.32-0 eTrack 0x80000425

Update
[00:003:00:00]: Intel(R) Ethernet Controller I226-V
        Creating backup images in directory: 00E0B468DCBC.
        Backup images created.
        Flash update started.
        NVM verification started.
        Shadow RAM verification started.
        Shadow RAM verification finished.
        Flash verification started.
        Flash verification finished.
        NVM verification finished.
        Flash update successful.
        Device update successful.

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_1MB_2.32.bin
EEPID: 80000425
RESET TYPE: REBOOT
REPLACES: 80000308
END DEVICE

./nvmupdate64e -b -l nvm.log -m 00E0B468DCBC -f -u -c nvm.cfg

Quote from: BrandyWine on September 10, 2025, 06:05:40 AMDoes eeupdate64e run on freeBSD 14.3?


I have no clue since I've never used freeBSD

September 10, 2025, 07:50:55 AM #39 Last Edit: September 10, 2025, 06:11:37 PM by BrandyWine
Ahh, complete.

I226-V
Use 1MB bin file (It's Billy Curtis bin, not direct from Intel) Note: some 226-V's appear to show etid for 2MB bin, in that case try 2MB bin, and if that fails then try the 1MB bin. I am looking for a way to identify 1M vs 2M prom from cli.
Reference: https://github.com/BillyCurtis/Intel-i226-V-NVM-Firmware?tab=readme-ov-file#readme
Thanks to Billy Curtis for chiming in on OPNsense forum (https://forum.opnsense.org/index.php?topic=48695)

This README with the util and 1MB 2.32 bin can be obtained from:
https://intel226bucket.s3.us-east-1.amazonaws.com/i226.zip
1) This README file
2) Billy Curtis i226-V v2.32 1MB bin
3) Example nvm.cfg file
4) nvmupdate64e util from the Intel 34.0 download bundle
5) Intel doc on using nvmupdate64e


This section w/o the hashes is the nvm.cfg file, modify for your hardware.
This same cfg is included in the zip as "nvm.cfg" that you modify as needed.
#########################
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_1MB_2.32.bin
EEPID: 80000425
RESET TYPE: REBOOT
REPLACES: 80000308
END DEVICE
##########################

Util Reference: http://tmei-net.com/technology-sharing/how-do-use-intel-ethernet-nvm-update-tool.html
This util command targets a specific device by MAC address.
./nvmupdate64e -b -l nvm.log -m 00E0B468DCBC -f -u -c nvm.cfg

Three questions:

1. Did you successfully flash your I226-V (i.e.: does it still work and show the new version)?
2. Is it possible to flash back an old version?
3. Do you need to modify the "REPLACES" ETrackID in order to match the existing ID?
Intel N100, 4* I226-V, 2* 82559, 16 GByte, 500 GByte NVME, ZTE F6005

1100 down / 800 up, Bufferbloat A+

September 10, 2025, 03:38:34 PM #41 Last Edit: September 10, 2025, 06:16:41 PM by BrandyWine
Quote from: meyergru on September 10, 2025, 09:30:44 AMThree questions:

1. Did you successfully flash your I226-V (i.e.: does it still work and show the new version)?
2. Is it possible to flash back an old version?
3. Do you need to modify the "REPLACES" ETrackID in order to match the existing ID?

Yes, mine flashed ok (post #37). I flashed to a unused nic, so now I need to move a cable and cfg OPNsense to move my LAN to the v2.32 nic, etc. I do that tonight.

You can downgrade, and the etid and Replaces in cfg is optional. Having etid Replaces in cfg limits what the tool will match. No etid and the tool pulls it from the bin file. That tutorial doc explains it. If you have a unused 226 it's best to start playing there, upgrade, downgrade, use different cfg options, etc.

 


September 10, 2025, 05:49:43 PM #43 Last Edit: September 10, 2025, 05:57:07 PM by meyergru
How about specifying some parameters, like the ones Brandywine provided? And remember: this is bleeding-edge stuff, so caveat emptor.

You probably will fry your hardware if you just execute commands indiscriminately like that...
Intel N100, 4* I226-V, 2* 82559, 16 GByte, 500 GByte NVME, ZTE F6005

1100 down / 800 up, Bufferbloat A+

September 10, 2025, 06:09:06 PM #44 Last Edit: September 10, 2025, 06:17:37 PM by BrandyWine
Quote from: yeraycito on September 10, 2025, 05:35:34 PMNot working
Not working is expected in your case, you need util parameters and a cfg file.
If the i226-V is a 1M prom and is currently running v2.17 nvm, then the download I provided should work as-is. If the hardware or versions are anything different then it's on you to modify the cfg file accordingly. This community forum can help.

Users should not attempt to flash anything w/o 1st reading the documentation provided.
I also recommend to target an unused 226-V nic if possible.

Do you know how to use $? , need that right after the command fail, then lookup that err code in the tutorial post #39.

Follow the steps in post #39, which are specific to 226-V 1M prom, but can also be used as template for the 200 series.