USB-C/Thunderbolt Dock Megathread

Thanks Ray, I have a gut feeling this is an AMD teething issue that an upcoming driver update for the FW16 will fix. Anything look amiss?

Summary

RX: MST 2lane HBR3 mode, EFM enabled, Lock sts: 00100030
Symbol error recently: 8000 8000 0000 0000, in 1s: 8000 8000 0000 0000

RFRM0: 0x0@4.96Hz RGB 6bpc, pixel clock: 0.0MHz, Audio disabled, state 1
HT: 0, VT: 0, HA: 0, VA: 0, HS: 0, VS: 0, HSW: 0, VSW: 0, HPOL: 0, VPOL: 0

TX0: HPD signal is low

RFRM1: 1920x1080@59.82Hz RGB 8bpc, pixel clock: 148.1MHz, Audio enabled, state 8
Audio: 2 channel 48.0KHz 16bits LPCM audio
HT: 2200, VT: 1125, HA: 1920, VA: 1080, HS: 192, VS: 41, HSW: 44, VSW: 5, HPOL: 0, VPOL: 0

TX1: 4lane RBR mode, EFM enabled, SSC disabled, output enabled
1920x1080@59.82Hz RGB 8bpc, pixel clock: 148.1MHz, Audio enabled
HT: 2200, VT: 1125, HA: 1920, VA: 1080, HS: 192, VS: 41, HSW: 44, VSW: 5, HPOL: 0, VPOL: 0
DPCD 202~205h: 77 77 81 03, symbol error recently: 8000 8000 8000 8000, in 1s: 8000 8000 8000 8000

RFRM2: 2560x1440@59.83Hz RGB 8bpc, pixel clock: 241.0MHz, Audio enabled, state 8
Audio: 2 channel 48.0KHz 16bits LPCM audio
HT: 2720, VT: 1481, HA: 2560, VA: 1440, HS: 112, VS: 38, HSW: 32, VSW: 5, HPOL: 0, VPOL: 1

TX2: HPD ON, HDMI output, output enabled
2560x1440@59.82Hz RGB 8bpc, pixel clock: 241.0MHz, Audio enabled
HT: 2720, VT: 1481, HA: 2560, VA: 1440, HS: 112, VS: 38, HSW: 32, VSW: 5, HPOL: 0, VPOL: 1

RX VC slot info (FF means unused):
FF 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
02 02 02 02 02 02 02 02 02 02 02 02 02 02 01 01
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
RFRM VCID list: 00 01 02 00

TX0 VC slot info (FF means unused):
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
TX0 VCID list: 00-00

TX1 VC slot info (FF means unused):
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
TX1 VCID list: 00-00

TX2 VC slot info (FF means unused):
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
TX2 VCID list: 00-00

RX: MST 2lane HBR3 mode. It should be 4 lanes when using an actual 40G connection to the dock (Windows USB4 panel should list that and the speed of said USB4 connection). So that is problem number 1 halving your bandwidth.
Then, DSC seems to not be used. That compression allows you to roughly x2.5 the DP bandwidth usable for monitors so would make half a DP connection a lot more usable. Everything else seems to be a consequence of that.
DSC should be independent of the DP connection speed. So even if your dock would have failed to establish a USB4 connection and falls back to a classic USB3 + DP Alt mode connection only, DSC should still work. I have no experience with modern AMD GPUs, so I cannot tell you how they behave with DSC, if there are well hidden options you need to flip. But there is no sane reason to not use DSC when you are already being bottlenecked and cannot reach max. features of your monitors.

Here an example of what my WD19TB (same MST hub chip, same display capabilities) shows on my Intel iGPU.

Example report with full bandwidth & DSC
RX: MST 4lane HBR3 mode, DSC ON FEC ON, Lock sts: 001000f0
    Symbol error recently: 8000 8000 8000 8000, in 1s:  8000 8000 8000 8000

