[PATCH net v2 0/3] stmmac: fix ETHQOS SerDes interface handling
From: Thomas Karpiniec
Date: Fri Sep 18 2026 - 00:51:39 EST
From: Thomas Karpiniec <tom@xxxxxxxx>
With a QCA8081 PHY and phy-mode = "2500base-x", stmmac reports only
2500BASE-X in phylink's supported interface bitmap. Phylink consequently
removes the PHY's lower-speed copper modes, preventing a link with a
gigabit switch.
The QCA8081 uses SGMII for lower copper speeds and 2500BASE-X for 2.5Gbps.
ETHQOS already switches the SerDes accordingly. Add the integrated PCS
interface bitmap to phylink's supported interfaces and mark the Qualcomm
SerDes as supporting 2500BASE-X. Also propagate platform mac_finish()
errors instead of reporting a successfully configured link.
The existing Qualcomm PCS ANE handling is unchanged. Physical cable swaps
produced transient PCS events during the unplug interval, but carrier and
PCS counters remained unchanged for 60 seconds after each final link.
This exact series was tested on an IQ-8275 EVK with cold boots and
physical cable swaps at 1Gbps and 2.5Gbps. Two 100-packet tests at 1Gbps
had no loss. Injecting -ETIMEDOUT from mac_finish() held carrier down at
both speeds, and both recovered after disabling injection and restarting
the interface. The test did not cover a speed transition with the cable
remaining connected or traffic at 2.5Gbps.
The tests used regulator_ignore_unused: without it, the upstream board
tree loses PCS link because it lacks the vendor REFGEN always-on
workaround. No other kernel or device-tree patches were applied.
Changes in v2:
- Replace the qcom-ethqos get_interfaces() callback with integrated PCS
interface propagation and the 2500BASE-X capability flag.
Thomas Karpiniec (3):
net: stmmac: propagate platform mac_finish errors
net: stmmac: advertise integrated PCS interfaces to phylink
net: stmmac: qcom-ethqos: enable 2500BASE-X in integrated PCS
.../net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c | 1 +
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 10 ++++++++--
2 files changed, 9 insertions(+), 2 deletions(-)
base-commit: 46bc52d13594848023e681860df8700c8db14354
--
2.54.0 (Apple Git-157)