Subject: Re: [PATCH] net: phy: mscc: enable MAC SerDes autonegotiation

From: Andrew Lunn <[email-masked]>
Date: Sun, 6 Feb 2022 19:01:41 +0100

On Sun, Feb 06, 2022 at 10:42:34PM +0530, Raag Jadav wrote:
> On Sat, Feb 05, 2022 at 03:57:49PM +0100, Andrew Lunn wrote:
> > On Sat, Feb 05, 2022 at 12:14:52PM +0530, Raag Jadav wrote:
> > > Enable MAC SerDes autonegotiation to distinguish between
> > > 1000BASE-X, SGMII and QSGMII MAC.
> > 
> > How does autoneg help you here? It just tells you about duplex, pause
> > etc. It does not indicate 1000BaseX, SGMII etc. The PHY should be
> > using whatever mode it was passed in phydev->interface, which the MAC
> > sets when it calls the connection function. If the PHY dynamically
> > changes its host side mode as a result of what that line side is
> > doing, it should also change phydev->interface. However, as far as i
> > can see, the mscc does not do this.
> >
> 
> Once the PHY auto-negotiates parameters such as speed and duplex mode
> with its link partner over the copper link as per IEEE 802.3 Clause 27,
> the link partner’s capabilities are then transferred by PHY to MAC
> over 1000BASE-X or SGMII link using the auto-negotiation functionality
> defined in IEEE 802.3z Clause 37.

None of this allows you to distinguish between 1000BASE-X, SGMII and
QSGMII, which is what the commit message says.

It does allow you to get duplex, pause, and maybe speed via in band
signalling. But you should also be getting the same information out of
band, via the phylib callback.

There are some MACs which don't seem to work correctly without the in
band signalling, so maybe that is your problem? Please could you give
more background about your problem, what MAC and PHY combination are
you using, what problem you are seeing, etc.

    Andrew