BPI-R2 Pro RTL8156B USB 3.0 to 2.5GbE Sudden Loss of Link

Hello all, more testing with R2 Pro with my hardware laying around the house. Compiled kernel with r8152 and r8153 to support RTL8156B USB 3.0 to 2.5GbE. Quite impressive result until the sudden loss of speed and link.

There is a RockChip right next to the CPU, not sure is that the USB 3 controller, very hot to the touch.

[  5]  20.00-21.00  sec   250 MBytes  2.10 Gbits/sec    0   1.87 MBytes       
[  5]  21.00-22.00  sec   252 MBytes  2.12 Gbits/sec    0   1.87 MBytes       
[  5]  22.00-23.00  sec   250 MBytes  2.10 Gbits/sec    0   1.87 MBytes       
[  5]  23.00-24.00  sec   250 MBytes  2.10 Gbits/sec    0   1.87 MBytes       
[  5]  24.00-25.00  sec   251 MBytes  2.11 Gbits/sec    0   1.87 MBytes       
[  5]  25.00-26.00  sec   251 MBytes  2.11 Gbits/sec    0   1.87 MBytes       
[  5]  26.00-27.00  sec   252 MBytes  2.12 Gbits/sec    0   1.87 MBytes       
[  5]  27.00-28.00  sec  92.5 MBytes   775 Mbits/sec    1   1.41 KBytes       
[  5]  28.00-29.00  sec  0.00 Bytes  0.00 bits/sec    1   1.41 KBytes       
[  5]  29.00-30.00  sec  0.00 Bytes  0.00 bits/sec    1   1.41 KBytes       
[  5]  30.00-31.00  sec  0.00 Bytes  0.00 bits/sec    0   1.41 KBytes       
[  5]  31.00-32.00  sec  0.00 Bytes  0.00 bits/sec    1   1.41 KBytes       

dmesg

