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