2.5G Intel Ethernet Controller I225-V not working cont

Reference to [Solved] 2.5G Intel Ethernet Controller I225-V not working - #3 by verstoulouse

I am using the same X86 router with i225-V chips and after loading kmod-igc (5.4.154-1), the chips are discovered but only detected 2 out of 4 ports. I have to issue the "reboot" command in the router for it to reboot and detect all 4 ports. A power recycle on the router will not work. The error from the log shows:

igc: probe of 0000:01:00.0 failed with error -2
igc: probe of 0000:02:00.0: 4.000 Gb/s available PCIe bandwidth (5 GT/s x1 link)
igc: probe of 0000:02:00.0 eth0: MAC: xx:xx:xx:xb
igc: probe of 0000:03:00.0: 4.000 Gb/s available PCIe bandwidth (5 GT/s x1 link)
igc: probe of 0000:03:00.0 eth1: MAC: xx:xx:xx:xc
igc: probe of 0000:04:00.0 failed with error -2

After rebooting, the log shows:

igc: probe of 0000:01:00.0: 4.000 Gb/s available PCIe bandwidth (5 GT/s x1 link)
igc: probe of 0000:01:00.0 eth0: MAC: xx:xx:xx:xa
igc: probe of 0000:02:00.0: 4.000 Gb/s available PCIe bandwidth (5 GT/s x1 link)
igc: probe of 0000:02:00.0 eth1: MAC: xx:xx:xx:xb
igc: probe of 0000:03:00.0: 4.000 Gb/s available PCIe bandwidth (5 GT/s x1 link)
igc: probe of 0000:03:00.0 eth2: MAC: xx:xx:xx:xc
igc: probe of 0000:04:00.0: 4.000 Gb/s available PCIe bandwidth (5 GT/s x1 link)
igc: probe of 0000:04:00.0 eth3: MAC: xx:xx:xx:xd

Is this a bug in the kmod-igc?

BTW, for anyone who faced the same problem, I did a script to read the log and reboot the router automatically when the error is detected.

Save this script, e.g. /etc/config/igc-watch.sh. Run it with /bin/sh /etc/config/igc-watch.sh

#!/bin/sh
sig="00.0 failed with error -2"
dmesg | while read line; do
    if [ "${line#*$sig*}" != "$line" ]; then
        reboot
    fi
done

Install a package named pservice

opkg update
opkg install pservice

Edit /etc/config/pservice to have a section like the following

config pservice
    option name 'demo0'
    option command /bin/sh
    list args '/etc/config/igc-watch.sh'

Enable and start pservice

/etc/init.d/pservice enable
/etc/init.d/pservice restart

1 Like

Likely some kind of a PCIe clock/power/reset race condition. Could also be caused by them Intel chips not quite adhering to the spec. I know that at least the I210/I211 do have some such erratas. Not sure whether your platform may allow tuning any such. Anyway, in a professional setting one would hook up a logic analyser or oscilloscope to see what exactly those signals are doing in the bad and good case.

1 Like

Maybe you can try this patch,

1 Like

I am using the same X86 router with i225-V chips
@mike.see did you every figure out what the issue was? I am considering getting a 4 port box with this chipset but concerned that this popular nic driver still isn't included in the default ports and perhaps there are bugs like the one you described.

I don't want a box that can't reliably be rebooted without a workaround script.

Can I ask what box you have that has this issue?

The I225 chips run an Intel firmware blob (closed source) stored in a small SPI flash chip attached to each I225. It's important to have a recent version of that firmware, since up until late 2021 it was very buggy. Checking or updating the firmware isn't readily supported in OpenWrt, you will need to boot another OS on the board, possibly even Windows.