[  477.291491] cdc_ncm 6-1:2.0 eth2: register 'cdc_ncm' at usb-xhci-hcd.0.auto-1, CDC NCM (NO ZLP), 00:e0:4c:68:10:7e
[  477.374230] cdc_ncm 6-1:2.0 enx00e04c68107e: renamed from eth2
[  830.833547] IPv6: ADDRCONF(NETDEV_CHANGE): enx00e04c68107e: link becomes ready
[ 2895.196993] rc rc0: two consecutive events of type space
[ 3351.582003] cdc_ncm 6-1:2.0 enx00e04c68107e: unregister 'cdc_ncm' usb-xhci-hcd.0.auto-1, CDC NCM (NO ZLP)
[ 3413.490343] usb 6-1: reset SuperSpeed USB device number 2 using xhci-hcd
[ 3413.532632] r8152 6-1:1.0: Direct firmware load for rtl_nic/rtl8156b-2.fw failed with error -2
[ 3413.532696] r8152 6-1:1.0: unable to load firmware patch rtl_nic/rtl8156b-2.fw (-2)
[ 3413.573206] r8152 6-1:1.0 (unnamed net_device) (uninitialized): netif_napi_add_weight() called with weight 256
[ 3413.576030] r8152 6-1:1.0 eth2: v1.12.13
[ 3413.604802] r8152 6-1:1.0 enx00e04c68107e: renamed from eth2
[ 3459.959466] IPv6: ADDRCONF(NETDEV_CHANGE): enx00e04c68107e: link becomes ready
[ 3459.960359] r8152 6-1:1.0 enx00e04c68107e: carrier on
[ 3535.076793] ------------[ cut here ]------------
[ 3535.076890] NETDEV WATCHDOG: enx00e04c68107e (r8152): transmit queue 0 timed out
[ 3535.077045] WARNING: CPU: 0 PID: 0 at net/sched/sch_generic.c:525 dev_watchdog+0x280/0x2a0
[ 3535.077106] Modules linked in:
[ 3535.077133] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 6.1.22-bpi-r2pro #1
[ 3535.077158] Hardware name: Bananapi-R2 Pro (RK3568) DDR4 Board (DT)
[ 3535.077172] pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 3535.077197] pc : dev_watchdog+0x280/0x2a0
[ 3535.077224] lr : dev_watchdog+0x280/0x2a0
[ 3535.077248] sp : ffffffc008003dd0
[ 3535.077259] x29: ffffffc008003dd0 x28: ffffffc008c56f50 x27: ffffffc008003ec0
[ 3535.077303] x26: ffffffc0095f5008 x25: 0000000000000000 x24: ffffffc0099d9980
[ 3535.077346] x23: ffffffc0099d7000 x22: 0000000000000000 x21: ffffff8008dcf39c
[ 3535.077389] x20: ffffff8008dcf000 x19: ffffff8008dcf440 x18: ffffffffffffffff
[ 3535.077429] x17: 64656d6974203020 x16: 6575657571207469 x15: 6d736e617274203a
[ 3535.077470] x14: 2932353138722820 x13: 74756f2064656d69 x12: 7420302065756575
[ 3535.077512] x11: 712074696d736e61 x10: ffffffc009aad470 x9 : ffffffc008107ea4
[ 3535.077552] x8 : 00000000ffffdfff x7 : ffffffc009aad470 x6 : 0000000000000000
[ 3535.077590] x5 : ffffff807fb1ea20 x4 : 0000000000000040 x3 : 0000000000000001
[ 3535.077628] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffffffc0099e4e00
[ 3535.077668] Call trace:
[ 3535.077682]  dev_watchdog+0x280/0x2a0
[ 3535.077711]  call_timer_fn+0x3c/0x1cc
[ 3535.077745]  __run_timers.part.0+0x228/0x2f0
[ 3535.077775]  run_timer_softirq+0x50/0x90
[ 3535.077804]  __do_softirq+0x168/0x430
[ 3535.077828]  ____do_softirq+0x18/0x24
[ 3535.077852]  call_on_irq_stack+0x2c/0x54
[ 3535.077876]  do_softirq_own_stack+0x24/0x3c
[ 3535.077899]  __irq_exit_rcu+0xb0/0x110
[ 3535.077928]  irq_exit_rcu+0x18/0x24
[ 3535.077953]  el1_interrupt+0x38/0x70
[ 3535.077984]  el1h_64_irq_handler+0x18/0x2c
[ 3535.078010]  el1h_64_irq+0x64/0x68
[ 3535.078030]  arch_cpu_idle+0x18/0x2c
[ 3535.078058]  default_idle_call+0x40/0x184
[ 3535.078083]  do_idle+0x24c/0x2c0
[ 3535.078112]  cpu_startup_entry+0x2c/0x3c
[ 3535.078139]  rest_init+0xec/0xf0
[ 3535.078170]  arch_post_acpi_subsys_init+0x0/0x28
[ 3535.078200]  start_kernel+0x920/0x960
[ 3535.078225]  __primary_switched+0xbc/0xc4
[ 3535.078253] ---[ end trace 0000000000000000 ]---
[ 3535.078300] r8152 6-1:1.0 enx00e04c68107e: Tx timeout
[ 3537.394340] usb 6-1: reset SuperSpeed USB device number 2 using xhci-hcd
[ 3572.964808] r8152 6-1:1.0 enx00e04c68107e: Tx timeout
[ 3575.282348] usb 6-1: reset SuperSpeed USB device number 2 using xhci-hcd
[ 3686.501026] usb 2-1: USB disconnect, device number 2
[ 3921.515124] usb 6-1: USB disconnect, device number 2
[ 3925.685028] usb 6-1: new SuperSpeed USB device number 3 using xhci-hcd

Is this overburdening the CPU or the USB controller or both? Next will be trying two RTL8125 PCIe to 2.5GbE.

I talked to a friend of my who makes 2.5GbE switches. His assessment was it was a USB 3.0 controller cooling issue…

Tested 8125B on BPI-R2 Pro, and the result was 2.35Gbps up and down, irq at 80. The driver from RTL could be more efficient or is really my cooling was insufficient.

1 Like