[PATCH] riscv: dts: sophgo: cv180x: fix USB dwc2 FIFO sizes

Inochi Amaoto inochiama at gmail.com
Wed Nov 26 14:23:22 PST 2025


On Wed, Nov 26, 2025 at 09:21:16PM +0400, Anton D. Stavinskii wrote:
> I've tested the current dwc2 FIFO configuration and found that USB
> device mode breaks in ECM mode when transmitting frames larger than
> 128 bytes. For example, large ICMP packets or iperf3 traffic cause
> the USB link to hang and eventually disconnect without any messages in
> dmesg.
> 
> After switching to more conservative FIFO sizes, ECM becomes stable
> and no longer drops the connection. iperf3 now shows ~130 Mbit/s RX
> and ~100 Mbit/s TX on SG2002 (MilkV Duo 256M).
> 
> Fix the FIFO sizes accordingly.
> 
> Signed-off-by: Anton D. Stavinskii <stavinsky at gmail.com>
> ---
>  arch/riscv/boot/dts/sophgo/cv180x.dtsi | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/riscv/boot/dts/sophgo/cv180x.dtsi b/arch/riscv/boot/dts/sophgo/cv180x.dtsi
> index 1b2b1969a648..06b0ce5a2db7 100644
> --- a/arch/riscv/boot/dts/sophgo/cv180x.dtsi
> +++ b/arch/riscv/boot/dts/sophgo/cv180x.dtsi
> @@ -438,8 +438,8 @@ usb: usb at 4340000 {
>  			clocks = <&clk CLK_AXI4_USB>, <&clk CLK_APB_USB>;
>  			clock-names = "otg", "utmi";
>  			g-np-tx-fifo-size = <32>;
> -			g-rx-fifo-size = <536>;
> -			g-tx-fifo-size = <768 512 512 384 128 128>;
> +			g-rx-fifo-size = <1536>;
> +			g-tx-fifo-size = <128 128 64 64 64 64 32 32>;
>  			interrupts = <SOC_PERIPHERAL_IRQ(14) IRQ_TYPE_LEVEL_HIGH>;
>  			phys = <&usbphy>;
>  			phy-names = "usb2-phy";
> -- 
> 2.43.0
> 

Please add a fix tag next time, I will add it by myself this time,
otherwise LGTM.

Reviewed-by: Inochi Amaoto <inochiama at gmail.com>
Fixes: e307248a3c2d ("riscv: dts: sophgo: Add USB support for cv18xx")

Regards,
Inochi



More information about the linux-riscv mailing list