RFRM0: 3840x2160@60.00Hz RGB 8bpc, pixel clock: 594.0MHz, Audio enabled, state 8
   Audio: 2 channel 48.0KHz 16bits LPCM audio
   HT: 4400, VT: 2250, HA: 3840, VA: 2160, HS: 384, VS: 82, HSW: 88, VSW: 10, HPOL: 0, VPOL: 0

DSC1.1 stream: PIC 3840x2160, Slice 1920x1080, 8.00 BPP, Compress ratio: 3.0:1 
  Chunk 1920, Line 9, RGB 1, S422: 0, VBR 0, BP 0, Ctrl a2000006, Sts 30
   DSC decompression enabled

TX0: 4lane HBR2 mode, EFM enabled, SSC enabled, output enabled
   3840x2160@60.12Hz RGB 8bpc, pixel clock: 595.2MHz, Audio enabled
   HT: 4400, VT: 2250, HA: 3840, VA: 2160, HS: 384, VS: 82, HSW: 88, VSW: 10, HPOL: 0, VPOL: 0
   DPCD 202~205h: 77 77 01 03, symbol error recently: 8000 8000 8000 8000, in 1s: 8000 8000 8000 8000


RFRM1: 3840x1600@144.00Hz RGB 8bpc, pixel clock: 987.3MHz, Audio enabled, state 8
   Audio: 2 channel 48.0KHz 16bits LPCM audio
   HT: 4000, VT: 1714, HA: 3840, VA: 1600, HS: 112, VS: 111, HSW: 32, VSW: 5, HPOL: 0, VPOL: 1

DSC1.1 stream: PIC 3840x1600, Slice 960x1600, 8.00 BPP, Compress ratio: 3.0:1 
  Chunk 960, Line 9, RGB 1, S422: 0, VBR 0, BP 0, Ctrl a0000006, Sts f0
   DSC decompression enabled

TX1: 4lane HBR3 mode, EFM enabled, SSC enabled, output enabled
   3840x1600@144.29Hz RGB 8bpc, pixel clock: 989.3MHz, Audio enabled
   HT: 4000, VT: 1714, HA: 3840, VA: 1600, HS: 112, VS: 111, HSW: 32, VSW: 5, HPOL: 0, VPOL: 1
   DPCD 202~205h: 77 77 01 03, symbol error recently: 8000 8000 8000 8000, in 1s: 8000 8000 8000 8000



TX2: 2lane HBR3 mode, EFM disabled, SSC enabled, MST output
   DPCD 202~205h: 77 00 01 03, symbol error recently: ffff ffff 0000 0000, in 1s: a511 a532 0000 0000


RX VC slot info (FF means unused):
   FF 02 02 02  02 02 02 02   02 02 02 02  02 02 02 02
   02 02 02 02  02 02 18 18   18 18 18 18  18 18 18 18
   18 18 18 18  18 01 01 01   01 01 01 01  01 01 01 01
   01 01 19 19  19 19 19 19   19 19 19 19  19 FF FF FF
RFRM VCID list: 01 02 00 00

TX0 VC slot info (FF means unused):
   FF FF FF FF  FF FF FF FF   FF FF FF FF  FF FF FF FF
   FF FF FF FF  FF FF FF FF   FF FF FF FF  FF FF FF FF
   FF FF FF FF  FF FF FF FF   FF FF FF FF  FF FF FF FF
   FF FF FF FF  FF FF FF FF   FF FF FF FF  FF FF FF FF
TX0 VCID list: 00-00

TX1 VC slot info (FF means unused):
   FF FF FF FF  FF FF FF FF   FF FF FF FF  FF FF FF FF
   FF FF FF FF  FF FF FF FF   FF FF FF FF  FF FF FF FF
   FF FF FF FF  FF FF FF FF   FF FF FF FF  FF FF FF FF
   FF FF FF FF  FF FF FF FF   FF FF FF FF  FF FF FF FF
TX1 VCID list: 00-00

