USB-C/Thunderbolt Dock Megathread

I picked up the Lenovo Thunderbolt 4 dock 40B00135.

Running Xubuntu 22 - nothing works. It’s just broken.
Running Xubuntu 24 - Works great. Four screens. One big catch. If I unplug any of the monitors from the dock while it is on, the laptop hard locks. Have to hold the power button to shut it down. I had planned to use this with a displayport KVM, but if I switch to a different system, I get the same hard lock. I’m going to try one of those EDID emulators to keep the signal active.

Edit/update - With the laptop screen innactive, the lockup does not happen. I added a 4th screen to the dock and disabled the laptop screen, and how it works perfectly fine when I disconnect a monitor.

So I learnt 2 things: Max of 4 monitors including the built in screen, no matter how you hook them up (displaylink or other external gpu the exception). And the displayport directly attached to the 7700 does not count towards that total.

5 screens - 3 on the dock, laptop screen, and one on the dGPU.

Then also that for some reason if you unplug a displayport monitor attached to this dock when the laptop screen is active, the system hard crashes.

Every gpu has a limited number of displays (pretty sure it’s limited by something called a CRTC even if it has nothing to do with cathode rays anymore XD), it’s surprisingly hard to find the numbers sometimes. pre 7000 series highend amd cards used to have 6, not they got 4, higer end nvidia stuff is 4 with the exception of some workstation/server cards and intel used to be 3, now I think they are also at 4.

Just for an experiment I daisy changed the docking stations and I was able to get 6 screens going with two of them being silicon motion chips all over the one usb4 cable. The SM screens were laggy; I assume because the bandwidth left after 4 displayport screens were active. When trying to add a 7th screen xubuntu just logged me out. If I tried to login it dropped to a shell, some text sped by real quick, and then went back to the login screen. I assume I’m hitting an OS limit now.

@Foxtrek_64 the first post has reached the maximum size for a post. If I now try adding details to the table, I get an error “An error occurred: Body is limited to 32000 characters; you entered 32018.” (Hence I left incomplete the row for the great Tecnoware hub I just bought.)

I suspect we must either split the content in multiple posts, or move the table elsewhere (e.g. in a real wiki, or even better a searchable database).

Please let me know what you would like to do with the OG post, I’m ready to assist if we want to divide it or do something else with it.

Just adding (since the wiki is full) that the Anker 568 works pretty well under Linux (and it seems Windows). Full review: [User Review] Anker 568 + Framework 13 (AMD + Intel 12th gen)

I think it might be worth it to split this into a full Wiki. With cross linking devices that are compatible with all the boards for the FW13 and the FW16.

Compatibility with the usb-c/thunderbolt expansions can be a rabbit hole. If we can get a list that is fully sortable/searchable that would be amazing.

1 Like

The ideal approach is a searchable database of the kind of https://www.gsmarena.com , but possibly a much quicker and still pretty convenient way to organize information would be a Spreadsheet in Google Docs or similar.

The (editing) link to it would be shared at the top of this thread (unless a few people volunteer to keep it updated with information posted in the thread), and in order to run complex searches, one could copy/download the spreadsheet and (for instance) sort columns, or even use VLOOKUP (a couple of examples would be provided). Note that in order to make this convenient, the table should have one column per feature, e.g. “HDMI”, “PD”, “USB-C”, “Ethernet”… (plus one for additional “Notes”).

An alternative is to just move instructions and the table of non-working devices to the second post of this thread (@Foxtrek_64 would have to do it), but it would be less convenient, and only a temporary solution until we saturate the first post again.

Yeah, pretty much everything current (and not server etc.) is limited to 4 by now (also, Nvidia should have had 4 for a long while. If the GPU has few outputs, you may only achieve it with MST). Only Apple does its own thing, selling chips with considerably less and considerably more.

I grinded my teeth a lot finding numbers for AMD (summary thread, different forum), because they just have no good public specs on any of this. The previous 6 display limit was hardly documented and it had tons of constraints to actually achieve it. And it is not even documented with which generation this went away. Even now a lot of AMD fans will reference the ancient FAQ stating 6 displays, even though it has been proven that modern AMD iGPUs and dGPUs no longer work that way.
Seems everything is going the way of discrete, universal display pipelines, even for MST streams. Simply 1 for each screen. And possibly combining multiple of them for really high-bandwidth displays (reducing max. display count below 4). But this combining and limitations that apply to the sum of all displays are not well documented for any GPU.

