[PATCH net-next v2 0/7] net: xilinx: axienet: Add 10G/25G (XXV) ethernet support

From: Suraj Gupta

Date: Thu Aug 06 2026 - 14:12:44 EST


This patch series extends the AXI Ethernet driver to support the
XXV Ethernet subsystem.

- Add a devm_clk_bulk_get_enable() helper for consumers that need a set
of mandatory clocks enabled with device-managed cleanup.

- Refactor through struct axienet_config so per-MAC behaviour is
expressed as capability flags and callbacks instead of runtime
MAC-type checks in the shared code.

- Document the XXV IP in Devicetree.

- Add support for the XXV Ethernet subsystem.

- Add a preparatory RMON cleanup, a statistics-ops refactor of
struct axienet_config, and ethtool / ndo_get_stats64 counter reporting
for XXV.

Notes:
- This series depends on [1], which is sent as part of another series.
That change is required for this series to compile and is not included
here to avoid duplication.
- "xlnx,rxmem" is a required property; driver changes for that are
handled in a separate patch series[2].
- Due to phylink limitations, we aren't able to advertise both 10G and
25G base-r interfaces and switch between them using ethtool.
We are open to suggestions on how to handle this.

[1]: https://lore.kernel.org/all/20260717090824.2364230-1-srinivas.neeli@xxxxxxx/
[2]: https://lore.kernel.org/all/20260806170253.1199749-1-suraj.gupta2@xxxxxxx/

Changes in v2:
- Patch 1/7:
* Add Reviewed-by: Brian Masney <bmasney@xxxxxxxxxx>. Thanks Brian!
- Patch 3/7:
* Split the XXV binding into its own schema file
(xlnx,xxv-ethernet.yaml) instead of extending xlnx,axi-ethernet.yaml
with if/then branches, per Rob Herring's review.
* Add a multichannel (MCDMA) example.
- Patch 4/7:
* Require both GT Wizard reset-done bits in axienet_xxv_poll_link_ready()
so polling does not exit before both the TX and RX resets complete.

V1: https://lore.kernel.org/all/20260723123838.125145-1-suraj.gupta2@xxxxxxx/

Suraj Gupta (7):
clk: Add devm_clk_bulk_get_enable()
net: xilinx: axienet: Introduce axienet_config for MAC-specific ops
dt-bindings: net: xlnx,xxv-ethernet: Add Xilinx XXV 10G/25G Ethernet
net: xilinx: axienet: Add 10G/25G (XXV) ethernet support
net: xilinx: axienet: Make axienet_rmon_ranges non-static for reuse
net: xilinx: axienet: Dispatch statistics through axienet_config ops
net: xilinx: axienet: Add statistics support for XXV ethernet

.../bindings/net/xlnx,xxv-ethernet.yaml | 107 ++++
.../driver-api/driver-model/devres.rst | 1 +
MAINTAINERS | 1 +
drivers/clk/clk-devres.c | 7 +
drivers/net/ethernet/xilinx/Makefile | 3 +-
drivers/net/ethernet/xilinx/xilinx_axienet.h | 90 +++
.../net/ethernet/xilinx/xilinx_axienet_main.c | 603 ++++++++++++------
.../net/ethernet/xilinx/xilinx_axienet_xxv.c | 595 +++++++++++++++++
.../net/ethernet/xilinx/xilinx_axienet_xxv.h | 141 ++++
include/linux/clk.h | 23 +
10 files changed, 1389 insertions(+), 182 deletions(-)
create mode 100644 Documentation/devicetree/bindings/net/xlnx,xxv-ethernet.yaml
create mode 100644 drivers/net/ethernet/xilinx/xilinx_axienet_xxv.c
create mode 100644 drivers/net/ethernet/xilinx/xilinx_axienet_xxv.h


base-commit: 67ce33d8d0d166bc9e445d6e42a75b131ed23a7b
--
2.25.1