src icon indicating copy to clipboard operation
src copied to clipboard

ice driver report I2C error messages of E822 copper LAN ports

Open ChiaYuShih opened this issue 1 year ago • 5 comments

Environment: OPNsense 24.1 (amd64) Intel Atom(R) P5352 processor Network Intel E822-L 1GbE & SFP

In OPNsense 24.1, the E822 LAN ports (SFP & copper) are detected successfully. However, only the copper ports are showing error messages (ice_read_sff_eeprom: Error reading I2C data: err ICE_ERR_AQ_ERROR aq_err AQ_RC_EINVAL).

Upon tracing the OPNsense 24.1 kernel source code, the error messages indicate that the attempt to read data from the SFF EEPROM has failed (ice_lib.c function ice_read_sff_eeprom).

Considering that there are no SFF EEPROMs for copper ports, should these error messages still be reported?

We have observed that these error messages appear after the driver initializes and continue to occur at intervals, indicating a potential trigger by a system service via ioctl.

Upon checking FreeBSD 14, we found no error messages for E822 copper ports, it seems a compatibility issue with OPNsense 24.1.

The ice driver version in OPNsense 24.1 is 1.37.11-k, and despite installing the official Intel-released ice version 1.39.13, the same error messages persist.

Please assist to check it. Thanks!

Best Regards, Amy Shih

FreeBSD14_dmesg.txt.txt OPNsense24.1_ice1.37.11-k_dmesg.txt.txt OPNsense24.1_ice1.39.13_dmesg.txt.txt

ChiaYuShih avatar Mar 15 '24 07:03 ChiaYuShih

Just find out that when execute the command “ifconfig -v ice4” to get more verbose status for E822 copper interface, both FreeBSD14 & OPNsense24.1 reported the error messages for the E822 copper ports, which means there is an service to query the interface data in OPNsense24.1 causing the error message, and in FreeBSD14 there is no such service unless we execute the command manually.

The root cause appears to be the inability of Intel's build-in ice driver to distinguish between the types (copper or SFP) for the E822 ports.

root@:~ # ifconfig -v ice4 ice4: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=4e10438<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,LRO,VLAN_HWFILTER,RXCSUM_IPV6,TXCSUM_IPV6,HWSTATS,MEXTPG> ether 00:00:00:00:01:04 media: Ethernet autoselect status: no carrier nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> ice4: ice_read_sff_eeprom: Error reading I2C data: err ICE_ERR_AQ_ERROR aq_err AQ_RC_EINVAL

ChiaYuShih avatar Mar 15 '24 13:03 ChiaYuShih

For varying reasons the OPNsense code also uses 'ifconfig -v'.

Cheers, Franco

fichtner avatar Mar 15 '24 13:03 fichtner

Hi Franco:

Execute the command “ifconfig -v ice4” to get more verbose status for E822 copper interface, both FreeBSD14 & OPNsense24.1 reported the error messages for the E822 copper ports.

ChiaYuShih avatar Mar 15 '24 13:03 ChiaYuShih

So it's the ice driver ~~which isn't even maintained by Intel in FreeBSD as far as I know~~ and you can raise a bug report here https://bugs.freebsd.org if one doesn't exist :)

(edited due to me confusing ice with igc)

fichtner avatar Mar 15 '24 13:03 fichtner

Hi Franco:

Thanks for the information. I had raised a bug report to FreeBSD Bugzilla.

Best Regards, Amy Shih

ChiaYuShih avatar Mar 18 '24 03:03 ChiaYuShih

No change upstream. I'm going to close tis for now.

fichtner avatar Feb 05 '25 11:02 fichtner