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