That’s probably a bit market segmentation and a lot more that the crtcs are part of the gpu tiles so if you get more gpu cores you also incidentally get more crtcs.

The constraint was that you pretty much need an mst hub XD.

It is really hard to find info. Best information I found was a linux drm database and just count the crtcs.

I don’t think the igpus ever had 6, only the higher end desktop cards got the 6 crtcs.

Good source, thx. I found other info on AMDs features from Linux source code before, but not that one.

I never had a matching GPU to play around with it. But what AMD themselves wrote back then at least read a lot like they also had limits of TMDS output or maybe even non-MST output limits (i.e. to reach the full 6 some amount HAD to be TMDS and not every port would allow you to drive TMDS displays simultaneously). But we no longer need to care now that its gone.

Yes. Ever since they upgraded from 3 to 4 displays. Does not stop some people form claiming it though.

Could be. But since they only offer very few discrete variants and also reduce all IO and most outputs are also paired to TB ports, this might just be completely explicit (like the smallest chip for a long time fixing 1 pipeline to eDP/HDMI and 1 for both TB ports). Also we still do not know if Apple left out MST support in hardware. That would also simplify the design greatly as you might move all of it closer / into the TB ports since you do not to route multiple streams to a single output. I also never got clarity which combinations Apple supports when using 2 DP tunnels per TB port. Do some share there DP output? Or is every possible combination supported?

As a matter of fact, I still haven’t found that out for the AMD USB4 implementation. Can both USB4 ports each drive 2 DP connections. Or do they share 2 between themselves like Intel likes to do?

Back when dvi was still a thing both amd and nvidia had limits on how many of them you were able to use at the same time but displayport was allready fine. I do have semi fond memories of running eyefinity on my 7970. Slightly less fond ones of running nvidia surround on my 780s after that.

Nah that’s purely software, at least for the pre m1 era (mst worked on intel macbooks just fine as long as they didn’t run macos), now I am curious if someone has tried mst with asahi.

Pretty sure it’s one each, amd left out (or borked, I have seen reports of it being kinda there but not really working) the second dp channel which is only a thunderbolt thing, usb4 only requires one. The whole 2 channels in thunderbolt thing was kind of the solution to multiple displays on a cable before mst became a thing and mostly apple seems to just keep rolling with that instead of using mst.

That was clear. Given that it was regular hardware and we know MST worked under Windows. The whole point was about their own, custom chips, where they could actually leave it out and it’d be very inconsistent to develop the hardware but boycott it in software.

TB4 mandates it yes. But USB4 has no limit on this. It is a USB4 feature to have multiple DP tunnels on a USB4 connection. TB5 will even add a 3rd for most hosts.

MST existed in practice before TB. My Intel Haswell (4th gen) CPU was already doing MST just fine. If you want to argue that it was specifically in there to circumvent MST, then Apple would be to blame, as they are the only one involved in TB boycotting MST to this day. And TB2 already advertised DP 1.2 and presumably supported MST already, even if TB1 might have not allowed it (I don’t know).

And we had FW users report 2 DP tunnels working on AMD USB4. The hardware enumerates as having 2 DP In Adapters (shown in the Windows USB4 panel). I myself had it not work on a Rembrandt host with much older Windows version (that did not yet have the USB4 panel, so not sure if the hardware did even report it). And assumed AMD’s USB4 implementation would not have it because they were and still are so secretive about it.

But in this forum and on FW, the problems seem to mostly be with Linux doing it, not with the hardware not being able to do it. The only thing I have not seen from those screenshots is if each USB4 port has its own router and each router has 2 independent DP inputs available, or if both USB4 ports simply share 2 between them. Maybe its buggy and I would not recommend relying on it blindly to an AMD owner until I have more information. But we already know 2 tunnels on one port can work.

Also, the separate DP tunnels have other advantages like not blocking Adaptive Sync, which most MST hubs still do. And with only a single DP tunnel, you are not getting close to saturating the 40 Gbps bandwidth.

1 Like

I don’t have an Apple Silicon macbook, so I don’t know about the M series, but my intel macbook pro works fine with MST when running Linux, where on macos it will show only duplicate screens.

