Dock Compatibility (AMD) - USB-C / Thunderbolt

Hello there,

my Framework AMD Edition arrived and after sorting out some trouble with Kernel versions etc (due to my ssd needing at least 6.5.5+) I have a running Linux installation, as well as a Windows 11 installation.

As I love just plugging in one cable, and having everything like Ethernet, Displays, Keyboard, Power through that. With that Plan in my head, I just opted for 4 USB-C Adapter Cards…

Sadly with three different(!) Thunderbolt Docks and one USB-C Dock (not a thunderbolt one…) I never got a Display Output through that, but the USB-Ports, Ethernet and Power Delivery work fine. This is true in both Windows, with Fedora 39 (nightly) and with Pop_Os! (Ubuntu derivative, both with Kernel 6.5.6 and the oem Kernel 6.1xxoem-1024 or something ;-)).

So I have:

The Thunderbolt docks show up as connected with “boltctl”…

All of those Docks/Hubs work on two other Laptops (Thinkpad T490 and Asus Rog Flow X13 2022 (6800u with Beta-Bios enabling USB4 support) under Windows and at least partially under Linux with the X13.

Anybody else running into trouble with their Docks?

Happy to supply any further information :slight_smile:

edit: After running the driver installation again and rebooting in Windows, at least there the Lenovo Dock suddenly started working and showing output on the two displays. So not completely bonkes… will investigate further…

now it gets strange: Just booted up the Fedora 39 nightly installation media again and now the Lenovo Dock also works there… Maybe the Windows-Driver-Setup-Initialization-Thingy-Whatever did something…

okay… appears to be working now… still have to figure out how to boot my pop_os installation without the “nomodeset” boot param, without it I get stuck on a grey screen.

2 Likes

Which ports did you use? My expectation would be, that only with the two rear slots that are USB 4 capable I would have any chance of getting my existing dock working fine.

uhm yes, only the two rear slots. and those are the ones I tried. The “nomodesetting” Kernel param sadly completely kills any “dynamic” adding of displays through whatever means :wink:

so now I am only 80% sure that the thunderbolt stuff did not work before I installed Windows with all drivers once and had one Thunderbolt-Dock active there… Can’t reproduce now anyways… maybe there is some initial bits that need to be set somehow (i have no clue about the internals of thunderbolt, so this is really a wild guess…)

I’d wait on the 3.03 firmware or whatever newer version is coming out sometime.

AMD likely won’t ever officially support Thunderbolt as that’s an Intel specific specification. If it works its best effort.

I think we probably need to update the dock wiki with a new column for AMD laptop support.

Hmm yes… It appears the thunderbolt stack is in some broken state now again after some testing with pop_os… And it looks like Fedora is now unable to activate the displays…

Time to reinstall Windows I guess and see if that fixes the problem :smile:

edith says: in windows it works sometimes, no luck in fedora anymore…

hmm…

Under Linux even basic usb-c displayport adapter don’t work anymore in the usb4 ports, after there being a thunderbolt dock connected… Something is left in an undefined state there, which is persisted to disk somehow… Installed Fedora39 nightly / pop os 22.04 with oem kernel both show this behavior, while the fedora live usb worked fine. After having the same devices connected under Windows 11 and rebooting to pop os with the oem kernel, the usb-c displayport adapters are working in that config.

will wait for the 3.0.3 bios and see if that fixes something. and will do some “controlled” experiments and open a ticket then… right now it is all a little diffuse and i can’t really pinpoint the exact problem…

also hotplugging with the basic adapters does not appear to work… ended up with phantom displays…

This is what I decided my stance is as well. We are waiting on ruling out a bunch of noise that seems all related to firmware. Once we get past that, we can be more methodical in identifying problems. I am keeping my laptop updated with any updates coming from Fedora, though it is a bit slower while they are frozen for F39 release candidate blockers.

3.03 update worked for me.

I haven’t delved into Linux just yet, though I plan to at some point soon - but at least on first connection, the 7040U Framework seems to work great with a CalDigit TS3 Plus Thunderbolt 3 dock, an Apple Studio Display, and an LG 4K monitor connected via DisplayPort to the dock in Windows 11. Both displays, the Ethernet adapter, and the multitude of USB device I have attached work just fine; I did have to go find the Windows settings to allow running lid closed when plugged in, but that worked fine as well. This is with the stock 3.02 BIOS, though with the 3.03 beta driver pack, as the BIOS update hasn’t yet worked for me.

Have now also updated to 3.03 and the Dock compatibility seems to have improved greatly…

Now at least my Lenovo Thunderbolt 3 (40AC) works fine, and seems to also survive reboots under Linux (pop os 22.04 with kernel 6.5.6).
Hotplugging display-adapters seems to be working now also.

The asus simpro dock only enabled one of the two external screens, for whatever reason…

Haven’t tried the third dock I have. If the Lenovo dock remains stable, I can finally continue with setting up the laptop and switch to it as my primary machine.

Will have to install Windows again, but there everything was working even with the old firmware.

the lenovo dock is stable, when removing it from the laptop while it is still powered on, the dock needs a power cycle. (but this is most likely more due to the dock, and not the laptop). Without the power cycle the dock only gets detected as a usb 2.0 device, and there are some messages in syslog about being unable to set some power state to d0 / d3 hot / d3 cold, after unplugging it without doing “some kind of eject” procedure (what ever that would mean…)

unexpectedly the dock also works during “boot” (iirc also in bios) and tje decryption of the luks encrypted partition! <3

fairly happy now!

Updated to the 3.03 BIOS shortly after delivery (can’t speak to 3.02) but was able to get my machine working with both Windows 11 and Fedora 39 on a CalDigit TS4 with dual 4K monitors (one connected via DisplayPort and the other USB-C to DisplayPort cable) with no issues.

Ryzen 7840u board with 3.03 BIOS

Works as expected with an LG 38WN95C. Get full resolution @ 120 Hz, power delivery and USB downstream

1 Like

very much appreciate the reports! for me it always got tricky with more than one display over one cable, meaning display port mst gets involved somehow :slight_smile: but the lenovo thunderbolt dock remains stable and both screens get detected every time so far… no need for repeated plug-in/out / power cycling.

Actually the problem here is when mst doesn’t get involved, thunderbolt by spec has 2 DP channels which some docks use for dual screen (especially apple focused ones since apple refuses to support mst) but the usb4 controller in the amd chip (and the m1/m2 chips for that matter) have only one DP link.

I haven’t had time to do a full run of tests and do a proper write up, but the CalDigit TS4 has been working very well for me on my AMD FW13. I run a 4k/120 display and have no issues running it 10bit RGB (using a USB4/TB4 to HDMI cable). I still haven’t tried 2.5GbE but 1GbE works perfectly. No issues when sleep/resume either.

All my testing has been Windows 11 so far. I haven’t gotten time/energy to install Linux yet.

Any questions or tests you want me to run with my setup; please let me know.

interesting fact to know :slight_smile: will keep this in mind and see if i can figure out a way to see if it uses mst or not to drive the displays :wink:

Knowing that would make picking docks way too easy XD

If it supports more than 2 monitors simultaneously on TB, it uses MST.
If its “only” USB4 (right now only used for Via VL830-based docks and hubs, only supports 1 DP) and supports more than 1 monitor simultaneously, it uses MST…
If it advertises backwards compatibility to USB-C (non-TB, non-USB4) with more than 1 monitor , then its MST, since otherwise that compatibility would be quite limited.
Furthermore, the most common style of docks, that all of Lenovos, HPs, Dells TB docks use, is one DP connection goes into a MST-Hub, which then serves all of the DP, USB-C and HDMI outputs the dock has (perhaps even with chained MST-Hubs in case of more than 3 simultaneous outputs like on the Lenovo TB4 dock). And typically, at least one 1 TB-out remains available to access the 2nd DP tunnel simultaneously (although much less useful on hosts that support HBR3).
Anker for example also basically follows this scheme with most likely the exact same MST-Hub chip as Lenovo, Dell and HP use.
There is one other, rare style of MST-Docks, done mostly for backwards compatibility with Apple: the Plugable 4x4K dock. It uses both DP tunnels at HBR2 speeds, each going through a 2-port MST-Hub.
TB-outs are basically always directly from the TB controller, so no MST behind that.
Although note: the Lenovo TB4 dock cheats, its “TB-out” is a hybrid port that is either an MST-Output or an actual TB-out depending on undocumented choices by the dock. But so far it seems to be the only one that does it that way.

1 Like

thanks for the clarification.

what i meant was to figure out if there is some flag / kernel file under linux which tells me if the current active connection is mst or not…

/sys/kernel/debug/dri/0/DP-XX/is_mst_connector

appears to be that in some way, with “no”, “end” and “root” as active values for me. with the lenovo thunderbolt 3 dock, my setup is: first monitor connected through the docks hdmi port and second monitor connected with a hdmi adapter in one of the two displayport ports.

matching this with xrandr output: DP-8 / displayport-8 has “no” as a value, DP-9 / displayport-9 has “end” and DP-7 has “root”…

now I am curious if there is some way to automatically gather the “connection tree” like: laptop port 1 dp-alt(??) → thunderbolt dock → mst hub (dp-7??) → dp-8 / dp-9. not that, that would help much…

and furthermore if there is way to identify “chips” used along the way, as the asus thunderbolt dock i have appears to work fine under Windows, but only shows one display under Linux.

1 Like