RE: Unsupported phy-connection-type sgmii-2500 in arch/powerpc/boot/dts/fsl/t1023rdb.dts

From: Madalin Bucur
Date: Fri Jun 04 2021 - 17:37:36 EST


> -----Original Message-----
> From: Russell King <linux@xxxxxxxxxxxxxxx>
> Sent: 04 June 2021 23:00
> To: Madalin Bucur <madalin.bucur@xxxxxxx>
> Cc: Pali Rohár <pali@xxxxxxxxxx>; Andrew Lunn <andrew@xxxxxxx>; Igal
> Liberman <Igal.Liberman@xxxxxxxxxxxxx>; Shruti Kanetkar
> <Shruti@xxxxxxxxxxxxx>; Emil Medve <Emilian.Medve@xxxxxxxxxxxxx>; Scott
> Wood <oss@xxxxxxxxxxxx>; Rob Herring <robh+dt@xxxxxxxxxx>; Michael
> Ellerman <mpe@xxxxxxxxxxxxxx>; Benjamin Herrenschmidt
> <benh@xxxxxxxxxxxxxxxxxxx>; netdev@xxxxxxxxxxxxxxx;
> devicetree@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Camelia
> Alexandra Groza (OSS) <camelia.groza@xxxxxxxxxxx>
> Subject: Re: Unsupported phy-connection-type sgmii-2500 in
> arch/powerpc/boot/dts/fsl/t1023rdb.dts
>
> On Fri, Jun 04, 2021 at 07:39:10PM +0000, Madalin Bucur wrote:
> > > -----Original Message-----
> > > From: Russell King <linux@xxxxxxxxxxxxxxx>
> > > Sent: 04 June 2021 22:28
> > > To: Madalin Bucur <madalin.bucur@xxxxxxx>
> > > Cc: Pali Rohár <pali@xxxxxxxxxx>; Andrew Lunn <andrew@xxxxxxx>; Igal
> > > Liberman <Igal.Liberman@xxxxxxxxxxxxx>; Shruti Kanetkar
> > > <Shruti@xxxxxxxxxxxxx>; Emil Medve <Emilian.Medve@xxxxxxxxxxxxx>;
> Scott
> > > Wood <oss@xxxxxxxxxxxx>; Rob Herring <robh+dt@xxxxxxxxxx>; Michael
> > > Ellerman <mpe@xxxxxxxxxxxxxx>; Benjamin Herrenschmidt
> > > <benh@xxxxxxxxxxxxxxxxxxx>; netdev@xxxxxxxxxxxxxxx;
> > > devicetree@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Camelia
> > > Alexandra Groza (OSS) <camelia.groza@xxxxxxxxxxx>
> > > Subject: Re: Unsupported phy-connection-type sgmii-2500 in
> > > arch/powerpc/boot/dts/fsl/t1023rdb.dts
> > >
> > > On Fri, Jun 04, 2021 at 07:35:33AM +0000, Madalin Bucur wrote:
> > > > Hi, the Freescale emails no longer work, years after Freescale
> joined
> > > NXP.
> > > > Also, the first four recipients no longer work for NXP.
> > > >
> > > > In regards to the sgmii-2500 you see in the device tree, it
> describes
> > > SGMII
> > > > overclocked to 2.5Gbps, with autonegotiation disabled.
> > > >
> > > > A quote from a long time ago, from someone from the HW team on this:
> > > >
> > > > The industry consensus is that 2.5G SGMII is overclocked 1G
> SGMII
> > > > using XAUI electricals. For the PCS and MAC layers, it looks
> exactly
> > > > like 1G SGMII, just with a faster clock.
> > > >
> > > > The statement that it does not exist is not accurate, it exists in
> HW,
> > > and
> > > > it is described as such in the device tree. Whether or not it is
> > > properly
> > > > treated in SW it's another discussion.
> > >
> > > Here's the issue though:
> > >
> > > 802.3 defined 1000base-X which is a fixed 1G speed interface using a
> > > 16-bit control word. Implementations of this exist where the control
> > > word can be disabled.
> > >
> > > Cisco came along, took 1000base-X and augmented it to allow speeds of
> > > 10M and 100M by symbol repetition, and changing the format of the
> > > 16-bit control word. Otherwise, it is functionally compatible - indeed
> > > SGMII with the control word disabled will connect with 1000base-X with
> > > the control word disabled. I've done it several times.
> > >
> > > There exists 2500base-X, which is 1000base-X clocked faster, and it
> > > seems the concensus is that it has the AN disabled - in other words,
> > > no control word.
> > >
> > > Now you're saying that SGMII at 2.5G speed exists, which is 1G SGMII
> > > fixed at 1G speed, without a control word, upclocked by 2.5x.
> > >
> > > My question to you is how is how is this SGMII 2.5G different from
> > > 2500base-X?
> > >
> > > > In 2015, when this was submitted,
> > > > there were no other 2.5G compatibles in use, if I'm not mistaken.
> > > > 2500Base-X started to be added to device trees four years later, it
> > > should
> > > > be compatible/interworking but it is less specific on the actual
> > > implementation
> > > > details (denotes 2.5G speed, 8b/10b coding, which is true for this
> > > overclocked
> > > > SGMII). If they are compatible, SW should probably treat them in the
> > > same manner.
> > >
> > > My argument has been (since I've had experience of SGMII talking to
> > > 1000base-X, and have also accidentally clocked such a scenario at
> > > 2.5G speeds) that there is in fact no functional difference between
> > > SGMII and base-X when they are running at identical speeds with the
> > > control word disabled.
> > >
> > > Given that we well know that industry likes to use the term "SGMII"
> > > very loosely to mean <whatever>base-X as well as SGMII, it becomes
> > > a very bad term to use when we wish to differentiate between a
> > > base-X and a real Cisco SGMII link with their different control word
> > > formats.
> > >
> > > And this has always been my point - industry has created confusion
> > > over these terms, but as software programmers, we need to know the
> > > difference. So, SGMII should _only_ be used to identify the Cisco
> > > SGMII modified version of 802.3 base-X _with_ the modified control
> > > word or with the capability of symbol repetition. In other words,
> > > the very features that make it SGMII as opposed to 802.3 base-X.
> > > Everything else should not use the term SGMII.
> > >
> > > > There were some discussions a while ago about the mix or even
> confusion
> > > between
> > > > the actual HW description (that's what the dts is supposed to do)
> and
> > > the settings
> > > > one wants to represent in SW (i.e. speed) denoted loosely by
> > > denominations like
> > > > 10G Base-R.
> > >
> > > The "confusion" comes from an abuse of terms. Abused terms really
> > > can't adequately be used to describe hardware properties.
> > >
> > > As I say above, we _know_ that some manufacturers state that their
> > > single lane serdes is "SGMII" when it is in fact 1000base-X. That
> > > doesn't mean we stuff "sgmii" into device tree because that's what
> > > the vendor decided to call it.
> > >
> > > "sgmii" in the device tree means Cisco's well defined SGMII and
> > > does not mean 1000base-X.
> >
> > The "sgmii-2500" compatible in that device tree describes an SGMII HW
> > block, overclocked at 2.5G. Without that overclocking, it's a plain
> > Cisco (like) SGMII HW block. That's the reason you need to disable it's
> > AN setting when overclocked. With the proper Reset Configuration Word,
> > you could remove the overclocking and transform that into a plain
> "sgmii".
> > Thus, the dts compatible describes the HW, as it is.
>
> I have given you a detailed explanation of my view on this, which is
> based on reading the 802.3 and Cisco SGMII specifications and various
> device datasheets from multiple different manufacturers.
>
> I find your argument which seems to be based on what your hardware
> in front of you "does" and the actual explanation of it to be an
> extremely weak response.
>
> Please provide a robust argument for your position. Thanks.

By lacking AN abilities, this HW fits neither SGMII nor 1000Base-X, leave aside
the speed increment. Other than that, I do not feel I have to justify someone's
decision to not align in 2015 to something that became a habit in 2019, I just
provided an explanation for the information they acted upon.

Regards,
Madalin