TX2 VC slot info (FF means unused):
   FF 10 10 10  10 10 10 10   10 10 10 10  10 10 10 10
   10 10 10 10  10 10 10 10   10 10 10 10  10 10 10 11
   11 11 11 11  11 11 11 11   11 11 11 11  11 11 11 11
   11 11 11 11  11 FF FF FF   FF FF FF FF  FF FF FF FF
TX2 VCID list: 18-19
2 Likes

Anyone give Anker 778 Thunderbolt Docking Station a try?

The Mokin dock works fine with framework 13 AMD;
Dual 4k @ 60Hz is supported via one dock port + 1 usb-c → hdmi dongle.

Dock (Amazon):
MOKiN Thunderbolt 4 Dock - 16 Ports, USB C Docking Station 3 Monitors for Laptop with 96W Charger, USB3.1 Ports, 2.5Gbps Ethernet for Dell, HP, Lenovo, MacBook(Intel Thunderbolt™ Certified)

2 Likes

All this under Linux/Fedora?

It is reporting MST 4lane HBR3 mode now on today’s plugin.

I guess it will just remain finicky until a firmware/software/driver changes or improves the handshake.

The w11 USB 4 settings page says

“link speed gen 3
Link width dual lane
Usb4 version 1.0”

With a few more lines related to DP In, Tunnelled DP in, unavailable DP In.

Yeah, sounds like it.

I had the case of my TB4 hub failing to reestablish its USB4 connection and using DP alt mode +USB3 instead after standby sometimes (TB4 drivers). That was eventually fixed with a firmware update of the host.
My new ASM2464PD NVMe enclosure is also extremely finicky and sometimes downgrades the PCIe lanes for no reason at all or fails to establish a USB4/TB connection and falls back to USB3 or even USB2.

You could maybe narrow it down, by finding patterns. Because so far, the DP connection is still relatively separate from the USB4 connection.
DSC not working is sure to be the fault of the GPU driver (and maybe MST hub on the other side, although it works perfectly reliably with Intel) and no USB4 firmware or Windows USB4 connection manager.
Reduced DP lanes could be caused by less available USB4 bandwidth, which Windows’ USB4 connection manager tracks. It also logs its individual decisions into Event Log, although rather cryptically. Also, no USB4 connection at all (which would have to be firmware fault) or technically also the MST-hub or GPU driver. Although I have never observed my GPUs doing that when the cable / connection between them would allow more.

But you pretty much couldn’t do anything about it even if you find out how to reproduce it. But it can maybe combined with other peoples observations to understand the problems to expect and how to work around them or serve as a test-case for the actual developers to take an interest in fixing it.

1 Like

Yeah - it seems like AMD has newer drivers that FW hasn’t cleared or pushed out yet for the FW16. Will sit tight for now.

So far, I do not think FW has ever pushed driver updates. At least not for my 12th gen.
But opposed to their firmware updates, where they need to be involved and are lacking far behind, the beauty of them not customizing / messing with the drivers is, you can just update from the vendor directly. The core drivers are published directly by AMD, Intel etc. And also they do not have a lot of additional software / drivers that do software magic and tend to fail.
Worst I found was the Realtek USB Ethernet driver. As that driver makes the ethernet expansion card consume much more power than other versions of that driver (but less than the newest, so not the worst job of FW).

And I cannot tell you the amount of times, that Dell was still on a > year old driver that had significant bugs and memory leaks (! 4 GiB worth of leak from the audio driver for example!) that had been fixed for months by the people actually developing the driver.

Even if you install the newer driver yourself, Windows will listen to the manufacturers and actually downgrade your drivers, whenever the manufacturer pushes out last years update a year later. So I actually like FW’s hands-off approach here more. They just get you quickly started with the driver-collection. The rest needs to be done manually or by windows (or with an updater, like Intel provides).

1 Like

It (Anker 778) is on the list at the top as working. But with little details. I don’t know which framework. And if there were any issues at all. It is a dock I am considering as well for my 13 AMD.

