From nobody Mon Oct 6 03:16:28 2025 Received: from smtp.forwardemail.net (smtp.forwardemail.net [149.28.215.223]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 118F92236EB for ; Sun, 27 Jul 2025 18:03:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=149.28.215.223 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753639417; cv=none; b=W1vZadlPEyMaHy3CZGh1f3X/uWEWr2CXfmy01dJPk87XeMxY1dYiUqOvMEmZ+KDVLWVXPWKUQPS6OIs2Yh/F1JvLuw3A4EuTsrNFnJTW3ui4J45NH2jL1nsOr3BtoTP7otRwY9HEYtWjJVty+nhL5tQ2TRdge/voyvaShsMrfAE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753639417; c=relaxed/simple; bh=WIxZnDfBjy3+MWbIUs96xiEYfrzW7OIdSfiwwszp1mM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NORpYhmSVQiUh10F17mQ3w0xpPy6CCHxhAXLf9HMM5h49RGUY56BRSjQFVHOqKsOAzqTB3qsV9FSxfjmU0rscdf0dxVMrsjSptkPHrkmW+WW7dNo0nVCuGJenmkJ6fqLvJk1JHQZ6zFITJ56OhgHTGpc4iNMXW0Hx9saS/N6qUI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=kwiboo.se; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b=Tmq1r5Vc; arc=none smtp.client-ip=149.28.215.223 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=kwiboo.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b="Tmq1r5Vc" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se; h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To: Message-ID: Date: Subject: Cc: To: From; q=dns/txt; s=fe-e1b5cab7be; t=1753639415; bh=EeTBhSz8vgF+IOB9tNLiutH2dTp1nA31ocl9xEGhTRc=; b=Tmq1r5VcyfGuayV2LqXYS7PWy3TglYmwgPOQbPV7Yru/G7xdA4xTmOG5G/84OQcHataUdAjtW hVWznTXD3rlBVkii17Gqt2Urhsoh9hnKL0vaoiaC0vciiqAVc9yl0IjDlcbTPZeBodBD/62y1N5 xQI0Tws7hgKoLS+SeLRc611y6mGQuOicL6Mg7Y/tlIa4K4ACMZ+fZLWUnF4mPBDyak+C8cHlb8/ 7j5Fxy3iU3Z9GYImoYAO/4j+BZINQRCXNz6iBFP5J5aT3M90R5XGf1ByY6ksdBI4C2Xb12aqgxr JzWvCsarlIFEWLAgYxPInhNVxcjXNQ86oEgPz3nNesRg== X-Forward-Email-ID: 688669eec509b9ee169cf33b X-Forward-Email-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net, 149.28.215.223 X-Forward-Email-Version: 1.1.7 X-Forward-Email-Website: https://forwardemail.net X-Complaints-To: abuse@forwardemail.net X-Report-Abuse: abuse@forwardemail.net X-Report-Abuse-To: abuse@forwardemail.net From: Jonas Karlman To: Linus Walleij , =?UTF-8?q?Alvin=20=C5=A0ipraga?= , Andrew Lunn , Vladimir Oltean , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiko Stuebner Cc: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Yao Zi , Chukun Pan , netdev@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Jonas Karlman , devicetree@vger.kernel.org Subject: [PATCH 3/3] arm64: dts: rockchip: Add RTL8367RB-VB switch to Radxa E24C Date: Sun, 27 Jul 2025 18:03:00 +0000 Message-ID: <20250727180305.381483-4-jonas@kwiboo.se> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250727180305.381483-1-jonas@kwiboo.se> References: <20250727180305.381483-1-jonas@kwiboo.se> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The Radxa E24C has a Realtek RTL8367RB-VB switch with four usable ports and is connected using a fixed-link to GMAC1 on the RK3528 SoC. Add an ethernet-switch node to describe the RTL8367RB-VB switch. Signed-off-by: Jonas Karlman --- Initial testing with iperf3 showed ~930-940 Mbits/sec in one direction and only around ~1-2 Mbits/sec in the other direction. The RK3528 hardware design guide recommends that timing between TXCLK and data is controlled by MAC, and timing between RXCLK and data is controlled by PHY. Any mix of MAC (rx/tx delay) and switch (rx/tx internal delay) did not seem to resolve this speed issue, however dropping snps,tso seems to fix that issue. Unsure what is best here, should MAC or switch add the delays? Here I just followed DT from vendor downstream tree and added rx/tx internal delay to switch. Vendor downstream DT also adds 'pause' to the fixed-link nodes, and this may be something that should be added here. However, during testing flow control always ended up being disabled so I skipped 'pause' here. Schematics: https://dl.radxa.com/e/e24c/docs/radxa_e24c_v1200_schematic.pdf --- .../boot/dts/rockchip/rk3528-radxa-e24c.dts | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/arch/arm64/boot/dts/rockchip/rk3528-radxa-e24c.dts b/arch/arm6= 4/boot/dts/rockchip/rk3528-radxa-e24c.dts index 225f2b0c5339..26754ff7f4ef 100644 --- a/arch/arm64/boot/dts/rockchip/rk3528-radxa-e24c.dts +++ b/arch/arm64/boot/dts/rockchip/rk3528-radxa-e24c.dts @@ -196,6 +196,7 @@ &cpu3 { }; =20 &gmac1 { + /delete-property/ snps,tso; clock_in_out =3D "output"; phy-mode =3D "rgmii-id"; phy-supply =3D <&avdd_rtl8367rb>; @@ -368,6 +369,60 @@ &mdio1 { reset-delay-us =3D <25000>; reset-gpios =3D <&gpio4 RK_PC2 GPIO_ACTIVE_LOW>; reset-post-delay-us =3D <100000>; + + ethernet-switch@1d { + compatible =3D "realtek,rtl8365mb"; + reg =3D <0x1d>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&rtl8367rb_eint>; + + ethernet-ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + ethernet-port@0 { + reg =3D <0>; + label =3D "wan"; + }; + + ethernet-port@1 { + reg =3D <1>; + label =3D "lan1"; + }; + + ethernet-port@2 { + reg =3D <2>; + label =3D "lan2"; + }; + + ethernet-port@3 { + reg =3D <3>; + label =3D "lan3"; + }; + + ethernet-port@6 { + reg =3D <6>; + ethernet =3D <&gmac1>; + label =3D "cpu"; + phy-mode =3D "rgmii-id"; + rx-internal-delay-ps =3D <2000>; + tx-internal-delay-ps =3D <2000>; + + fixed-link { + speed =3D <1000>; + full-duplex; + }; + }; + }; + + interrupt-controller { + interrupt-parent =3D <&gpio1>; + interrupts =3D ; + interrupt-controller; + #address-cells =3D <0>; + #interrupt-cells =3D <1>; + }; + }; }; =20 &pinctrl { --=20 2.50.1