mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Andrew Lunn <andrew@lunn.ch>
To: Rob Herring <robh@kernel.org>
Cc: Oleksij Rempel <o.rempel@pengutronix.de>,
	Heiner Kallweit <hkallweit1@gmail.com>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Florian Fainelli <f.fainelli@gmail.com>,
	kernel@pengutronix.de, linux-kernel@vger.kernel.org,
	netdev@vger.kernel.org, Russell King <linux@armlinux.org.uk>,
	devicetree@vger.kernel.org
Subject: Re: [PATCH net-next v2 1/2] dt-bindings: net: ethernet-phy: Add master-slave role property for SPE PHYs
Date: Mon, 9 Sep 2024 19:00:34 +0200	[thread overview]
Message-ID: <c2e4539f-34ba-4fcf-a319-8fb006ee0974@lunn.ch> (raw)
In-Reply-To: <20240909162009.GA339652-robh@kernel.org>

On Mon, Sep 09, 2024 at 11:20:09AM -0500, Rob Herring wrote:
> On Mon, Sep 09, 2024 at 02:43:40PM +0200, Oleksij Rempel wrote:
> > Introduce a new `master-slave` string property in the ethernet-phy
> > binding to specify the link role for Single Pair Ethernet
> > (1000/100/10Base-T1) PHYs. This property supports the values
> > `forced-master` and `forced-slave`, which allow the PHY to operate in a
> > predefined role, necessary when hardware strap pins are unavailable or
> > wrongly set.
> > 
> > Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
> > ---
> > changes v2:
> > - use string property instead of multiple flags
> > ---
> >  .../devicetree/bindings/net/ethernet-phy.yaml      | 14 ++++++++++++++
> >  1 file changed, 14 insertions(+)
> > 
> > diff --git a/Documentation/devicetree/bindings/net/ethernet-phy.yaml b/Documentation/devicetree/bindings/net/ethernet-phy.yaml
> > index d9b62741a2259..025e59f6be6f3 100644
> > --- a/Documentation/devicetree/bindings/net/ethernet-phy.yaml
> > +++ b/Documentation/devicetree/bindings/net/ethernet-phy.yaml
> > @@ -158,6 +158,20 @@ properties:
> >        Mark the corresponding energy efficient ethernet mode as
> >        broken and request the ethernet to stop advertising it.
> >  
> > +  master-slave:
> 
> Outdated terminology and kind of vague what it is for...
> 
> The usual transformation to 'controller-device' would not make much
> sense though. I think a better name would be "spe-link-role" or
> "spe-link-mode".

This applies to more than Single Pair Ethernet. This property could
also be used for 2 and 4 pair cables. So spe-link-mode would be wrong.

Also:

https://grouper.ieee.org/groups/802/3/dc/comments/P8023_D2p0_comments_final_by_cls.pdf

On 3 December 2020, the IEEE SA Standard Board passed the following resolution. (See
<https://standards.ieee.org/about/sasb/resolutions.html>.)

  "IEEE standards (including recommended practices and guides) shall
  be written in such a way as to unambiguously communicate the
  technical necessities, preferences, and options of the standard to
  best enable market adoption, conformity assessment,
  interoperability, and other technical aspirations of the developing
  standards committee. IEEE standards should be written in such a way
  as to avoid non-inclusive and insensitive terminology (see IEEE
  Policy 9.27) and other deprecated terminology (see clause 10 of the
  IEEE SA Style Manual) except when required by safety, legal,
  regulatory, and other similar considerations.  Terms such as
  master/slave, blacklist, and whitelist should be avoided."

  In IEEE Std 802.3, 1000BASE-T, 10BASE-T1L, 100BASE-T1, 1000BASE-T1,
  and MultiGBASE-T PHYs use the terms "master" and "slave" to indicate
  whether the clock is derived from an external source or from the
  received signal. In these cases, the terms appear in the text,
  figures, state names, variable names, register/bit names, etc. A
  direct substitution of terms will create disconnects between the
  standard and the documentation for devices in the field (e.g., the
  register interface) and also risks the introduction of technical
  errors. Note that "master" and "slave" are also occasionally used to
  describe the relationship between an ONT and an ONU for EPON and
  between a CNT and a CNU for EPoC.

  The approach that other IEEE standards are taking to address this
  issue have been considered. For example, IEEE P1588g proposes to
  define "optional alternative suitable and inclusive terminology" but
  not replace the original terms. (See
  <https://development.standards.ieee.org/myproject-web/public/view.html#pardetail/8858>.)
  It is understood that an annex to the IEEE 1588 standard has been
  proposed that defines the inclusive terminology. It is also
  understood that the inclusive terminology has been chosen to be
  "leader" and "follower".

  The IEEE P802.1ASdr project proposes to align to the IEEE P1588g
  inclusive terminology.  (See
  <https://development.standards.ieee.org/myprojectweb/public/view.html#pardetail/9009>.)
  Based on this, it seems reasonable to include an annex that defines
  optional alternative inclusive terminology and, for consistency, to
  use the terms "leader" and "follower" as the inclusive terminology

The 2022 revision of 802.3 still has master/slave when describing the
registers, but it does have Annex K as described above saying "leader"
and "follower" are optional substitutions.

The Linux code has not changed, and the uAPI has not changed. It seems
like the best compromise would be to allow both 'force-master' and
'force-leader', as well as 'force-slave' and 'force-follower', and a
reference to 802.3 Annex K.

As to you comment about it being unclear what it means i would suggest
a reference to 802.3 section 1.4.389:

  1.4.389 master Physical Layer device (PHY): Within IEEE 802.3, in a
  100BASE-T2, 1000BASE-T, 10BASE-T1L, 100BASE-T1, 1000BASE-T1, or any
  MultiGBASE-T link containing a pair of PHYs, the PHY that uses an
  external clock for generating its clock signals to determine the
  timing of transmitter and receiver operations. It also uses the
  master transmit scrambler generator polynomial for side-stream
  scrambling. Master and slave PHY status is determined during the
  Auto-Negotiation process that takes place prior to establishing the
  transmission link, or in the case of a PHY where Auto-Negotiation is
  optional and not used, master and slave PHY status

	Andrew

  reply	other threads:[~2024-09-09 17:00 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-09 12:43 [PATCH net-next v2 0/2] net: phy: Support master-slave config via device tree Oleksij Rempel
2024-09-09 12:43 ` [PATCH net-next v2 1/2] dt-bindings: net: ethernet-phy: Add master-slave role property for SPE PHYs Oleksij Rempel
2024-09-09 15:56   ` Florian Fainelli
2024-09-09 16:20   ` Rob Herring
2024-09-09 17:00     ` Andrew Lunn [this message]
2024-09-10 16:54       ` Rob Herring
2024-09-11  7:00         ` Oleksij Rempel
2024-09-11 12:05         ` Andrew Lunn
2024-09-09 12:43 ` [PATCH net-next v2 2/2] net: phy: Add support for master-slave role configuration via device tree Oleksij Rempel

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=c2e4539f-34ba-4fcf-a319-8fb006ee0974@lunn.ch \
    --to=andrew@lunn.ch \
    --cc=conor+dt@kernel.org \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=edumazet@google.com \
    --cc=f.fainelli@gmail.com \
    --cc=hkallweit1@gmail.com \
    --cc=kernel@pengutronix.de \
    --cc=krzk+dt@kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=netdev@vger.kernel.org \
    --cc=o.rempel@pengutronix.de \
    --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

all inboxes | Powered by JetHome®