This Anker 575 is the dock I bought, but I am having a very different experience than you. Ethernet and DP alt mode to HDMI not working with a new Cablermatters Thunderbolt 4 cable, or with Anker Powerline 3 cable. I was able to get the ethernet and and DP alt mode to work with a 9 inch usb c cable that I think came with either a raspberry pi or a Sandisk SSD, but doesn’t work with Thunderbolt 4 cable. Do you have an Intel framework or and AMD? I have the AMD 13 inch. Updated the drivers in Windows a second time, but no joy.

Framework 13 AMD Ryzen™ 7 7840U (up to 5.1GHz, 8-core/16-thread)

Ubuntu and Windows 11 dual boot.

Also, which cable are you using with the Anker 575?

I have the Belkin TB-3 Dock Pro (F4U097) and have had moderate success on EndeavourOS (FW 13 AMD 7840U):

  • Charging works fine
  • DisplayPort works fine
  • Ethernet works fine
  • None of the USB-A ports seem to work
  • Audio doesn’t seem to work
  • Can’t use the 2nd TB3/USB-C port for a monitor (the monitor is recognised, but linux can’t detect the resolutions so it’s stuck at 800x600), at least not with my USB-C > DP/HDMI cable that I previously used with my MBP

Edit: I meant 640x480, not 800x600

What exactly does cannot detect resolutions mean?
With the way TB & USB4 DP tunnels are handled still, you can only combine a few combinations of DP connections, because they are treated with their maximum possible bandwidth and still need to fit within the overall TB/USB4 connection. So for example if the first monitor/sink uses a 4xHBR3 connection, the 2nd DP connection will be throttled to 4xHBR1 or similarly low bandwidth (some manufacturers for example quote 1xHBR3, but that would be even slower than 4xHBR1 and I have not seen it used in practice). And GPUs know of that bandwidth limitation, just like they can measure any actual DP cable and classify it as only supporting HBR1 speeds or only having 1 viable lane. And they should remove all the resolutions & refresh rate combinations the monitor lists as supported from what they offer you to select, giving you only what would fit over the limited connection.
So if all of that fits with the resolutions and bandwidths in use, it could also explain it. And if you can access the full EDID data of the monitor that is problematic it’s not that the GPU or driver failed to detect the resolutions it disqualified some for other reasons.
And what DP connection config is used (speed, lanes), whether DSC is enabled and at which ratio, if source and sink support it are decisions of the driver and can vary allocated DP bandwidth heavily. Also the order in which the 2 DP tunnels are connected can play a role if the max. combined DP bandwidth is higher than TB/USB4 supports. If you connect the dock as a whole with multiple DP sinks already connected, it is the host / GPU that chooses in which order to connect to displays.

Apologies - yes, I should’ve been clearer on this.

For reference, my monitors are 1080p (currently just use 2 monitors but have 3 total). One is connected via this dock on the dedicated DisplayPort port, and the second is connected to the other USB-C/TP3 port on the dock via USB-C > HDMI cable (have also tried a USB-C > DP cable). Also connected to the dock is CAT6, audio jack, and 1x USB-A cable (which goes to an unpowered dock). This all worked with my previous 14" MBP, which would suggest that it’s not a bandwidth issue.

When I plug the 2nd monitor into that USB-C/TP3 port, the monitor is recognised but under Display & Monitor the device name isn’t detected (just called DP-7 or DP-8) and defaults to 640x480. Under Resolution there’s no dropdown, and the hint says this is the only supported resolution. I suspect this is due to an EDID issue, as I can see the following with dmesg:

amdgpu 0000:c1:00.0: [drm] *ERROR* No EDID read.

It’s unlikely to be the monitor or cable - as I said this used to work with my MBP, and if I plug it directly into the 2nd USB-C port on the laptop all is good (which is also the case for the unpowered USB-A dock). To be fair, I’m sure the EDID issue is solvable - I’m just having a break having spent a while troubleshooting an issue with bluetooth :joy:

Edit: FWIW, manually specifying the EDID as per this thread does work.

