[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250728143020.1007374-1-amadeus@jmu.edu.cn>
Date: Mon, 28 Jul 2025 22:30:20 +0800
From: Chukun Pan <amadeus@....edu.cn>
To: jonas@...boo.se
Cc: alsi@...g-olufsen.dk,
amadeus@....edu.cn,
andrew@...n.ch,
conor+dt@...nel.org,
davem@...emloft.net,
devicetree@...r.kernel.org,
edumazet@...gle.com,
heiko@...ech.de,
krzk+dt@...nel.org,
kuba@...nel.org,
linus.walleij@...aro.org,
linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org,
linux-rockchip@...ts.infradead.org,
netdev@...r.kernel.org,
olteanv@...il.com,
pabeni@...hat.com,
robh@...nel.org,
ziyao@...root.org
Subject: Re: [PATCH 3/3] arm64: dts: rockchip: Add RTL8367RB-VB switch to Radxa E24C
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@1d {
> + compatible = "realtek,rtl8365mb";
> + reg = <0x1d>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&rtl8367rb_eint>;
Shouldn't this pinctrl be written in interrupts?
> + ethernet-port@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@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@0 {
reg = <0>;
interrupt-parent = <&switch_intc>;
interrupts = <0>;
};
phy1: ethernet-phy@1 {
reg = <1>;
interrupt-parent = <&switch_intc>;
interrupts = <1>;
};
phy2: ethernet-phy@2 {
reg = <2>;
interrupt-parent = <&switch_intc>;
interrupts = <2>;
};
phy3: ethernet-phy@3 {
reg = <3>;
interrupt-parent = <&switch_intc>;
interrupts = <3>;
};
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
label = "wan";
phy-handle = <&phy0>;
};
port@1 {
reg = <1>;
label = "lan1";
phy-handle = <&phy1>;
};
port@2 {
reg = <2>;
label = "lan2";
phy-handle = <&phy2>;
};
port@3 {
reg = <3>;
label = "lan3";
phy-handle = <&phy3>;
};
port@x {
reg = <x>;
ethernet = <&gmac1>;
phy-mode = "rgmii";
fixed-link {
speed = <1000>;
full-duplex;
};
};
};
};
};
```
Thanks,
Chukun
--
2.25.1
Powered by blists - more mailing lists