[PATCH RFC net-next v2 0/7] net: stmmac: improve PCS support
Mohd Ayaan Anwar
mohd.anwar at oss.qualcomm.com
Thu Mar 5 11:46:47 PST 2026
Hi Russell,
On Wed, Mar 04, 2026 at 08:47:36AM +0000, Russell King (Oracle) wrote:
> Resending this as the original RFC now conflicts with net-next.
>
> This series is the next of the three part series sorting out the PCS
> support in stmmac, building on part 2, which was posted yesterday:
>
> net: stmmac: qcom-ethqos: further serdes reorganisation
>
> Similar patches have been posted previously. This series does away with
> the common SerDes PHY support, instead using a flag to indicate whether
> 2500Mbps mode is supported (STMMAC_FLAG_SERDES_SUPPORTS_2500M.) At this
> time, I have no plans to resurect the common SerDes PHY support - the
> generic PHY layer implementations are just too random to consider that,
> and I certainly do not want the extra work of fixing that.
>
> I've also changed the last patch which prints warnings when qcom-ethqos
> changes the PCS state - this will now indicate in a readable form
> whether the ANE or SGMRAL bits have changed state, rather than having
> to refer back to the definitions in the code or the databook.
>
> I am hoping that - subject to this working for qcom-ethqos - we can
> drop this last patch in the final submission, along with the
> dwmac_ctrl_ane() and ethqos_pcs_set_inband() functions and associated
> definitions. This will also mean that stmmac will finally be driving
> the PCS correctly from a phylink point of view.
>
Apologies for the delay in sharing test results. I had some board issues
to work through.
I applied your previous RFC series on top of the two qcom-ethqos/serdes
cleanup series and have the following results to report for the QCS9100
Ride R3 board (AQR115C PHY):
- Link up at 2.5G, 1G, and 100M is fine (phylink logs below). The PCS
link takes a moment to stabilize, but after that it's stable.
- No data path issues at these speeds either.
- The warning ("PCS configuration changed from phylink by glue;
ANE 0 -> 1") is observed when the link comes up at 1G/100M.
- I did find one issue: the data path breaks when the link speed
changes from 2.5G to 1G or 100M. Notably, this is not consistently
reproducible, and the issue persists even after *dropping* this
series and the two qcom-ethqos/serdes cleanup series, so it appears
to be pre-existing. I am trying to debug this separately.
Two additional data points: this patch series may have increased the
reproducibility rate to near-always, and the data path recovers
after an administrative interface down/up cycle. Logs for both the
working and non-working cases are included below.
- Since I still have to test on IQ9 EVK (QCA8081 PHY), I am planning
to rebase to the net-next tip and apply the latest version of the
series. I will share an update in a couple of days.
Ayaan
---
Logs
1. Boot up at 2.5G
[ 10.895909] qcom-ethqos 23040000.ethernet eth1: PHY stmmac-0:08 uses interfaces 4,23,27, validating 23
[ 10.905494] qcom-ethqos 23040000.ethernet eth1: interface 23 (2500base-x) rate match pause supports 0-7,9,13-14,47
[ 10.905501] qcom-ethqos 23040000.ethernet eth1: PHY [stmmac-0:08] driver [Aquantia AQR115C] (irq=289)
[ 10.905504] qcom-ethqos 23040000.ethernet eth1: phy: 2500base-x setting supported 00000000,00000000,00008000,000062ff advertising 00000000,00000000,00008000,000062ff
[ 10.970145] qcom-ethqos 23040000.ethernet eth1: configuring for phy/2500base-x link mode
[ 10.978487] qcom-ethqos 23040000.ethernet eth1: major config, requested phy/2500base-x
[ 10.986630] qcom-ethqos 23040000.ethernet eth1: interface 2500base-x inband modes: pcs=01 phy=00
[ 10.986633] qcom-ethqos 23040000.ethernet eth1: major config, active phy/outband/2500base-x
[ 10.986636] qcom-ethqos 23040000.ethernet eth1: phylink_mac_config: mode=phy/2500base-x/none adv=00000000,00000000,00000000,00000000 pause=00
[ 10.999279] qcom-ethqos 23040000.ethernet eth1: phy link down 2500base-x/1Gbps/Full/none/off/nolpi
[ 11.524483] qcom-ethqos 23040000.ethernet eth1: Timeout accessing MAC_VLAN_Tag_Filter
[ 15.571728] qcom-ethqos 23040000.ethernet eth1: phy link up 2500base-x/2.5Gbps/Full/none/rx/tx/nolpi
[ 15.583871] qcom-ethqos 23040000.ethernet: PCS Link Up
[ 15.592285] qcom-ethqos 23040000.ethernet eth1: Link is Up - 2.5Gbps/Full - flow control rx/tx
[ 15.597500] qcom-ethqos 23040000.ethernet eth1: pcs link up
2. Boot up at 1G
[ 10.225496] qcom-ethqos 23040000.ethernet eth1: PHY stmmac-0:08 uses interfaces 4,23,27, validating 23
[ 10.225507] qcom-ethqos 23040000.ethernet eth1: interface 23 (2500base-x) rate match pause supports 0-7,9,13-14,47
[ 10.225514] qcom-ethqos 23040000.ethernet eth1: PHY [stmmac-0:08] driver [Aquantia AQR115C] (irq=296)
[ 10.225518] qcom-ethqos 23040000.ethernet eth1: phy: 2500base-x setting supported 00000000,00000000,00008000,000062ff advertising 00000000,00000000,00008000,000062ff
[ 10.570643] qcom-ethqos 23040000.ethernet eth1: configuring for phy/2500base-x link mode
[ 10.578994] qcom-ethqos 23040000.ethernet eth1: major config, requested phy/2500base-x
[ 10.587126] qcom-ethqos 23040000.ethernet eth1: interface 2500base-x inband modes: pcs=01 phy=00
[ 10.596149] qcom-ethqos 23040000.ethernet eth1: major config, active phy/outband/2500base-x
[ 10.604727] qcom-ethqos 23040000.ethernet eth1: phylink_mac_config: mode=phy/2500base-x/none adv=00000000,00000000,00000000,00000000 pause=00
[ 10.635960] qcom-ethqos 23040000.ethernet eth1: phy link down 2500base-x/Unknown/Unknown/none/off/nolpi
[ 11.166068] qcom-ethqos 23040000.ethernet eth1: Timeout accessing MAC_VLAN_Tag_Filter
[ 14.009935] qcom-ethqos 23040000.ethernet eth1: phy link up sgmii/1Gbps/Full/none/rx/tx/nolpi
[ 14.021130] qcom-ethqos 23040000.ethernet eth1: major config, requested phy/sgmii
[ 14.028849] qcom-ethqos 23040000.ethernet eth1: interface sgmii inband modes: pcs=03 phy=03
[ 14.037455] qcom-ethqos 23040000.ethernet eth1: major config, active phy/outband/sgmii
[ 14.045597] qcom-ethqos 23040000.ethernet eth1: phylink_mac_config: mode=phy/sgmii/none adv=00000000,00000000,00000000,00000000 pause=03
[ 14.062429] dwmac: PCS configuration changed from phylink by glue, please report: 0x00040000 -> 0x00041000
[ 14.071296] qcom-ethqos 23040000.ethernet: PCS Link Up
[ 14.072349] dwmac: ANE 0 -> 1
[ 14.077643] qcom-ethqos 23040000.ethernet eth1: pcs link up
[ 14.086899] qcom-ethqos 23040000.ethernet: PCS Link Down
[ 14.095640] qcom-ethqos 23040000.ethernet eth1: Link is Up - 1Gbps/Full - flow control rx/tx
[ 14.101012] qcom-ethqos 23040000.ethernet eth1: pcs link down
[ 14.104778] qcom-ethqos 23040000.ethernet: PCS ANE process completed
[ 14.109740] qcom-ethqos 23040000.ethernet eth1: Link is Down
[ 14.115609] qcom-ethqos 23040000.ethernet: PCS Link Up
[ 14.115616] qcom-ethqos 23040000.ethernet eth1: pcs link up
[ 14.143888] qcom-ethqos 23040000.ethernet: PCS ANE process completed
[ 14.147725] qcom-ethqos 23040000.ethernet eth1: Link is Up - 1Gbps/Full - flow control rx/tx
[ 14.154217] qcom-ethqos 23040000.ethernet: PCS Link Up
[ 14.154225] qcom-ethqos 23040000.ethernet eth1: pcs link up
3. Moving from 2.5G to 1G : non-working scenario
[463994.745225] qcom-ethqos 23040000.ethernet eth1: pcs link up
[463994.760504] qcom-ethqos 23040000.ethernet eth1: Link is Up - 2.5Gbps/Full - flow control rx/tx
**DHCP/pings work fine**
**Link speed changed to 1G**
[464006.855060] qcom-ethqos 23040000.ethernet eth1: phy link down 2500base-x/2.5Gbps/Full/none/rx/tx/nolpi
[464006.864767] qcom-ethqos 23040000.ethernet eth1: Link is Down
[464010.370790] qcom-ethqos 23040000.ethernet eth1: phy link up sgmii/1Gbps/Full/none/rx/tx/nolpi
[464010.377197] qcom-ethqos 23040000.ethernet: PCS Link Down
[464010.382018] qcom-ethqos 23040000.ethernet eth1: major config, requested phy/sgmii
[464010.385204] qcom-ethqos 23040000.ethernet eth1: pcs link down
[464010.399011] qcom-ethqos 23040000.ethernet eth1: interface sgmii inband modes: pcs=03 phy=03
[464010.407690] qcom-ethqos 23040000.ethernet eth1: major config, active phy/outband/sgmii
[464010.415922] qcom-ethqos 23040000.ethernet eth1: phylink_mac_config: mode=phy/sgmii/none adv=00000000,00000000,00000000,00000000 pause=03
[464010.440494] dwmac: PCS configuration changed from phylink by glue, please report: 0x00040000 -> 0x00041000
[464010.440977] qcom-ethqos 23040000.ethernet: PCS Link Up
[464010.450504] dwmac: ANE 0 -> 1
[464010.455870] qcom-ethqos 23040000.ethernet eth1: pcs link up
[464010.465325] qcom-ethqos 23040000.ethernet eth1: Link is Up - 1Gbps/Full - flow control rx/tx
[464010.465957] qcom-ethqos 23040000.ethernet: PCS Link Down
[464010.474105] qcom-ethqos 23040000.ethernet eth1: Link is Down
[464010.479633] qcom-ethqos 23040000.ethernet eth1: pcs link down
[464010.500532] qcom-ethqos 23040000.ethernet eth1: Link is Up - 1Gbps/Full - flow control rx/tx
4. Moving from 2.5G to 1G : working scenario
**Link speed changed to 1G**
[ 123.351212] qcom-ethqos 23040000.ethernet eth1: phy link down 2500base-x/2.5Gbps/Full/none/rxtx/nolpi
[ 123.360827] qcom-ethqos 23040000.ethernet eth1: Link is Down
[ 126.742306] qcom-ethqos 23040000.ethernet eth1: phy link up sgmii/1Gbps/Full/none/rx/tx/nolpi
[ 126.747557] qcom-ethqos 23040000.ethernet: PCS Link Down
[ 126.756547] qcom-ethqos 23040000.ethernet eth1: pcs link down
[ 126.762525] qcom-ethqos 23040000.ethernet eth1: major config, requested phy/sgmii
[ 126.770227] qcom-ethqos 23040000.ethernet eth1: interface sgmii inband modes: pcs=03 phy=03
[ 126.778814] qcom-ethqos 23040000.ethernet eth1: major config, active phy/outband/sgmii
[ 126.786958] qcom-ethqos 23040000.ethernet eth1: phylink_mac_config: mode=phy/sgmii/none adv=00000000,00000000,0000000,00000000 pause=03
[ 126.800656] qcom-ethqos 23040000.ethernet: PCS Link Up
[ 126.805951] qcom-ethqos 23040000.ethernet eth1: pcs link up
[ 126.812286] qcom-ethqos 23040000.ethernet: PCS Link Down
[ 126.817748] qcom-ethqos 23040000.ethernet eth1: pcs link down
[ 126.823693] qcom-ethqos 23040000.ethernet: PCS Link Up
[ 126.828973] qcom-ethqos 23040000.ethernet eth1: pcs link up
[ 126.837039] [DBG - SerDes update] ethqos_fix_mac_speed called with speed 1000, interface sgmii
[ 126.846539] dwmac: PCS configuration changed from phylink by glue, please report: 0x00040000 -> 0x00041000
[ 126.856546] dwmac: ANE 0 -> 1
[ 126.860098] qcom-ethqos 23040000.ethernet eth1: Link is Up - 1Gbps/Full - flow control rx/tx
[ 126.860554] qcom-ethqos 23040000.ethernet: PCS Link Down
[ 126.868794] qcom-ethqos 23040000.ethernet eth1: Link is Down
[ 126.874228] qcom-ethqos 23040000.ethernet eth1: pcs link down
[ 126.874286] qcom-ethqos 23040000.ethernet: PCS ANE process completed
[ 126.880062] [DBG - SerDes update] ethqos_fix_mac_speed called with speed 1000, interface sgmii
[ 126.885958] qcom-ethqos 23040000.ethernet: PCS Link Up
[ 126.885966] qcom-ethqos 23040000.ethernet eth1: pcs link up
[ 126.892519] qcom-ethqos 23040000.ethernet eth1: Link is Up - 1Gbps/Full - flow control rx/tx
[ 126.901370] qcom-ethqos 23040000.ethernet: PCS ANE process completed
[ 126.927532] qcom-ethqos 23040000.ethernet: PCS Link Up
[ 126.932822] qcom-ethqos 23040000.ethernet eth1: pcs link up
More information about the linux-arm-kernel
mailing list