[PATCH RFC 0/9] net: stmmac: qcom-ethqos: add Shikra EMAC support
Mohd Ayaan Anwar
mohd.anwar at oss.qualcomm.com
Thu Jun 11 11:36:56 PDT 2026
(Sending this out as an RFC because we have a couple of fixes for RGMII
handling in dwmac-qcom-ethqos, as well as a new framework to manage
clocks required by the System NOC. If this gets into a decent shape,
then this series will be split between patches for DT and net-next.)
Hi,
This series adds Gigabit Ethernet support for the Qualcomm Shikra SoC,
which integrates two EMAC controllers based on the Synopsys GMAC IP,
similar to previous Qualcomm platforms.
Before introducing the new compatible, two generic fixes are applied to
the driver that benefit all platforms:
- ethqos_rgmii_macro_init() is converted to void; the return value was
never checked and the speed validation was redundant.
- RGMII_ID mode ("rgmii-id") was incorrectly falling through to the
standard DLL bring-up path, which may add MAC-internal delays. The
fix powers down the DLL, sets DDR bypass mode, and programs the
IO_MACRO via a new ethqos_rgmii_id_macro_init() helper. The clock
rate doubling in ethqos_set_clk_tx_rate() is also corrected for
bypass mode.
Shikra-specific additions:
- On Shikra, access to the System NOC from the EMAC is gated by three
dedicated clocks. The axi and axi-noc clocks are sourced from a
dedicated RCG (emac0_axi_clk_srcg) per EMAC instance. The
pcie-tile-axi-noc clock (gcc_pcie_tile_axi_sys_noc_clk) gates an
arbiter internal to the NOC shared by both EMAC instances and must
be enabled for any EMAC-to-DDR traffic to complete. Generic
infrastructure is introduced (ethqos_noc_clk_cfg) so future
platforms can declare their own sets.
- The qcom,shikra-ethqos compatible is registered.
- DTS for the SoC and three EVK boards (CQM, CQS, IQS) is included.
The CQM and CQS boards expose one EMAC; the IQS board exposes both.
Dependencies:
This series is based on linux-next and depends on the core Shikra SoC
framework (DT, clock, regulator) being merged.
Tested on the Shikra CQM-EVK, CQS-EVK, and IQS-EVK with rgmii-id mode
at 1G/100M/10M speeds.
---
Mohd Ayaan Anwar (9):
dt-bindings: net: qcom,ethqos: add qcom,shikra-ethqos compatible
net: stmmac: qcom-ethqos: convert ethqos_rgmii_macro_init() to void
net: stmmac: qcom-ethqos: fix RGMII_ID mode to use DLL bypass
net: stmmac: qcom-ethqos: add per-platform NOC clock voting
net: stmmac: qcom-ethqos: add Shikra EMAC support
arm64: dts: qcom: shikra: Add ethernet nodes
arm64: dts: qcom: shikra-cqm-evk: Enable ethernet0
arm64: dts: qcom: shikra-cqs-evk: Enable ethernet0
arm64: dts: qcom: shikra-iqs-evk: Enable both ethernet ports
.../devicetree/bindings/net/qcom,ethqos.yaml | 31 ++-
arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts | 119 +++++++++++
arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts | 119 +++++++++++
arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts | 235 +++++++++++++++++++++
arch/arm64/boot/dts/qcom/shikra.dtsi | 78 +++++++
.../ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c | 167 ++++++++++++++-
6 files changed, 730 insertions(+), 19 deletions(-)
---
base-commit: 999ed3289ceea2b2808f396b4bd2f9a43dcba033
change-id: 20260611-shikra_ethernet-11a1b318d5b6
Best regards,
--
Mohd Ayaan Anwar <mohd.anwar at oss.qualcomm.com>
More information about the linux-arm-kernel
mailing list