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

From: Suraj Gupta

Date: Tue Oct 06 2026 - 07:07:03 EST


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

- 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 a pre-requisite.
That change is required for this series to compile and is not included
here to avoid duplication.
- The series advertises the core's active 10G or 25G rate only. Runtime
switching between 10GBASE-R and 25GBASE-R is not supported and can be
added later.

[1]: https://lore.kernel.org/all/20260929081316.803997-1-srinivas.neeli@xxxxxxx/

Changes in v4:
- Drop the "legacy" nomenclature and use dmaengine / non-dmaengine terminology
as it might confuse with MAC instead of driver flow (Andrew Lunn).
- Patch 1/6: Gate the "xlnx,txcsum" DT property behind the MAC's tx_csum
capability, so TX checksum offload is not advertised for a MAC whose
hardware cannot complete checksums (Sashiko bot).
- Patch 2/6: Reword the binding description to state that the
PCS/PMA is integrated into the IP, and that MDIO bus unavailability and
SFP module (I2C) management are detailed in the IP (Andrew Lunn).
- Patch 3/6: Reword the dma_err_handler comment from "legacy embedded-DMA
(1G) path" to "non-dmaengine flow (1G MAC)" (Andrew Lunn).
- Advertise only the core's active line rate.

V3: https://lore.kernel.org/all/20260831150816.1020883-1-suraj.gupta2@xxxxxxx/

Changes in v3:
- Dropped patch 1/7 ("clk: Add devm_clk_bulk_get_enable()"); it has been
applied to mainline as commit b698927accb1.
- Patch 2/6 (dt-bindings):
* Added Reviewed-by from Rob Herring. Thanks Rob!
V2: https://lore.kernel.org/all/20260806181153.1213996-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 (6):
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 | 110 ++++
MAINTAINERS | 1 +
drivers/net/ethernet/xilinx/Makefile | 3 +-
drivers/net/ethernet/xilinx/xilinx_axienet.h | 90 +++
.../net/ethernet/xilinx/xilinx_axienet_main.c | 610 ++++++++++++------
.../net/ethernet/xilinx/xilinx_axienet_xxv.c | 592 +++++++++++++++++
.../net/ethernet/xilinx/xilinx_axienet_xxv.h | 141 ++++
7 files changed, 1364 insertions(+), 183 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

--
2.25.1