That was my main point, that in general, that is anything but sure, if your linux host would make different choices regarding bandwidth allocation. But if your monitors are only 1080p60, than there would not be much reason to believe any of those would consume too much bandwidth, if there is no MST hub somewhere in there (Belkin makes confusing claims for their DP Alt mode support that can only be true if the dock includes an MST hub).

That also makes more sense. Because 800x600 is no default resolution. Whereas 640x480 is like the default resolution that for example any HDMI monitor must support and you basically do not need EDID in order to try it. So with the 800x600 I assumed that some EDID info must have come through.

Made some progress on the Belkin TB-3 Dock Pro: turns out the dock is very picky about the cable orientation and you need to boot the laptop with the dock connected (in hindsight, should’ve checked this earlier) - it doesn’t seem to like being plugged in with the laptop already on (although if it is, you can just reboot). You’ll know it’s working properly when the LED on the front is green rather than amber.

With the dock connected “properly” everything except that USB-C port works (including all the USB-A ports, the USB-C port on the front, and the audio jack).

I do have a second dock at work which was able to connect to a 4k monitor via a straight USB-C cable - this would suggest the EDID read issue with my home set-up (which are older 1080p monitors that just have HDMI or DP in) is related to the USB-C > HDMI/DisplayPort cable I’ve used, although I’ve tried a few different cables with no joy. For now, I just have the 2nd monitor plugged into the 2nd USB-C port on the laptop itself, using the USB-C > DP cable.

Anyone had any luck with the Corsair TBT200 TB4 dock? With Linux?

It ticks what I need but wary as this test Corsair TBT200 Dock seems to have no luck with it. That is only a sample of one though.
But most docks seem like clones of each other so any similar, with 3(4) TB4 ports, 2.5GHz ethernet, USB 3.2 ports, Audio?

FW13 AMD 7840U user here.

I had this one very briefly, and I cannot say whether all the features worked, but I used one 2K DP monitor and the USB ports and it seemed to work very well with the USB4. I am an Arch Linux user, though - it may be the newer kernel where things are fixed, so I would try Fedora 39 or Ubuntu 22.04 if I were you!

Now I have Dell WD22TB4, and the only thing that does not work at all is the power button on the dock, but I have a 2K DP display and a lot of USB devices connected, and the Ethernet port too, with almost zero issues (I have to reattach the TB4 cable occasionally to Framework after waking from sleep for external display to work). Firmware update also works flawlessly. I cannot test Thunderbolt devices as I really have none right now, however the dock itself identifies as a Thunderbolt for me in boltctl. Also I’ve never had any issues with resuming from sleep (have not tried hibernation though).

Just got my FW13 and I’ve been using it with a Vivo STAND-V000LD, which is a combination stand and docking station. It doesn’t come with a power supply so you have to get one of those as well. I went with a 130w to have plenty of overhead.

The stand is a bit too wobbly when in a taller raised position for my liking. Though, if you are used to monitor arm wobble it’s not as bad as that.

Had some problems with the dock initially:

  • Monitors not waking up from sleep when plugging in the dock.
    • Solved by power cycling my monitors.
    • Issue hasn’t re-occured.
  • Random disconnects between the dock and the laptop.
    • Replaced my custom usb-c cable with the one that came with the dock.
    • Issue hasn’t re-occured.

Using Fedora Kinoite 40 (Linux) as the OS.


Images show the laptop display as off but that’s just my preferred setting when docked. All 3 displays work at the same time. Top monitor is 34-inch, 3440x1440, 60 Hz, and connected via display port. Bottom monitor is 21-inch, 1920x1080, 75 Hz, and connected via hdmi.

Late to the party, but I have the Dell TB16 dock, too, and I can confirm you need to follow these steps to make charging over USB-C work with this dock (and a FW13 AMD):

  1. Turn on your laptop and wait for Windows to load,
  2. Connect the USB-C cable from the dock to your laptop,
  3. Turn on the dock.

Now all features of the dock, including charging your laptop, should work :slight_smile: