Subject: Re: [PATCH net-next 1/2] net: stmmac: enable 2.5Gbps link speed

From: Andrew Lunn <[email-masked]>
Date: Mon, 5 Apr 2021 14:43:13 +0200

On Mon, Apr 05, 2021 at 09:07:34AM +0000, Voon, Weifeng wrote:
> > On Fri, Apr 02, 2021 at 07:45:04AM +0000, 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