19 - Intel i226/i225 Firmware Update

This note is a little disjointed at the moment - but it has most of the info needed to go about updating your firmware drivers for the Intel i226/i225. These two controllers are widely known on the OPNSense forums to cause problems and I encourage reading about further tunables there if you continue to experience issues (see the resources at the bottom).

I will try and clean this post up later - but here it is for now …

#############################################

LAN MACs for the CWWK N305 (attempting to update them):

A8B8E007830B

A8B8E007830C

A8B8E007830D

A8B8E007830E

It worked! You can try updating a single NIC by MAC address with the 1MB, if the log shows that it failed you can try again with the 2MB.

In my instance, the 1MB failed but it worked when I tried again with the 2MB!

#####################################################

Not sure if you are using i226-V NICs or lost your datasheet/specs?

#####################################################

Run this command to check:

$> sysctl -a | grep -E ‘I226’

[1] igc0: <Intel(R) Ethernet Controller I226-V> mem 0x80e00000-0x80efffff,0x80f00000-0x80f03fff irq 18 at device 0.0 on pci2
[1] igc1: <Intel(R) Ethernet Controller I226-V> mem 0x80b00000-0x80bfffff,0x80c00000-0x80c03fff irq 16 at device 0.0 on pci3
[1] igc2: <Intel(R) Ethernet Controller I226-V> mem 0x80800000-0x808fffff,0x80900000-0x80903fff irq 17 at device 0.0 on pci4
[1] igc3: <Intel(R) Ethernet Controller I226-V> mem 0x80500000-0x805fffff,0x80600000-0x80603fff irq 18 at device 0.0 on pci5
dev.igc.3.%desc: Intel(R) Ethernet Controller I226-V
dev.igc.2.%desc: Intel(R) Ethernet Controller I226-V
dev.igc.1.%desc: Intel(R) Ethernet Controller I226-V
dev.igc.0.%desc: Intel(R) Ethernet Controller I226-V

#####################################################

nvm.cfg

#####################################################

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.32.bin     ; EDIT - match this if a different version
EEPID: 80000422							; EDIT - match the version you are updating to
RESET TYPE: REBOOT
REPLACES: 80000284						; EDIT - match output from the inventory check
END DEVICE

#####################################################

nvm.log

#####################################################

$> ./nvmupdate64e -b -l nvm.log -m A8B8E007830E -f -u -c nvm.cfg

Intel(R) Ethernet NVM Update Tool
NVMUpdate version 1.43.28.0
Copyright(C) 2013 - 2025 Intel Corporation.

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

