USB-C/Thunderbolt Dock Megathread

Which OS? Any log messages? Does a USB keyboard work if you plug directly in this scenario instead of via the dock? My first thought is that this sounds like a software security lockout to prevent evil maid attack if it happens only when the device is locked.

Hi

Just wanted to update this thread with my setup and results:

  • Framework 13 AMD running Ubuntu 22.04 (previous laptop was a Surface Laptop Studio 1 running W11)
  • Kensington 5700T Thunderbolt 4 dock
  • 2 Samsung C49’s at 5120x1440, using DP to TB4 cables.

I got it working somehow, but I don’t understand the results myself:=

  • Connecting the TB4 Dock to either USB4 ports (1 or 3) only worked if there was no display connected to the dock. When connecting a display to the dock, laptop screen starts flickering. External monitor lights up if something is connected but no display. Eventually the monitor turns off because no source.
  • Connecting a monitor to a USB4 port works fine.
  • Connecting the TB4 Dock to a USB3.2 port (4) works fine even with 1 external monitor connected to the dock. If I connect a 2nd monitor to the dock, only the first one works. I can however connect the 2nd monitor to a USB4 port. When I disable the laptop screen, I can run both at 5120x1440, 60hz.

So working setup:
TB4 dock with 1 external monitor connected to the dock → USB3.2 (port 4)
2nd external monitor → USB4 (port 1 or 3)

I don’t understand why the dock works fine over USB3.2 but not USB4. Anyone has any ideas?

It’s the same thing we’ve all experienced, with various docks. USB4 + dock + dock-connected display seems to be a problem right now.

I’m testing a Ugreen Thunderbolt 4 Docking Station(13-in-1) and i’m having huge issue with the bandwidth under Fedora 40 on my intel 13 framework 13.
I have 2 4k 60hz display connected to that docs, 1 work but you can’t bring the other one up to anything over 420p before it stop showing up.
I managed to have a dual 1440p 60hz at best, but couldn’t get a dual 4K 30hz for example…

I don’t understand how TB4 on intel can be less capable than USBC on AMD… Before i submit this an a dock issue, anything i should try ?

This dock work well on my work issued Thinkpad l15 with an AMD CPU, but it then most likely work on a usbc + DP link…

This sounds simply like Windows Kernel DMA protection is doing its job.

With TB3, all USB devices connect actually through a PCIe-USB3 controller in the TB controller.
For security reasons, Windows will only allow PCIe devices it cannot otherwise secure on the bus to work, if the user is signed in. This is to prevent “drive-by” attacks of somebody unauthorized plugging in an external PCIe device that could compromise your device without you knowing.

It would not be a problem with USB4/TB4 docks, because there USB3 is supported directly and does not necessitate PCIe working.

TB4 even mandates that Kernel DMA protection works.

I am unsure if its just Intels TB3 controllers that cannot be protected by lesser means or if Windows does not support this for any PCIe USB controller. But my Titan Ridge TB3 controller is affected the same.

Edit: actually, Microsoft says the USB3 drivers support DMA remapping and should thus be excluded. My TB3 USB3 controller even reports as supporting it. Yet it does not work. Maybe Windows broke this at some point?

1 Like

@Grigory_Malkov @bnjns @Techie_Zeddie you all seem to be experiencing the same issue that myself and others are experiencing in this thread: [RESPONDED] AMD Mainboard: Caldigit TS4 dock monitors not identified

The common thread seems to be amdgpu on Ryzen 7000 chips failing to detect EDID for monitors connected through USB4 docks.

There are bug reports here:

https://bugzilla.redhat.com/show_bug.cgi?id=2303709

Unfortunately the AMD chips just have worse compatibility than the Intel chips currently, and you’re rolling the dice depending on what dock and monitor you’re using. I would recommend against AMD for anyone who needs to use external monitors at this point.

I had a Pluggable TBT4-UDZ dock that worked fine with the 11th Gen Intel Framework. But didn’t work at all with the 7840u Framework. So I bought a Caldigit TS4 dock, which works with my Alienware monitor on the 7480u Framework, but has the EDID issue with my BenQ monitors.

Both docks work perfectly with both monitors on other systems. It’s just the combination of AMD 7000 on Linux that is problematic.

I’m hoping that because it works in Windows 11, it’s not a hardware issue and that it can be fixed via driver or software in Linux.

I can also confirm the same behavior with a Dell Thunderbolt Laptop Computer Dock - WD22TB4 | Dell USA - which has a MST hub.

