arch/arm64/boot/dts/rockchip/rk3328-rock-pi-e.dts | 1 + 1 file changed, 1 insertion(+)
Without the compatible string the Ethernet PHY is not bound to the
correct driver. This causes link instability under load, with throughput
eventually dropping to zero.
Add the explicit PHY ID compatible to ensure the proper driver is selected.
Signed-off-by: Adrian Kossmann <adrian.kossmann@posteo.de>
---
arch/arm64/boot/dts/rockchip/rk3328-rock-pi-e.dts | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3328-rock-pi-e.dts b/arch/arm64/boot/dts/rockchip/rk3328-rock-pi-e.dts
index a4bdd87d0729..4da5ff6f2572 100644
--- a/arch/arm64/boot/dts/rockchip/rk3328-rock-pi-e.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3328-rock-pi-e.dts
@@ -163,6 +163,7 @@ mdio {
#size-cells = <0>;
rtl8211: ethernet-phy@1 {
+ compatible = "ethernet-phy-id001c.c916";
reg = <1>;
pinctrl-0 = <ð_phy_int_pin>, <ð_phy_reset_pin>;
pinctrl-names = "default";
--
2.52.0
On Tue, Dec 09, 2025 at 09:09:33PM +0000, Adrian Kossmann wrote: > Without the compatible string the Ethernet PHY is not bound to the > correct driver. Which driver is being bound if you don't have a compatible? genphy? It is a bit unusual for phylib to get the wrong driver, so i would like to understand this a bit more. Andrew
Hi Andrew,
> It is a bit unusual for phylib to get the wrong driver, so i would
like to understand this a bit more.
after double-checking my setup I found that the PHY is in fact always
bound to the RTL8211F driver, even without the compatible string, and
this was rather an issue with my setup.
The link instability I observed was caused by inappropriate RGMII RX/TX
delay settings in the mainline DTS. With the current values for
rx_delay and tx_delay in the mainline DTS the link collapsed under load.
I've troubleshooted this with a known-good DTB and using its rx_delay
and tx_delay values fixes the issue.
I will send a v2 patch adjusting the delays instead of adding a compatible.
Adrian
© 2016 - 2025 Red Hat, Inc.