Hi, The Odroid HC1 ARM board contains a JMicron JMS578 USB 3.0 to SATA Bridge and a Realtek Gbps Ethernet device connected to an USB 3.0 host. The SATA bridge works correctly at USB 3.0 speed, but the Ethernet controller operates only at USB 2.0 speed. I tracked this behaviour down to the CONFIG_USB_XHCI_PLATFORM kernel configuration. The r8152 driver operates only at 480M when using CONFIG_USB_XHCI_PLATFORM=m: root@odroid:~# lsusb -t /: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M /: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M |__ Port 1: Dev 2, If 0, Class=Vendor Specific Class, Driver=r8152, 480M /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M |__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=uas, 5000M /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=exynos-ohci/3p, 12M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=exynos-ehci/3p, 480M root@odroid:~# dmesg | grep 'usb \?[56]\|dwc3' [ 3.538934] exynos-dwc3 soc:usb3-0: Linked as a consumer to regulator.9 [ 3.544589] exynos-dwc3 soc:usb3-0: Linked as a consumer to regulator.11 [ 3.551085] dwc3 12000000.dwc3: Failed to get clk 'ref': -2 [ 3.557547] exynos-dwc3 soc:usb3-1: Linked as a consumer to regulator.9 [ 3.563377] exynos-dwc3 soc:usb3-1: Linked as a consumer to regulator.11 [ 3.569830] dwc3 12400000.dwc3: Failed to get clk 'ref': -2 [ 4.518245] usb usb5: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.00 [ 4.526207] usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 4.533316] usb usb5: Product: xHCI Host Controller [ 4.538166] usb usb5: Manufacturer: Linux 5.0.0-rc4 xhci-hcd [ 4.543807] usb usb5: SerialNumber: xhci-hcd.1.auto [ 4.576021] usb usb6: We don't know the algorithms for LPM for this host, disabling LPM. [ 4.584112] usb usb6: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.00 [ 4.592349] usb usb6: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 4.599430] usb usb6: Product: xHCI Host Controller [ 4.604286] usb usb6: Manufacturer: Linux 5.0.0-rc4 xhci-hcd [ 4.609917] usb usb6: SerialNumber: xhci-hcd.1.auto [ 5.103725] usb 5-1: new high-speed USB device number 2 using xhci-hcd [ 5.256710] usb 5-1: New USB device found, idVendor=0bda, idProduct=8153, bcdDevice=30.00 [ 5.263420] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=6 [ 5.270526] usb 5-1: Product: USB 10/100/1000 LAN [ 5.275203] usb 5-1: Manufacturer: Realtek [ 5.279274] usb 5-1: SerialNumber: 000001000000 [ 5.504131] usb 5-1: reset high-speed USB device number 2 using xhci-hcd When changing to CONFIG_USB_XHCI_PLATFORM=y, it works as expected: root@odroid:~# lsusb -t /: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M |__ Port 1: Dev 2, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M /: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M |__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=uas, 5000M /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=exynos-ohci/3p, 12M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=exynos-ehci/3p, 480M root@odroid:~# dmesg | grep 'usb \?[56]\|dwc3' [ 3.572120] exynos-dwc3 soc:usb3-0: Linked as a consumer to regulator.9 [ 3.577802] exynos-dwc3 soc:usb3-0: Linked as a consumer to regulator.11 [ 3.584308] dwc3 12000000.dwc3: Failed to get clk 'ref': -2 [ 3.723387] exynos-dwc3 soc:usb3-1: Linked as a consumer to regulator.9 [ 3.729518] exynos-dwc3 soc:usb3-1: Linked as a consumer to regulator.11 [ 3.735952] dwc3 12400000.dwc3: Failed to get clk 'ref': -2 [ 3.769931] usb usb5: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.00 [ 3.777877] usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 3.785068] usb usb5: Product: xHCI Host Controller [ 3.789919] usb usb5: Manufacturer: Linux 5.0.0-rc4 xhci-hcd [ 3.795551] usb usb5: SerialNumber: xhci-hcd.1.auto [ 3.827760] usb usb6: We don't know the algorithms for LPM for this host, disabling LPM. [ 3.835868] usb usb6: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.00 [ 3.843995] usb usb6: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 3.851185] usb usb6: Product: xHCI Host Controller [ 3.856036] usb usb6: Manufacturer: Linux 5.0.0-rc4 xhci-hcd [ 3.861669] usb usb6: SerialNumber: xhci-hcd.1.auto [ 5.024304] usb 6-1: new SuperSpeed Gen 1 USB device number 2 using xhci-hcd [ 5.049333] usb 6-1: New USB device found, idVendor=0bda, idProduct=8153, bcdDevice=30.00 [ 5.056049] usb 6-1: New USB device strings: Mfr=1, Product=2, SerialNumber=6 [ 5.063154] usb 6-1: Product: USB 10/100/1000 LAN [ 5.067829] usb 6-1: Manufacturer: Realtek [ 5.071901] usb 6-1: SerialNumber: 000001000000 [ 5.299971] usb 6-1: reset SuperSpeed Gen 1 USB device number 2 using xhci-hcd root@odroid:~# uname -a Linux odroid 5.0.0-rc4 #44 SMP PREEMPT Sun Jan 27 13:46:17 UTC 2019 armv7l GNU/Linux I reproduced this behaviour with kernel 5.0-rc4, 4.20, 4.19 (from Debian), and 4.14. You can probably pick any kernel config as basis. I used odroidxu4_defconfig (from Hardkernel's linux repository) and the config from Debian testing. I initially reported this issue in Debian: h ttps://bugs.debian.org/918800 Let me know if you need more information or if I can help debugging/testing. Cheers, Benjamin