[PATCH 3/3] arm64: dts: rockchip: Add RTL8367RB-VB switch to Radxa E24C
Chukun Pan
amadeus at jmu.edu.cn
Mon Jul 28 07:30:20 PDT 2025
Hi,
> Initial testing with iperf3 showed ~930-940 Mbits/sec in one direction
> and only around ~1-2 Mbits/sec in the other direction.
> 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.
Have you tried setting phy-mode to rgmii? (just for testing)
Usually this problem is caused by incorrect rx/tx delay.
> + ethernet-switch at 1d {
> + compatible = "realtek,rtl8365mb";
> + reg = <0x1d>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&rtl8367rb_eint>;
Shouldn't this pinctrl be written in interrupts?
> + ethernet-port at 6 {
> + reg = <6>;
> + ethernet = <&gmac1>;
> + label = "cpu";
No need for label = "cpu":
https://github.com/torvalds/linux/commit/567f38317054e66647fd59cfa4e261219a2a21db
> This series relaxes the realtek dsa drivers requirement of having a mdio
> child OF node to probe and instead have it register a user_mii_bus to
> make it function when a mdio child OF node is missing.
This is weird, the switch is connected to the gmac via mdio.
Can you try the following and see if it works? I tried it on
a rk3568 + rtl8367s board and it worked:
```
&mdio1 {
switch at 29 {
compatible = "realtek,rtl8365mb";
reg = <29>;
reset-gpios = ...
switch_intc: interrupt-controller {
interrupt-parent = ...
interrupts = ...
interrupt-controller;
#address-cells = <0>;
#interrupt-cells = <1>;
};
mdio {
#address-cells = <1>;
#size-cells = <0>;
phy0: ethernet-phy at 0 {
reg = <0>;
interrupt-parent = <&switch_intc>;
interrupts = <0>;
};
phy1: ethernet-phy at 1 {
reg = <1>;
interrupt-parent = <&switch_intc>;
interrupts = <1>;
};
phy2: ethernet-phy at 2 {
reg = <2>;
interrupt-parent = <&switch_intc>;
interrupts = <2>;
};
phy3: ethernet-phy at 3 {
reg = <3>;
interrupt-parent = <&switch_intc>;
interrupts = <3>;
};
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port at 0 {
reg = <0>;
label = "wan";
phy-handle = <&phy0>;
};
port at 1 {
reg = <1>;
label = "lan1";
phy-handle = <&phy1>;
};
port at 2 {
reg = <2>;
label = "lan2";
phy-handle = <&phy2>;
};
port at 3 {
reg = <3>;
label = "lan3";
phy-handle = <&phy3>;
};
port at x {
reg = <x>;
ethernet = <&gmac1>;
phy-mode = "rgmii";
fixed-link {
speed = <1000>;
full-duplex;
};
};
};
};
};
```
Thanks,
Chukun
--
2.25.1
More information about the linux-arm-kernel
mailing list