HomeFreeBSD

axgbe: Various link stability and module compatibilty improvements

Description

axgbe: Various link stability and module compatibilty improvements

Move the phy_stop() routine to if_detach() to prevent link interruptions
when configuring the interface. Accompanying this is a sanity check
using phy_started, which was already there but remained unused. We do
not move phy_start(), as the logic there is needed for any init routine,
be it attach or start.

Also bring in the linux PMA_PLL change which addresses the flapping of
back-to-back fiber connections.

Use miibus for SFP PHYs up to 1G copper. We retry in cases where the PHY
is not directly reachable. Set the correct IFM_100_SGMII flag when the
phy speed has been set to 100. We remove xgbe_phy_start_aneg() since
it's handled by miibus.

Add support for 100 and 1000 BASE-BX fiber modules

Add support for 25G multirate DACs which are capable of 10G.

While here, also fixup the LINK_ERR state. It was impossible to recover
from this previously.

[[ Note: light style fixes by imp, slight commit message adjustment,

and a warning that I don't have the hardware to validate, but
the changes do track the commit message and seem otherwise OK ]]

Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/768

Details

Provenance
stephan.dewt_yahoo.co.ukAuthored on Feb 2 2024, 7:17 PM
impCommitted on Feb 2 2024, 7:21 PM
Parents
rGd56a6f0516a7: stdlib.h: Partially revert c27a89971805
Branches
Unknown
Tags
Unknown