[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250613-net-k1-emac-v1-0-cc6f9e510667@iscas.ac.cn>
Date: Fri, 13 Jun 2025 10:15:06 +0800
From: Vivian Wang <wangruikang@...as.ac.cn>
To: Andrew Lunn <andrew+netdev@...n.ch>,
"David S. Miller" <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>,
Rob Herring <robh@...nel.org>, Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>, Yixun Lan <dlan@...too.org>,
Paul Walmsley <paul.walmsley@...ive.com>,
Palmer Dabbelt <palmer@...belt.com>, Albert Ou <aou@...s.berkeley.edu>,
Alexandre Ghiti <alex@...ti.fr>, Richard Cochran <richardcochran@...il.com>,
Philipp Zabel <p.zabel@...gutronix.de>,
Russell King <linux@...linux.org.uk>, Vivian Wang <wangruikang@...as.ac.cn>
Cc: Vivian Wang <uwu@...m.page>, netdev@...r.kernel.org,
devicetree@...r.kernel.org, linux-riscv@...ts.infradead.org,
spacemit@...ts.linux.dev, linux-kernel@...r.kernel.org
Subject: [PATCH net-next 0/4] Add Ethernet MAC support for SpacemiT K1
SpacemiT K1 has two gigabit Ethernet MACs with RGMII and RMII support.
Add a driver for them, as well as the supporting devicetree and bindings
updates.
Tested on BananaPi BPI-F3 (but see "Known issues").
I would like to note that even though some bit field names superficially
resemble that of DesignWare MAC, but all other differences point to it
in fact being a custom design.
Based on SpacemiT drivers [1]. This series depends on reset controller
support for K1 [2]. These patches can also be pulled from:
https://github.com/dramforever/linux/tree/k1/ethernet/v1
Known issues:
- RX fails to achieve close-enough-to gigabit performance for unknown
reasons. The 6.6-based Linux in the vendor distribution "Bianbu" can
do over 900 Mbps, so this should be a software problem, but I haven't
figured out why yet. A cursory look at "top" tells me that ksoftirqd
takes up almost one entire core, which suggests that RX could be
compute-bound.
Tested with Banana Pi BPI-F3:
# On the BPI-F3
taskset -c 2 iperf3 -s
# On the other side
iperf3 --bitrate 0 --time 10 {--reverse,} {--udp,} -c [ip]
Results (TX/RX from BPI-F3 perspective):
TCP TX: 941 Mbits/sec
UDP TX: 948 Mbits/sec
TCP RX: 617 Mbits/sec
UDP RX: 647 Mbits/sec
- No DT for Milk-V Jupiter. I do not have this hardware to test yet.
If I get access to it later I will add its DT changes.
[1]: https://github.com/spacemit-com/linux-k1x
[2]: https://lore.kernel.org/all/20250613011139.1201702-1-elder@riscstar.com
---
Vivian Wang (4):
dt-bindings: net: Add support for SpacemiT K1
net: spacemit: Add K1 Ethernet MAC
riscv: dts: spacemit: Add Ethernet support for K1
riscv: dts: spacemit: Add Ethernet support for BPI-F3
.../devicetree/bindings/net/spacemit,k1-emac.yaml | 81 +
arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts | 46 +
arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi | 48 +
arch/riscv/boot/dts/spacemit/k1.dtsi | 22 +
drivers/net/ethernet/Kconfig | 1 +
drivers/net/ethernet/Makefile | 1 +
drivers/net/ethernet/spacemit/Kconfig | 29 +
drivers/net/ethernet/spacemit/Makefile | 6 +
drivers/net/ethernet/spacemit/k1_emac.c | 2059 ++++++++++++++++++++
drivers/net/ethernet/spacemit/k1_emac.h | 416 ++++
10 files changed, 2709 insertions(+)
---
base-commit: d9946fe286439c2aeaa7953b8c316efe5b83d515
change-id: 20250606-net-k1-emac-3e181508ea64
prerequisite-message-id: <20250613011139.1201702-1-elder@...cstar.com>
prerequisite-patch-id: 2c73c63bef3640e63243ddcf3c07b108d45f6816
prerequisite-patch-id: 0faba75db33c96a588e722c4f2b3862c4cbdaeae
prerequisite-patch-id: 5db8688ef86188ec091145fae9e14b2211cd2b8c
prerequisite-patch-id: e0fe84381637dc888d996a79ea717ff0e3441bd1
prerequisite-patch-id: 2fc0ef1c2fcda92ad83400da5aadaf194fe78627
prerequisite-patch-id: bfa54447803e5642059c386e2bd96297e691d0bf
Best regards,
--
Vivian "dramforever" Wang
Powered by blists - more mailing lists