mirror of
https://github.com/LibreELEC/LibreELEC.tv
synced 2025-09-24 19:46:01 +07:00
61 lines
2.2 KiB
Diff
61 lines
2.2 KiB
Diff
From 17eeb58cbeadedfa75674e09e01bd0b44c624c29 Mon Sep 17 00:00:00 2001
|
|
From: Sebastian Reichel <sebastian.reichel@collabora.com>
|
|
Date: Thu, 24 Jul 2025 16:31:25 +0200
|
|
Subject: [PATCH 040/113] FROMLIST(v1): arm64: dts: rockchip: use MAC TX delay
|
|
for ROCK 4D
|
|
|
|
According to the Ethernet controller device tree binding "rgmii-id"
|
|
means, that the PCB does not have extra long lines to add the required
|
|
delays. This is indeed the case for the ROCK 4D.
|
|
|
|
The problem is, that the Rockchip MAC Linux driver interprets the
|
|
interface type differently and abuses the information to configure
|
|
RX and TX delays in the MAC using (vendor) properties 'rx_delay' and
|
|
'tx_delay'.
|
|
|
|
When Detlev Casanova upstreamed the ROCK 4D device tree, he used the
|
|
correct description for the board ("rgmii-id"). This results in no delays
|
|
being configured in the MAC. At the same time the PHY will provide
|
|
some delays.
|
|
|
|
This works to some degree, but is not a stable configuration. All five
|
|
ROCK 4D production boards, which have recently been added to the Collabora
|
|
LAVA lab for CI purposes have trouble with data not getting through
|
|
after a connection has been established.
|
|
|
|
Using the same delay setup as the vendor device tree fixes the
|
|
functionality (at the cost of not properly following the DT binding).
|
|
As we cannot fix the driver behavior for RK3576 (some other boards
|
|
already depend on this), let's update the ROCK 4D DT instead.
|
|
|
|
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
|
|
---
|
|
arch/arm64/boot/dts/rockchip/rk3576-rock-4d.dts | 4 +++-
|
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/arch/arm64/boot/dts/rockchip/rk3576-rock-4d.dts b/arch/arm64/boot/dts/rockchip/rk3576-rock-4d.dts
|
|
index 9bc33422ced5..b607afb09635 100644
|
|
--- a/arch/arm64/boot/dts/rockchip/rk3576-rock-4d.dts
|
|
+++ b/arch/arm64/boot/dts/rockchip/rk3576-rock-4d.dts
|
|
@@ -272,7 +272,7 @@ &cpu_l3 {
|
|
&gmac0 {
|
|
clock_in_out = "output";
|
|
phy-handle = <&rgmii_phy0>;
|
|
- phy-mode = "rgmii-id";
|
|
+ phy-mode = "rgmii-rxid";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <ð0m0_miim
|
|
ð0m0_tx_bus2
|
|
@@ -281,6 +281,8 @@ ð0m0_rgmii_clk
|
|
ð0m0_rgmii_bus
|
|
ðm0_clk0_25m_out>;
|
|
status = "okay";
|
|
+ tx_delay = <0x20>;
|
|
+ rx_delay = <0x00>;
|
|
};
|
|
|
|
&gpu {
|
|
--
|
|
2.34.1
|
|
|