Thread (11 messages) flat view 11 messages, 4 authors, 2021-04-07

RE: [PATCH net-next v2 0/2] Enable 2.5Gbps speed for stmmac

From: Voon, Weifeng <hidden>
Date: 2021-04-06 09:05:55
Also in: lkml, netdev

quoted
quoted
You have a MAC and an PCS in the stmmac IP block. That then has some
sort of SERDES interface, running 1000BaseX, SGMII, SGMII
overclocked at 2.5G or 25000BaseX. Connected to the SERDES you have
a PHY which converts to copper, giving you 2500BaseT.

You said earlier, that the PHY can only do 2500BaseT. So it should
be the PHY driver which sets supported to 2500BaseT and no other
speeds.

You should think about when somebody uses this MAC with a different
PHY, one that can do the full range of 10/half through to 2.5G full.
What generally happens is that the PHY performs auto-neg to
determine the link speed. For 10M-1G speeds the PHY will configure
its SERDES interface to SGMII and phylink will ask the PCS to also
be configured to SGMII. If the PHY negotiates 2500BaseT, it will
configure its side of the SERDES to 2500BaseX or SGMII overclocked
at 2.5G. Again, phylink will ask the PCS to match what the PHY is
doing.

So, where exactly is the limitation in your hardware? PCS or PHY?
The limitation in the hardware is at the PCS side where it is either
running in SGMII 2.5G or SGMII 1G speeds.
When running on SGMII 2.5G speeds, we disable the in-band AN and use
2.5G speed only
So there is no actual limitation! The MAC should indicate it can do 10Half
through to 2500BaseT. And you need to listen to PHYLINK and swap the PCS
between SGMII to overclocked SGMII when it requests.

PHYLINK will call stmmac_mac_config() and use state->interface to decide
how to configure the PCS to match what the PHY is doing.

     Andrew
The limitation is not on the MAC, PCS or the PHY. For Intel mgbe, the
overclocking of 2.5 times clock rate to support 2.5G is only able to be
configured in the BIOS during boot time. Kernel driver has no access to 
modify the clock rate for 1Gbps/2.5G mode. The way to determined the 
current 1G/2.5G mode is by reading a dedicated adhoc register through mdio bus.
In short, after the system boot up, it is either in 1G mode or 2.5G mode 
which not able to be changed on the fly. 

Since the stmmac MAC can pair with any PCS and PHY, I still prefer that we tie
this platform specific limitation with the of MAC. As stmmac does handle platform
specific config/limitation. 

What is your thoughts? 

Weifeng

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help