System:
- AMD 7040 Mainboard in printed case
- Framework supplied 32G DDR5-5600 Memory
- WD Green SN350 2TB NVME
- Sonnet eGPU Breakaway 750 w/ Nvidia RTX 3080 12GB
Dongle:
I have the above 8-in-1 USB C dongle that I plan to use with the above hardware. One of the advantages of this dongle is that it provides PD passthrough, thereby freeing up one of the USB C ports on the mainboard. However, I’ve noticed an issue if power is routed through the dongle. If power is routed through the dongle, the ethernet component syncs at a USB 2.0 rate (480M). If power is not routed through the dongle it syncs at a USB 3.0 rate (5000M). The only change being made here is moving the power connection everything else remains untouched.
This has a significant impact on overall maximum throughput of the ethernet connection. Sync’d at USB 2.0 rates, it maxes out at ~40MB/sec. Sync’d at USB 3.0 rates it achieves full line rate of 113MB/sec.
In the output below you’re looking for the Driver=r8152 line.
Setup:
- eGPU - top left port
- USB C Dongle (ethernet, PD, etc) - top right port
- power - bottom left port
$ lsusb -t
/: Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/5p, 480M
/: Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/2p, 10000M
/: Bus 003.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/1p, 480M
/: Bus 004.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/1p, 10000M
/: Bus 005.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/1p, 480M
|__ Port 001: Dev 002, If 0, Class=Hub, Driver=hub/5p, 480M
|__ Port 003: Dev 004, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 003: Dev 004, If 1, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 003: Dev 004, If 2, Class=Chip/SmartCard, Driver=usbfs, 12M
|__ Port 004: Dev 005, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 002: Dev 007, If 0, Class=Billboard, Driver=[none], 480M
|__ Port 003: Dev 008, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 003: Dev 008, If 1, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 003: Dev 008, If 2, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 005: Dev 006, If 0, Class=Billboard, Driver=[none], 480M
/: Bus 006.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/1p, 10000M
|__ Port 001: Dev 002, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 001: Dev 003, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M
/: Bus 007.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/1p, 480M
/: Bus 008.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/1p, 10000M
Setup:
- eGPU - top left port
- USB C Dongle (ethernet, PD, etc) - top right port
- power - connected to above dongle
$ lsusb -t
/: Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/5p, 480M
/: Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/2p, 10000M
/: Bus 003.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/1p, 480M
/: Bus 004.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/1p, 10000M
/: Bus 005.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/1p, 480M
|__ Port 001: Dev 002, If 0, Class=Hub, Driver=hub/5p, 480M
|__ Port 001: Dev 003, If 0, Class=Vendor Specific Class, Driver=r8152, 480M
|__ Port 003: Dev 004, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 003: Dev 004, If 1, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 003: Dev 004, If 2, Class=Chip/SmartCard, Driver=usbfs, 12M
|__ Port 004: Dev 005, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 001: Dev 007, If 0, Class=Mass Storage, Driver=usb-storage, 480M
|__ Port 002: Dev 008, If 0, Class=Billboard, Driver=[none], 480M
|__ Port 003: Dev 009, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 003: Dev 009, If 1, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 003: Dev 009, If 2, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 005: Dev 006, If 0, Class=Billboard, Driver=[none], 480M
/: Bus 006.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/1p, 10000M
/: Bus 007.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/1p, 480M
/: Bus 008.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/1p, 10000M