Subject: Re: [PATCH net-next] net: pcs: xpcs: Add 2500BASE-X case in get state for XPCS drivers

From: "Russell King (Oracle)" <[email-masked]>
Date: Tue, 26 Sep 2023 16:47:14 +0100

On Tue, Sep 26, 2023 at 06:27:45PM +0300, Serge Semin wrote:
> On Tue, Sep 26, 2023 at 03:46:23PM +0100, Russell King (Oracle) wrote:
> > On Tue, Sep 26, 2023 at 03:09:47PM +0300, Serge Semin wrote:
> > > Hi Russell
> > > 
> > > > Since you have access to the hardware manual, what does it say about
> > > > clause 37 auto-negotiation when operating in 2500base-X mode?
> > > 
> > > Here are the parts which mention 37 & SGMII AN in the 2.5G context:
> > > 
> > > 1. "Clause 37 (& SGMII) auto-negotiation is supported in 2.5G mode if
> > >     the link partner is also operating in the equivalent 2.5G mode."
> > > 
> > > 2. "During the Clause 37/SGMII as the auto-negotiation link timer
> > >     operates with a faster clock in the 2.5G mode, the timeout duration
> > >     reduces by a factor of 2.5. To restore the standard specified timeout
> > >     period, the respective registers must be re-programmed."
> > > 
> > > I guess the entire 2.5G-thing understanding could be generalized by
> > > the next sentence from the HW manual: "The 2.5G mode of operation is
> > > functionally the same as 1000BASE-X/KX mode, except that the
> > > clock-rate is 2.5 times the original rate. In this mode, the
> > > Serdes/PHY operates at a serial baud-rate of 3.125 Gbps and DWC_xpcs
> > > data-path and the GMII interface to MAC operates at 312.5 MHz (instead
> > > of 125 MHz)." Thus here is another info regarding AN in that context:
> > > 
> > > 3. "The DWC_xpcs operates either in 10/100/1000Mbps rate or
> > > 25/250/2500Mbps rates respectively with SGMII auto-negotiation. The
> > > DWC_xpcs cannot support switching or negotiation between 1G and 2.5G
> > > rates using auto-negotiation."
> > 
> > Thanks for the clarification.
> > 
> > So this hardware, just like Marvell hardware, operates 2500BASE-X merely
> > by up-clocking, and all the features that were available at 1000BASE-X
> > are also available at 2500BASE-X, including the in-band signalling.
> > 
> > Therefore, I think rather than disabling AN outright, the
> > PHYLINK_PCS_NEG_* mode passed in should be checked to determine whether
> > inband should be used or not.
> 
> Just an additional note which might be relevant in the context of the
> DW XPCS 1G/2.5G C37 AN. The C37 auto-negotiation feature will be
> unavailable for 1000BASE-X and thus for 2500BASE-X if the IP-core is
> synthesized with no support of one. It is determined by the CL37_AN
> IP-core synthesize parameter state:
> 
> Enable SGMII Clause 37 | Description: Configures DWC_xpcs to support the
> Auto-Negotiation       |              Clause 37 auto-negotiation
>                        |
>                        | Dependencies: This option is available in the
>                        |   following configurations:
>                        |   - SUPPORT_1G = Enabled
>                        |   - MAIN_MODE = Backplane Ethernet PCS and
>                        |     BACKPLANE_ETH_CONFIG = KX_Only or KX4_KX
>                        |     or KR_KX or KR_KX4_KX mode
>                        |
>                        | Default Value: Enabled for configurations with
>                        |   MAIN_MODE = 1000BASEX-Only PCS and Disabled
>                        |   for all other configurations
>                        |
>                        | HDL Parameter Name: CL37_AN
> 
> So depending on the particular (vendor-specific) device configuration
> the C37 AN might still unavailable even though the device supports the
> 1000BASE-X and 2500BASE-X interfaces.

Thanks. I guess there's no way to read the CL37_AN setting from
software?

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