ice driver report I2C error messages of E822 copper LAN ports
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
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
For varying reasons the OPNsense code also uses 'ifconfig -v'.
Cheers, Franco
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.
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)
Hi Franco:
Thanks for the information. I had raised a bug report to FreeBSD Bugzilla.
Best Regards, Amy Shih
No change upstream. I'm going to close tis for now.