As displayport is packet based idk how much hardware there is to leave out but it is very possible. Then again the asahi crew will probably make it work anyway if they fell like it XD.

USB4 allows pretty much anything while also allowing leaving out pretty much anything.

Turns out mst really was out before tb, then it makes even less sense they didn’t just put that into tb.

We did? I though it was only reporting a second one but not actually working.

I got a 7840U and a windows 11 2 go install so if you can test that without a device that actually uses 2 dp streams let me know.

Yeah the adaptive sync blocking is kind of an implementation issue which does suck. I do hope the changes to mst with DP2+ will fix that (and the bandwidth thing) long term.

2 Likes

I initially though, due my own short tests with Rembrandt that it would not have a 2nd DP Tunnel at all. But there are some users here that reported 2 displays with for example a CalDigit TS4 on an AMD FW13. Sadly, I have never gotten any of them to give me a Windows diagnostics dump that would allow me to double and triple check if there is no miscommunication and those people use weird hardware with DisplayLink or are hiding facts from me. A few Redditors also reported it just working as expected with docks that have no MST.

The full USB4 panel should do. To exclude most weird stuff in 3 situations:

Here my ADL-P TB4 as example. The DP In Adapters shows 2 for this controller (which for Intel has 2 ports. Both on the same side with FW). “Tunneled DP IN Adapters” counts exactly what it says, active DP connections through USB4/TB3. And “Unavailable DP IN Adapters” counts if they are made unavailable by for example native output which does bypass the USB4 router, and still makes it unavailable for the 2nd tunnel / port. This should indicate if some outputs are shared somehow. And multiple ports in the same controller should always share their DP In adapters.

And if you really want to go hard, you can enable the the “Device Portal” in Windows Developer Settings. (Should require installation and a reboot to actually start the webserver whenever the system booted with the option disabled). That shows the full graphic that would also be perfect to 100% confirm the use of the 2nd tunnel if a device is connected that does. Here is an example of that (with a topology of 3 TB3/USB4 devices connected: Caldigit Element Hub - Goshen Ridge, Dell WD19TB -Titan Ridge, Anker 556 - Via VL830)


It shows nicely how the tunnels are routed and which In/Out adapters are used and which are still free. Native output will bypass the USB4 router, so will never be visible in this graphic. And it will not use a “USB4 DP In Adapter” either, even though with Intel, the incoming DP connection will be unavailable if its used that way.

As much as I dislike windows 11, the usb4 settings page and that device portal thing is really nice.

It definitely looks like it reports two, if they work I can’t test as I don’t have the devices for it.

Nothing connected


Usb-c display connected directly (as far as I can tell that makes no difference)

Lenovo tb3 gen2 dock (40AN) connected (to the dasychain port, the host port falls back to usb-c mode for some reason)


I did not connect any displays to it because I did not feel like messing with the wiring on my desk but I had 3 displays working on it before.

Hope this helps.

It mostly helped me confirm the usb-c fallback thing on the host port isn’t a linux issue.

Only thing missing is the bandwidth distribution in a readable way. For when the 2nd DP connection will be throttled etc. Or how much PCIe bandwidth can be used at max. given USB3 and DP connections etc. Because the Windows USB4 connection manager is calculating and deciding all of that.

Also found somebody on reddit using a new Qualcomm XPS 13. Those also have the same layout with 2 USB4 routers, each with 2 DPs. And they even confirmed both working with a dock. So looks like those 2 DP connections are pretty much standard in practice. And AMD and Qualcomm do not even have ways in which the board designer can deprive them of the ports (with Intel, if they were to replace one USB4 out with a native DP/HDMI port, it would permanently consume the 2nd DP away from the other USB4 out).

Huh. I thought this was only a feature on old Alpine Ridge controllers and that Titan Ridge removed that. Apparently not (my Titan Ridge in my Dell WD19TB does not allow that).

Does not have what?

That both TB ports can be used arbitrarily as upstream or downstream ports. I thought only Alpine Ridge did this, because the initial controllers where shared between Host and Device. While Titan Ridge started to split the device controllers from the host controllers. Because only the device controller (Titan Ridge DD, what is in your dock) had the USB-C backwards compatibility with USB3 passthrough. I thought, starting with Titan Ridge the upstream and downstream ports were fixed and your dock would remain dark if you plugged the host into the TB-out port, just like mine (also with Titan Ridge DD).