netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Russell King (Oracle)" <linux@armlinux.org.uk>
To: Yangfl <mmyangfl@gmail.com>
Cc: Andrew Lunn <andrew@lunn.ch>,
	netdev@vger.kernel.org, Vladimir Oltean <olteanv@gmail.com>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Heiner Kallweit <hkallweit1@gmail.com>,
	Simon Horman <horms@kernel.org>,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH net-next v11 2/5] net: phy: introduce PHY_INTERFACE_MODE_REVSGMII
Date: Fri, 26 Sep 2025 09:45:20 +0100	[thread overview]
Message-ID: <aNZSoHGgBCxs5rh3@shell.armlinux.org.uk> (raw)
In-Reply-To: <CAAXyoMPmwvxsk0vMD5aUvx9ajbeAENtengzUgBteV_CFJoqXWg@mail.gmail.com>

On Fri, Sep 26, 2025 at 02:30:25PM +0800, Yangfl wrote:
> On Thu, Sep 25, 2025 at 3:18 AM Russell King (Oracle)
> <linux@armlinux.org.uk> wrote:
> >
> > On Wed, Sep 24, 2025 at 08:41:06PM +0200, Andrew Lunn wrote:
> > > In theory, {R}GMII does have inband signalling, but it is pretty much
> > > never used. REV for GMII could thus indicate what role the device is
> > > playing in this in-band signalling?
> >
> > For RGMII, as you say, the in-band signalling is pretty much never used.
> > The stmmac code as it stands today does have support for using it, but
> > the code has been broken for longer than six years:
> >
> > 1. the longest historical breakage, it's conditional on the hardware
> >    reporting that it has a PCS integrated into the design, but a PCS
> >    won't be integrated into the design for RGMII-only cases.
> >
> > 2. even if (1) was fixed, that would result in the driver manipulating
> >    the netif carrier state from interrupt context, always beating
> >    phylink's resolve worker, meaning that mac_link_(down|up) never get
> >    called. This results in no traffic flow and a non-functional
> >    interface.
> >
> > So, maybe we should just ignore the RGMII in-band signalling until
> > someone pops up with a hard and fast requirement for it.
> >
> > > For any SERDES based links likes like SGMII, 1000Base-X and above,
> > > clocking is part of the SERDES, so symmetrical. There clearly is
> > > inband signalling, mostly, when it is not broken because of
> > > overclocked SGMII. But we have never needed to specify what role each
> > > end needs to play.
> >
> > 100base-X is intentionally symmetric, and designed for:
> >
> >         MAC----PCS---- some kind of link ----PCS----MAC
> >
> > where "some kind of link" is fibre or copper. There is no reverse mode
> > possible there, because "reverse" is just the same as "normal".
> >
> > For SGMII though, it's a different matter. The PHY-like end transmits
> > the link configuration. The MAC-like end receives the link
> > configuration and configures itself to it - and never sends a link
> > configuration back.
> >
> > So, the formats of the in-band tx_config_reg[15:0] are different
> > depending on the role each end is in.
> >
> > In order for a SGMII link with in-band signalling to work, one end
> > has to assume the MAC-like role and the other a PHY-like role.
> >
> > PHY_INTERFACE_MODE_SGMII generally means that the MAC is acting in a
> > MAC-like role. However, stmmac had the intention (but broken) idea
> > that setting the DT snps,ps-speed property would configure it into a
> > PHY-like role. It almost does... but instead of setting the "transmit
> > configuration" (TC) bit, someone typo'd and instead set the "transmit
> > enable" (TE) bit. So no one has actually had their stmmac-based
> > device operating in a PHY-like role, even if they _thought_ it was!
> >
> > > > However, stmmac hardware supports "reverse" mode for more than just
> > > > SGMII, also RGMII and SMII.
> > >
> > > How does the databook describe reverse SGMII? How does it differ from
> > > SGMII?
> >
> > It doesn't describe "reverse SGMII". Instead, it describes:
> >
> > 1. The TC bit in the MAC configuration register, which makes the block
> >    transmit the speed and duplex from the MAC configuration register
> >    over RGMII, SGMII or SMII links (only, not 1000base-X.)
> >
> > 2. The SGMIIRAL bit in the PCS control register, which switches where
> >    the SGMII rate adapter layer takes its speed configuration from -
> >    either the incoming in-band tx_config_reg[15:0] word, or from the
> >    MAC configuration register. It is explicitly stated for this bit
> >    that it is for back-to-back MAC links, and as it's specific to
> >    SGMII, that means a back-to-back SGMII MAC link.
> >
> > Set both these bits while the MAC is configured for SGMII mode, and
> > you have a stmmac MAC which immitates a SGMII PHY as far as the
> > in-band tx_config_reg[15:0] word is concerned.
> 
> So any conclusion? Should I go on with REV*MII, or wait for (or write
> it myself) reverse-mode flag?

Clearly not as there's been no discussion beyond my response to Andrew.
I don't know what to suggest, as whatever decision we make here, we
will have to live with the consequences of it for a very long time.

I suspect no one really knows the answer, so given the lack of
engagement on the issue, my suggestion would be to just press ahead
with your current approach.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!

  reply	other threads:[~2025-09-26  8:45 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-22 13:11 [PATCH net-next v11 0/5] net: dsa: yt921x: Add support for Motorcomm YT921x David Yang
2025-09-22 13:11 ` [PATCH net-next v11 1/5] dt-bindings: ethernet-phy: add reverse SGMII phy interface type David Yang
2025-09-23 13:46   ` Rob Herring (Arm)
2025-09-22 13:11 ` [PATCH net-next v11 2/5] net: phy: introduce PHY_INTERFACE_MODE_REVSGMII David Yang
2025-09-23 14:32   ` Maxime Chevallier
2025-09-24 17:50   ` Russell King (Oracle)
2025-09-24 18:41     ` Andrew Lunn
2025-09-24 19:18       ` Russell King (Oracle)
2025-09-26  6:30         ` Yangfl
2025-09-26  8:45           ` Russell King (Oracle) [this message]
2025-09-26 16:09           ` Andrew Lunn
2025-09-26 16:28             ` Yangfl
2025-09-26 18:06               ` Russell King (Oracle)
2025-09-22 13:11 ` [PATCH net-next v11 3/5] dt-bindings: net: dsa: yt921x: Add Motorcomm YT921x switch support David Yang
2025-09-22 13:11 ` [PATCH net-next v11 4/5] net: dsa: tag_yt921x: add support for Motorcomm YT921x tags David Yang
2025-09-22 13:11 ` [PATCH net-next v11 5/5] net: dsa: yt921x: Add support for Motorcomm YT921x David Yang
2025-09-24  0:47   ` Jakub Kicinski
2025-09-24 12:33     ` Yangfl
2025-09-25  0:35       ` Jakub Kicinski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aNZSoHGgBCxs5rh3@shell.armlinux.org.uk \
    --to=linux@armlinux.org.uk \
    --cc=andrew@lunn.ch \
    --cc=conor+dt@kernel.org \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=edumazet@google.com \
    --cc=hkallweit1@gmail.com \
    --cc=horms@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mmyangfl@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=olteanv@gmail.com \
    --cc=pabeni@redhat.com \
    --cc=robh@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).