Config file read.
Inventory
[00:005: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.
    OROM inventory started.
    OROM inventory finished.
Update
[00:005:00:00]: Intel(R) Ethernet Controller I226-V
    Creating backup images in directory: A8B8E007830E.
    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.
Update security revisions
[00:005:00:00]: Intel(R) Ethernet Controller I226-V
    Skipping update minimum security revisions.
Update VPD with VPD template
[00:005:00:00]: Intel(R) Ethernet Controller I226-V
    Skipping VPD update with VPD template.
Checking update availability for next tool run.
A reboot is required to complete the update process.

#####################################################

output.txt

#####################################################

You can get more information about your I226-V NICs with the following command:

$> ./nvmupdate64e -i -l output.txt

Intel(R) Ethernet NVM Update Tool
NVMUpdate version 1.43.28.0
Copyright(C) 2013 - 2025 Intel Corporation.

./nvmupdate64e -i -l output.txt

Config file will not be read.
Inventory
[00:001:00:00]: Intel(R) 82599 10 Gigabit Dual Port Network Connection
    EEPROM inventory started.
    EEPROM inventory finished.
[00:001:00:01]: Intel(R) 82599 10 Gigabit Dual Port Network Connection
    Device already inventoried.
[00:002: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.
    OROM inventory started.
    OROM inventory finished.
[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.
    OROM inventory started.
    OROM inventory finished.
[00:004: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.
    OROM inventory started.
    OROM inventory finished.
[00:005: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.
    OROM inventory started.
    OROM inventory finished.
[00:001:00:00]: Intel(R) 82599 10 Gigabit Dual Port Network Connection
    Vendor                 : 8086
    Device                 : 10FB
    Subvendor              : FFFF
    Subdevice              : FFFF
    Revision               : 1
    LAN MAC                : A8B8E007893F
    Alt MAC                : A8B8E007893F
    SAN MAC                : FFFFFFFFFFFF
    ETrackId               : 800003DE
    SerialNumber           : A8B8E0FFFF07893F
    EEPROM Version         : 64.34(40.22)
    PBA                    : N/A
    VPD status             : Not set
    VPD size               : 0
    EEPROM update          : No config file entry
      checksum             : Valid
[00:001:00:01]: Intel(R) 82599 10 Gigabit Dual Port Network Connection
    Vendor                 : 8086
    Device                 : 10FB
    Subvendor              : FFFF
    Subdevice              : FFFF
    Revision               : 1
    LAN MAC                : A8B8E0078940
    Alt MAC                : A8B8E0078940
    SAN MAC                : FFFFFFFFFFFF
    ETrackId               : 800003DE
    SerialNumber           : A8B8E0FFFF07893F
    EEPROM Version         : 64.34(40.22)
    PBA                    : N/A
    VPD status             : Not set
    VPD size               : 0
    EEPROM update          : No config file entry
      checksum             : Valid
[00:002:00:00]: Intel(R) Ethernet Controller I226-V
    Vendor                 : 8086
    Device                 : 125C
    Subvendor              : 8086
    Subdevice              : 0000
    Revision               : 4
    LAN MAC                : A8B8E007830B
    Alt MAC                : 000000000000
    SAN MAC                : 000000000000
    ETrackId               : 80000284
    SerialNumber           : A8B8E0FFFF07830B
    NVM Version            : 2.19(2.13)
    PBA                    : G23456-000
    VPD status             : Not set
    VPD size               : 0
    NVM update             : No config file entry
      checksum             : Valid
    OROM update            : No config file entry
      CIVD                 : 0.0.0
      EFI                  : 0.1.1, checksum None
[00:003:00:00]: Intel(R) Ethernet Controller I226-V
    Vendor                 : 8086
    Device                 : 125C
    Subvendor              : 8086
    Subdevice              : 0000
    Revision               : 4
    LAN MAC                : A8B8E007830C
    Alt MAC                : 000000000000
    SAN MAC                : 000000000000
    ETrackId               : 80000284
    SerialNumber           : A8B8E0FFFF07830C
    NVM Version            : 2.19(2.13)
    PBA                    : G23456-000
    VPD status             : Not set
    VPD size               : 0
    NVM update             : No config file entry
      checksum             : Valid
    OROM update            : No config file entry
      CIVD                 : 0.0.0
      EFI                  : 0.1.1, checksum None
[00:004:00:00]: Intel(R) Ethernet Controller I226-V
    Vendor                 : 8086
    Device                 : 125C
    Subvendor              : 8086
    Subdevice              : 0000
    Revision               : 4
    LAN MAC                : A8B8E007830D
    Alt MAC                : 000000000000
    SAN MAC                : 000000000000
    ETrackId               : 80000284
    SerialNumber           : A8B8E0FFFF07830D
    NVM Version            : 2.19(2.13)
    PBA                    : G23456-000
    VPD status             : Not set
    VPD size               : 0
    NVM update             : No config file entry
      checksum             : Valid
    OROM update            : No config file entry
      CIVD                 : 0.0.0
      EFI                  : 0.1.1, checksum None
[00:005:00:00]: Intel(R) Ethernet Controller I226-V
    Vendor                 : 8086
    Device                 : 125C
    Subvendor              : 8086
    Subdevice              : 0000
    Revision               : 4
    LAN MAC                : A8B8E007830E
    Alt MAC                : 000000000000
    SAN MAC                : 000000000000
    ETrackId               : 80000284
    SerialNumber           : A8B8E0FFFF07830E
    NVM Version            : 2.19(2.13)
    PBA                    : G23456-000
    VPD status             : Not set
    VPD size               : 0
    NVM update             : No config file entry
      checksum             : Valid
    OROM update            : No config file entry
      CIVD                 : 0.0.0
      EFI                  : 0.1.1, checksum None

#####################################################

Enable intel microcode updates:

https://docs.opnsense.org/manual/cpu-microcode.html 

The forum page where everyone tracked and documented the process:

https://forum.opnsense.org/index.php?topic=48695.30 

The github repo with the driver updates by model and size:

https://github.com/BillyCurtis/Intel-i226-V-NVM-Firmware?tab=readme-ov-file#readme

The how-to guide for the updater:

http://tmei-net.com/technology-sharing/how-do-use-intel-ethernet-nvm-update-tool.html

The update tool download:

https://www.intel.com/content/www/us/en/download/18190/non-volatile-memory-nvm-update-utility-for-intel-ethernet-network-adapter-700-series.html?product=84329