[PATCH RFC net-next 2/9] net: pcs: xpcs: add USXGMII Clause 37 autoneg support
Mohd Ayaan Anwar
mohd.anwar at oss.qualcomm.com
Wed Sep 23 06:31:18 PDT 2026
Hi Andrew,
On Wed, Sep 23, 2026 at 06:37:28AM +0530, Mohd Ayaan Anwar wrote:
> The generic DesignWare XPCS support currently associates USXGMII with
> Clause 73 auto-negotiation. The XPCS integration on Qualcomm Nord
> instead uses the vendor MII register block and Clause 37 control and
> status for USXGMII.
>
> Add a separate Clause 37 USXGMII mode which configures the PCS for
> BASE-R, enables single-port 10G-SXGMII operation and enables
> PHY-side Clause 37 auto-negotiation.
>
> Also decode the negotiated link, speed and duplex from the vendor
> Clause 37 status register. This supports 10 Mbps through 10 Gbps link
> rates exposed by the USXGMII status fields.
>
> Signed-off-by: Mohd Ayaan Anwar <mohd.anwar at oss.qualcomm.com>
> ---
Seeing your question below, I think I should have probably mentioned
here that this sequence is given in the programming guidelines of the
XPCS 3.50a databook. Section 7.6 Switching to USXGMII Mode, point 10.
states:
Set bit(12) of SR_MII_CTRL to 1 to enable CL37 auto-negotiation
(paraphrased).
So this is a part of the licensed IP, rather than a Qualcomm specific
addition.
> @@ -687,6 +736,7 @@ static unsigned int xpcs_inband_caps(struct phylink_pcs *pcs,
>
> case DW_10GBASER:
> case DW_2500BASEX:
> + case DW_AN_C37_USXGMII:
> return LINK_INBAND_DISABLE;
>
This is incorrect and I did not find out its side effect as I was
working with a firmware managed external sitch. The XPCS supports
USXGMII with AN always, so this case should return LINK_INBAND_ENABLE.
Ayaan
More information about the linux-arm-kernel
mailing list