Re: [PATCH net-next 1/2] net: stmmac: enable 2.5Gbps link speed
On Mon, Apr 05, 2021 at 09:07:34AM +, Voon, Weifeng wrote: > > On Fri, Apr 02, 2021 at 07:45:04AM +, Voon, Weifeng wrote: > > > > > + /* 2.5G mode only support 2500baseT full duplex only */ > > > > > + if (priv->plat->has_gmac4 && priv->plat->speed_2500_en) { > > > > > + phylink_set(mac_supported, 2500baseT_Full); > > > > > + phylink_set(mask, 10baseT_Half); > > > > > + phylink_set(mask, 10baseT_Full); > > > > > + phylink_set(mask, 100baseT_Half); > > > > > + phylink_set(mask, 100baseT_Full); > > > > > + phylink_set(mask, 1000baseT_Half); > > > > > + phylink_set(mask, 1000baseT_Full); > > > > > + phylink_set(mask, 1000baseKX_Full); > > > > > > > > Why? This seems at odds to the comment above? > > > > > > > What about 2500baseX_Full ? > > > > > > The comments explain that the PCS<->PHY link is in 2500BASE-X and why > > > 10/100/1000 link speed is mutually exclusive with 2500. > > > But the connected external PHY are twisted pair cable which only > > > supports 2500baseT_full. > > > > The PHY should indicate what modes its supports. The PHY drivers > > get_features() call should set supported to only 2500baseT_Full, if that is > > all it supports. > > > > What modes are actually used should then be the intersect of what both the > > MAC and the PHY indicate they can do. > > Noted Andrew. Instead of masking the 10/100/1000 mode support in the MAC, we > will > set the supported modes in the PCS. PCS? You said: > > > But the connected external PHY are twisted pair cable which only > > > supports 2500baseT_full. So it should be the PHY, not the PCS, which indicates it only supports 2500baseT_full. Andrew
RE: [PATCH net-next 1/2] net: stmmac: enable 2.5Gbps link speed
> On Fri, Apr 02, 2021 at 07:45:04AM +, Voon, Weifeng wrote: > > > > + /* 2.5G mode only support 2500baseT full duplex only */ > > > > + if (priv->plat->has_gmac4 && priv->plat->speed_2500_en) { > > > > + phylink_set(mac_supported, 2500baseT_Full); > > > > + phylink_set(mask, 10baseT_Half); > > > > + phylink_set(mask, 10baseT_Full); > > > > + phylink_set(mask, 100baseT_Half); > > > > + phylink_set(mask, 100baseT_Full); > > > > + phylink_set(mask, 1000baseT_Half); > > > > + phylink_set(mask, 1000baseT_Full); > > > > + phylink_set(mask, 1000baseKX_Full); > > > > > > Why? This seems at odds to the comment above? > > > > > What about 2500baseX_Full ? > > > > The comments explain that the PCS<->PHY link is in 2500BASE-X and why > > 10/100/1000 link speed is mutually exclusive with 2500. > > But the connected external PHY are twisted pair cable which only > > supports 2500baseT_full. > > The PHY should indicate what modes its supports. The PHY drivers > get_features() call should set supported to only 2500baseT_Full, if that is > all it supports. > > What modes are actually used should then be the intersect of what both the > MAC and the PHY indicate they can do. Noted Andrew. Instead of masking the 10/100/1000 mode support in the MAC, we will set the supported modes in the PCS.
Re: [PATCH net-next 1/2] net: stmmac: enable 2.5Gbps link speed
On Fri, Apr 02, 2021 at 07:45:04AM +, Voon, Weifeng wrote: > > > + /* 2.5G mode only support 2500baseT full duplex only */ > > > + if (priv->plat->has_gmac4 && priv->plat->speed_2500_en) { > > > + phylink_set(mac_supported, 2500baseT_Full); > > > + phylink_set(mask, 10baseT_Half); > > > + phylink_set(mask, 10baseT_Full); > > > + phylink_set(mask, 100baseT_Half); > > > + phylink_set(mask, 100baseT_Full); > > > + phylink_set(mask, 1000baseT_Half); > > > + phylink_set(mask, 1000baseT_Full); > > > + phylink_set(mask, 1000baseKX_Full); > > > > Why? This seems at odds to the comment above? > > > What about 2500baseX_Full ? > > The comments explain that the PCS<->PHY link is in 2500BASE-X > and why 10/100/1000 link speed is mutually exclusive with 2500. > But the connected external PHY are twisted pair cable which only > supports 2500baseT_full. The PHY should indicate what modes its supports. The PHY drivers get_features() call should set supported to only 2500baseT_Full, if that is all it supports. What modes are actually used should then be the intersect of what both the MAC and the PHY indicate they can do. Andrew
RE: [PATCH net-next 1/2] net: stmmac: enable 2.5Gbps link speed
> > + /* 2.5G mode only support 2500baseT full duplex only */ > > + if (priv->plat->has_gmac4 && priv->plat->speed_2500_en) { > > + phylink_set(mac_supported, 2500baseT_Full); > > + phylink_set(mask, 10baseT_Half); > > + phylink_set(mask, 10baseT_Full); > > + phylink_set(mask, 100baseT_Half); > > + phylink_set(mask, 100baseT_Full); > > + phylink_set(mask, 1000baseT_Half); > > + phylink_set(mask, 1000baseT_Full); > > + phylink_set(mask, 1000baseKX_Full); > > Why? This seems at odds to the comment above? > What about 2500baseX_Full ? The comments explain that the PCS<->PHY link is in 2500BASE-X and why 10/100/1000 link speed is mutually exclusive with 2500. But the connected external PHY are twisted pair cable which only supports 2500baseT_full. Weifeng
Re: [PATCH net-next 1/2] net: stmmac: enable 2.5Gbps link speed
On Thu, Apr 01, 2021 at 11:01:51PM +0800, Michael Sit Wei Hong wrote: > + /* 2.5G mode only support 2500baseT full duplex only */ > + if (priv->plat->has_gmac4 && priv->plat->speed_2500_en) { > + phylink_set(mac_supported, 2500baseT_Full); > + phylink_set(mask, 10baseT_Half); > + phylink_set(mask, 10baseT_Full); > + phylink_set(mask, 100baseT_Half); > + phylink_set(mask, 100baseT_Full); > + phylink_set(mask, 1000baseT_Half); > + phylink_set(mask, 1000baseT_Full); > + phylink_set(mask, 1000baseKX_Full); Why? This seems at odds to the comment above? What about 2500baseX_Full ? -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!