opnsense-src/sys/dev/axgbe
Stephan de Wit bf084b8bac axgbe: fix link issues for gigabit external SFP PHYs and 100/1000 fiber modules
Within the code path of autonegotiation for gigabit SFP modules was a bug, causing
a report of LINK_ERR for cases where an external SFP PHY was present. Fixing this issue
did not resolve to a link however, as it turned out that while autonegotiation interrupts
were happening, it's resulting status cannot be correctly determined in all cases. In these
specific cases we have no other option than to assume a module has negotiated to 1Gbit/s.

PHY-specific configuration has been delegated to the miibus driver, if an external PHY is present.
It's possible that the i2c bus does not recognize a PHY on the first pass, so in all cases we
retry up to a maximum of 5 times during each link poll pass to ensure we didn't miss the presence
of an external PHY.

This commit also addresses link issues on both 100 mbit and 1Gb fiber modules. Not all of these modules
have the correct data set according to SFF-8472, as such we first check for gigabit compliance and
the associated baudrate, otherwise we resort back to determining what type of fiber module is plugged
in by checking the baudrate, cable length and wavelength and setting the MAC speed accordingly.
2024-06-03 11:06:54 +02:00
..
if_axgbe.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
if_axgbe_pci.c axgbe: several patches from 22.1 not yet present in FreeBSD 2024-06-03 11:06:54 +02:00
xgbe-common.h axgbe: several patches from 22.1 not yet present in FreeBSD 2024-06-03 11:06:54 +02:00
xgbe-dcb.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
xgbe-desc.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
xgbe-dev.c axgbe: several patches from 22.1 not yet present in FreeBSD 2024-06-03 11:06:54 +02:00
xgbe-drv.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
xgbe-i2c.c axgbe: fix link issues for gigabit external SFP PHYs and 100/1000 fiber modules 2024-06-03 11:06:54 +02:00
xgbe-mdio.c axgbe: fix link issues for gigabit external SFP PHYs and 100/1000 fiber modules 2024-06-03 11:06:54 +02:00
xgbe-phy-v1.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
xgbe-phy-v2.c axgbe: fix link issues for gigabit external SFP PHYs and 100/1000 fiber modules 2024-06-03 11:06:54 +02:00
xgbe-ptp.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
xgbe-sysctl.c axgbe: several patches from 22.1 not yet present in FreeBSD 2024-06-03 11:06:54 +02:00
xgbe-txrx.c axgbe: several patches from 22.1 not yet present in FreeBSD 2024-06-03 11:06:54 +02:00
xgbe.h axgbe: several patches from 22.1 not yet present in FreeBSD 2024-06-03 11:06:54 +02:00
xgbe_osdep.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
xgbe_osdep.h axgbe: several patches from 22.1 not yet present in FreeBSD 2024-06-03 11:06:54 +02:00