Yeah, it appears to be specific to AMD on Linux.
The bug reports are filed. So it’s in AMD’s hands now :crossed_fingers:

1 Like

So the fix is in some kind of binary blob? I was hoping someone in the community could provide a fix (reverse engineer perhaps). Don’t mind my wishful/hopeful thinking. I’m someone who doesn’t know anything about coding or development, :sweat_smile: Maybe even someone in RedHat since they have more resources.

If it’s an AMD driver bug which is my current theory (though I don’t have expertise in this area), the fix would be in an updated driver which would get merged into the kernel. Then you’d get it when your distro ships the new kernel, or you manually update it.

But the bug report is 7 months old at this point, and there’s no indication yet that it’s being worked on. So any timeline for that happening is completely unknown.

@Daniel_Power I ended up realising I didn’t have the bolt package installed, which provides Thunderbolt support. Since I installed that, the dock has been working flawlessly with Arch Linux on my 13" AMD.

Has anyone tested the Tuxedo Triple Dock with a Linux system (ideally on a Framework 16)? Since it is especially made for Linux systems, i was hoping that this would work better than my Dell WD19TB, which is very inconsistent on my FW16 running Fedora 40 with KDE Plasma 6.1.

From the kernel logs posted in the Gitlab issue, it actually looks like it is doing DP BW Allocation with USB4. That would be fascinating. Has anybody looked deeply enough to confirm this?
Or can anybody check if AMD supports this under Windows as well?

The USB-USB4DeviceRouter-EventLogs DP Tunnel creation events in Windows EventLog show in their details
fid_DPBwAllocationModeSupported/Enabled.
For Intel iGPU drivers this is still false. Even though I have started seeing a registry key with a matching name being installed by some recent version of the Intel driver (although it does not actually do anything still).

Fyi, this would be down to the GPU & GPU driver. The Windows USB4 driver should support this perfectly, just as the Linux USB4 driver should. It is just a question of the GPU participating and asking for / communicating via DP with the USB4 parts.

Edit: I rechecked with my Intel FW under linux. I also see the DPRX reads as well. Either that is not even the BW mode registers or the GPU driver never responds to it setting BW allocation mode to enabled or setting actually allocated bandwidth. And it looks the same for the dumps from AMD systems. So probably what we see is only the USB4 driver being ready for BW alloc. mode.

ugh hopefully i won’t have lot of problems with my TS4+external monitor with the amd fw13. That would be a pretty much deal killer.

Given that (at least from my testing) it seems to be monitor dependent. There’s no way for you to know other than to test it.

If docking compatibility is a priority for you, I’d recommend going Intel at this point. It’s sad that you have to choose between performance+battery life (AMD), and functionality/compatibility (Intel) if you’re a Linux user.

I’m not sure if this has been lost in the megathread, but my Plugable dock works perfectly when plugged into a USB3.2 port instead of a USB4 port. Granted, I’m not pushing it to its limits that would require more bandwidth, but you don’t have to give up the AMD flavor of your favorite laptop just to use a dock… you just have to understand what sort of limits will exist until this USB4 issue has been solved.

Using the USB3.2 port limits you to a single monitor at 1080p. Which is not sufficient for my needs.

It does not for me, I’m typing this while looking at a 4K monitor connected via the Plugable dock and USB3.2 right now.

It does not for me. When connecting via my Caldigit TS4 dock, or a direct USB-C to Displayport cable to the USB 3.2 port, my 2560x1440 monitor has a max output of 1920x1080.

I need to output to two external monitors, both of which are 2560x1440.

My point about Intel vs AMD on Linux is that Intel just works.

If you get the AMD laptop like I did, you suddenly have inconsistent monitor support. Some will work, some won’t. You need to be aware of which ports you can and cannot use. And there is no indication of when if ever the 7 month old bug report will be resolved. You can’t tell if a monitor will work until you try it, so suddenly you have to worried about rolling the dice on every hardware purchase.

On Intel, these things just work. I had never had a dock or external monitor issue in the years I had an 11th gen Intel Framework. But as soon as I upgraded to the 7000 series AMD, my dock worflow fell apart.

Edit: @Kevin_Fleming I do appreciate your suggestion about the USB 3.2 ports. In my case it doesn’t seem to work out. I struggle with tone over text at times, so I just want to clarify that I’m not trying to be argumentative with you. I’m simply giving my current experience and opinion as someone who upgraded from 11th gen Intel to AMD 7000.

1 Like