FW 13 - Ryzen AI 9 - Thunderbolt/DP Display Output is Broken

My two thunderbolt 3 displays do not work in any of the 4 ports on the Framework 13 w/ AI 9 HX 370 CPU. When I plug in the thunderbolt cable, nothing on the external or internal display changes, I don’t see any extra displays in the GNOME Displays setting, and the only thing I see in the kernel messages is the following:

[ 1971.199794] ucsi_acpi USBC000:00: UCSI_GET_PDOS failed (-5)
[ 1972.107619] ucsi_acpi USBC000:00: unknown error 0

If I plug it into the bottom/nearest two ports, the monitors are enumerated as USB hubs and simple control devices, but nothing more.

These displays do work well with my Framework 16.

Anyone else hitting this? Any suggestions?


Which Linux distro and kernels have you tried?
I have tried all of the following:

  • Fedora 42 - Kernel 6.14
  • Debian testing/trixie/13 - Kernel 6.12.27
  • Debian testing/trixie/13 - Kernel 6.14 (from experimental)
  • Debian testing/trixie/13 with self-built kernel v6.15-rc7-142-g4856ebd99715

Which BIOS version are you using?
3.03

Which Framework Laptop 13 model are you using?
AMD Ryzen™ AI 300 Series

What monitors are you using?

Do you have any output when you run boltctl list I had to authorize my thunderbolt dock via boltctl authorize <id>

Great idea! Unfortunately, boltctl list shows no devices. If I do boltctl list -a, it shows the two USB4 host interfaces, but they are already authorized.

boltctl list -a
boltctl list -a
 ● Framework Laptop 13 (AMD Ryzen AI 300 Series)
   ├─ type:          host
   ├─ name:          Laptop 13 (AMD Ryzen AI 300 Series)
   ├─ vendor:        Framework
   ├─ uuid:          <some uuid>
   ├─ generation:    USB4
   ├─ status:        authorized
   │  ├─ domain:     <some uuid>
   │  └─ authflags:  none
   ├─ authorized:    Sat 24 May 2025 03:06:20 AM UTC
   ├─ connected:     Sat 24 May 2025 03:06:20 AM UTC
   └─ stored:        no

 ● Framework Laptop 13 (AMD Ryzen AI 300 Series)
   ├─ type:          host
   ├─ name:          Laptop 13 (AMD Ryzen AI 300 Series)
   ├─ vendor:        Framework
   ├─ uuid:          <some uuid>
   ├─ generation:    USB4
   ├─ status:        authorized
   │  ├─ domain:     <some uuid>
   │  └─ authflags:  none
   ├─ authorized:    Sat 24 May 2025 03:06:20 AM UTC
   ├─ connected:     Sat 24 May 2025 03:06:20 AM UTC
   └─ stored:        no

I also tried using the displays on a fresh Windows 11 install (with the driver bundle). Nothing happened on Windows 11, when I plugged in the displays, either. So, maybe this is a hardware issue?

On Debian trixie with kernel 6.14, I see the following extra debug messages:

$ echo 'module thunderbolt +p' | sudo tee /sys/kernel/debug/dynamic_debug/control
$ echo 'module drm +p' | sudo tee /sys/kernel/debug/dynamic_debug/control
$ sudo dmesg -w
# Plug in display.
[ 5117.660466] thunderbolt 0000:c3:00.5: 0: suspending switch
[ 5117.660481] thunderbolt 0000:c3:00.5: 0: enabling wakeup: 0x3f
[ 5117.660727] thunderbolt 0000:c3:00.6: 0: suspending switch
[ 5117.660733] thunderbolt 0000:c3:00.6: 0: enabling wakeup: 0x3f
[ 5117.661955] thunderbolt 0000:c3:00.6: stopping RX ring 0
[ 5117.661979] thunderbolt 0000:c3:00.6: disabling interrupt at register 0x38200 bit 3 (0x9 -> 0x1)
[ 5117.662012] thunderbolt 0000:c3:00.5: stopping RX ring 0
[ 5117.662023] thunderbolt 0000:c3:00.5: disabling interrupt at register 0x38200 bit 3 (0x9 -> 0x1)
[ 5117.662036] thunderbolt 0000:c3:00.5: stopping TX ring 0
[ 5117.662042] thunderbolt 0000:c3:00.5: disabling interrupt at register 0x38200 bit 0 (0x1 -> 0x0)
[ 5117.662051] thunderbolt 0000:c3:00.5: control channel stopped
[ 5117.662659] thunderbolt 0000:c3:00.6: stopping TX ring 0
[ 5117.662663] thunderbolt 0000:c3:00.6: disabling interrupt at register 0x38200 bit 0 (0x1 -> 0x0)
[ 5117.662670] thunderbolt 0000:c3:00.6: control channel stopped
[ 5124.901794] thunderbolt 0000:c3:00.6: control channel starting...
[ 5124.901805] thunderbolt 0000:c3:00.6: starting TX ring 0
[ 5124.901814] thunderbolt 0000:c3:00.6: enabling interrupt at register 0x38200 bit 0 (0x0 -> 0x1)
[ 5124.901818] thunderbolt 0000:c3:00.6: starting RX ring 0
[ 5124.901824] thunderbolt 0000:c3:00.6: enabling interrupt at register 0x38200 bit 3 (0x1 -> 0x9)
[ 5124.901832] thunderbolt 0000:c3:00.6: 0: resuming switch
[ 5124.901835] thunderbolt 0000:c3:00.6: restoring Switch at 0x0 (depth: 0, up port: 1)
[ 5124.901962] thunderbolt 0000:c3:00.5: control channel starting...
[ 5124.901964] thunderbolt 0000:c3:00.5: starting TX ring 0
[ 5124.901970] thunderbolt 0000:c3:00.5: enabling interrupt at register 0x38200 bit 0 (0x0 -> 0x1)
[ 5124.901973] thunderbolt 0000:c3:00.5: starting RX ring 0
[ 5124.901978] thunderbolt 0000:c3:00.5: enabling interrupt at register 0x38200 bit 3 (0x1 -> 0x9)
[ 5124.901985] thunderbolt 0000:c3:00.5: 0: resuming switch
[ 5124.901986] thunderbolt 0000:c3:00.5: restoring Switch at 0x0 (depth: 0, up port: 1)
[ 5124.902523] thunderbolt 0000:c3:00.5: 0: disabling wakeup
[ 5124.902530] thunderbolt 0000:c3:00.6: 0: disabling wakeup
[ 5124.902712] thunderbolt 0000:c3:00.6: acking hot plug event on 0:6
[ 5124.902825] thunderbolt 0000:c3:00.6: acking hot plug event on 0:7
[ 5124.902836] thunderbolt 0000:c3:00.5: acking hot plug event on 0:6
[ 5124.902983] thunderbolt 0000:c3:00.5: acking hot plug event on 0:7
[ 5124.905446] thunderbolt 0000:c3:00.6: 0: TMU: supports uni-directional mode
[ 5124.905576] thunderbolt 0000:c3:00.6: 0: TMU: current mode: off
[ 5124.905581] thunderbolt 0000:c3:00.6: 0: TMU: mode change off -> bi-directional, HiFi requested
[ 5124.906098] thunderbolt 0000:c3:00.6: 0: TMU: mode set to: bi-directional, HiFi
[ 5124.906539] thunderbolt 0000:c3:00.6: 0:6: DP IN resource available after hotplug
[ 5124.906554] thunderbolt 0000:c3:00.6: looking for DP IN <-> DP OUT pairs:
[ 5124.906608] thunderbolt 0000:c3:00.6: 0:6: DP IN available
[ 5124.906611] thunderbolt 0000:c3:00.6: 0:6: no suitable DP OUT adapter available, not tunneling
[ 5124.906753] thunderbolt 0000:c3:00.6: 0:7: DP IN resource available after hotplug
[ 5124.906758] thunderbolt 0000:c3:00.6: looking for DP IN <-> DP OUT pairs:
[ 5124.906883] thunderbolt 0000:c3:00.6: 0:6: DP IN available
[ 5124.906888] thunderbolt 0000:c3:00.6: 0:6: no suitable DP OUT adapter available, not tunneling
[ 5124.907014] thunderbolt 0000:c3:00.6: 0:7: DP IN available
[ 5124.907019] thunderbolt 0000:c3:00.6: 0:7: no suitable DP OUT adapter available, not tunneling
[ 5124.907256] thunderbolt 0000:c3:00.5: 0: TMU: supports uni-directional mode
[ 5124.907293] thunderbolt 0000:c3:00.5: 0: TMU: current mode: off
[ 5124.907295] thunderbolt 0000:c3:00.5: 0: TMU: mode change off -> bi-directional, HiFi requested
[ 5124.907815] thunderbolt 0000:c3:00.5: 0: TMU: mode set to: bi-directional, HiFi
[ 5124.908208] thunderbolt 0000:c3:00.5: 0:6: DP IN resource available after hotplug
[ 5124.908217] thunderbolt 0000:c3:00.5: looking for DP IN <-> DP OUT pairs:
[ 5124.908359] thunderbolt 0000:c3:00.5: 0:6: DP IN available
[ 5124.908366] thunderbolt 0000:c3:00.5: 0:6: no suitable DP OUT adapter available, not tunneling
[ 5124.908513] thunderbolt 0000:c3:00.5: 0:7: DP IN resource available after hotplug
[ 5124.908524] thunderbolt 0000:c3:00.5: looking for DP IN <-> DP OUT pairs:
[ 5124.908602] thunderbolt 0000:c3:00.5: 0:6: DP IN available
[ 5124.908606] thunderbolt 0000:c3:00.5: 0:6: no suitable DP OUT adapter available, not tunneling
[ 5124.908754] thunderbolt 0000:c3:00.5: 0:7: DP IN available
[ 5124.908759] thunderbolt 0000:c3:00.5: 0:7: no suitable DP OUT adapter available, not tunneling
[ 5125.265603] ucsi_acpi USBC000:00: UCSI_GET_PDOS failed (-70)
[ 5126.177542] ucsi_acpi USBC000:00: unknown error 0

Trying New Cables

I have tried a bunch of brand new genuine certified thunderbolt 5 cables, even though my original setup/cables work perfectly fine on my Framework 16 and a ~2024 MacBook Air.

  1. Cable Matters [Intel Certified] 80Gbps Premium Braided Thunderbolt 5 Cable 1m

  2. Anker Prime Thunderbolt 5 Cable, 3.3 FT 80Gbps (Thunderbolt 5-Certified)

  3. Apple Thunderbolt 5 (USB‑C) Pro Cable (1m)

  4. My original cables are 2m long thunderbolt 3 cables, which came with the thunderbolt 3 LG Ultrafine 4K and 5K monitors. Again, these cables and monitors work perfectly with other computers, including the framework 16.


  • The 24" 4K LG UltraFine 24MD4K Display now works with all of the new thunderbolt 5 cables.

  • The 27" 5K LG UltraFine Display sometimes connects using the new cables, but when it does connect, GNOME crashes and send me back to the login screen. When I log back in, I can use the 5K display. This does not always work.

    When it doesn't connect, we see a bunch of these errors
    [249826.454909] thunderbolt 0-2: reading DROM failed: -107
    [249826.454986] thunderbolt 0-2: failed to initialize port 1
    [249826.455036] thunderbolt 0000:c3:00.5: hotplug event from non existent switch 2:2 (unplug: 0)
    [249826.482526] ucsi_acpi USBC000:00: unknown error 256
    [249829.762788] thunderbolt 0-2: reading DROM failed: -107
    [249829.762901] thunderbolt 0-2: failed to initialize port 1
    [249829.762939] thunderbolt 0000:c3:00.5: hotplug event from non existent switch 2:2 (unplug: 0)
    [249838.486756] usb 1-1: reset full-speed USB device number 2 using xhci_hcd
    [249843.358855] thunderbolt 0000:c3:00.5: 0:0: downstream port is locked
    [249843.358870] thunderbolt 0-2: reading DROM failed: -13
    [249843.359175] thunderbolt 0000:c3:00.5: 0:0: downstream port is locked
    [249843.359187] thunderbolt 0-2: failed to initialize port 1
    [249843.359232] thunderbolt 0000:c3:00.5: hotplug event from non existent switch 2:2 (unplug: 0)
    [249847.118699] thunderbolt 0-2: reading DROM failed: -107
    [249847.119251] thunderbolt 0-2: failed to initialize port 1
    [249847.119301] thunderbolt 0000:c3:00.5: hotplug event from non existent switch 2:2 (unplug: 0)
    [249850.350630] thunderbolt 0-2: reading DROM failed: -107
    [249850.350774] thunderbolt 0-2: failed to initialize port 1
    [249850.350820] thunderbolt 0000:c3:00.5: hotplug event from non existent switch 2:2 (unplug: 0)
    [249860.638987] usb 1-1: reset full-speed USB device number 2 using xhci_hcd
    [249880.594875] thunderbolt 0-2: reading DROM failed: -107
    [249880.595090] thunderbolt 0-2: failed to initialize port 1
    [249880.595141] thunderbolt 0000:c3:00.5: hotplug event from non existent switch 2:2 (unplug: 0)
    
  • When daisy chaining the monitors together, the 5K monitor appears in the display settings menu (although in portrait mode for some reason), but it remains black. If I adjust the settings, the laptop builtin display will hang indefinitely. This daisy chaining works with other computers, including the framework 16.
1 Like

this happened to me too on a Framework 16 with 7040. what seems to be working for me (so far anyway)

sudo pacman -S linux-lts
sudo pacman -R linux
sudo grub-mkconfig -o /boot/grub/grub.cfg
reboot
1 Like

You are not alone, see ([SOLVED] Issues connecting to USB-C Monitor (AMD Ryzen AI 350) - #21 by Alex_Yosifov)

The 5K LG display is actually 2 display controllers, each connecting through their own DP tunnel (left and right half). This was done because Apple / the monitor does not support DP at HBR3 speeds which would be needed to reach 5k60 over a single connection. but half of 5K fits through a HBR2 connection and TB3 could fit 2 of those.
So that monitor you could never combine with another monitor on a regular TB out with only 2 DP tunnels. It was a design failure that way since launch, since all of this is integrated into the display and you cannot get at it in any other way. Thats why the monitor can only reach 4K in DP Alt mode.
It’s the GPU driver that would hide this from you, notice the “display tiling” info and that both tiles are available and show it to you as a fused display or that only one tile is available and to then fall back to the alternative of a single 4K monitor. Linux may just show you the bare parts anyway, without this hiding-automatic.

1 Like

Today the BIOS version 3.04 was released, and it fixed my USB-C Display issues. I suggest giving it a try!

1 Like

Ohh, great info! This does somewhat explain some of the odd behavior I have seen with this monitor.

  • I have seen instances where the monitor only enumerates as a portrait orientation monitor (I’m guessing half of the monitor) with nothing being displayed.
  • This portrait issue occurs f I leave all monitors plugged int (daisy chain) during boot-up/reboot.
  • I believe I have driven it at 5K resolution with a single thunderbolt cable plugged in.
  • In the daisy chain config, GNOME Displays says the max resolution of the 5K monitor is 3840x2160.

I was ultimately able to get both of these monitor to work in a daisy chain config, by pre-configuring both displays to 2K resolution (2560x1440 16:9), independently (using whatever means necessary), and using newer Thunderbolt 5 cables. For some reason both of the original Thunderbolt 3 cables will not work in any configuration, even though these are both Thunderbolt 3 monitors and these cable+monitors work on the Framework 16.

Any clue why the thunderbolt 3 cables no longer work?

Unfortunately, this didn’t change anything for me.

I’ve got a heap of early tb3 cables that have issues because thunderbolt3 doesn’t require/include the USB-C E-marker id’s which mean that many PD controllers will not deliver power over them above 5V 1.5A - if I had to guess tb3 cables that don’t include emarker bits likely end up with PD controllers likewise not triggering correct set of registers to make the USB controller go into a non usb2 rates due to the lack of e-marker.

Ohh, very interesting. I just checked the TB3 cable vs the new TB5 cables. It seems that the older TB3 are e-marked and identify as supporting PD 2.0 (the SOP' PD Rev), vs the TB5 cables identify as PD 3.0.

For reference, I checked using ectool typecstatus / typecdiscovery on a Chromebook. Again, the interesting thing is that the orignal TB3 cables (that came with the monitor, I believe) work with the Framework 16 with the ChromeOS EC + AMD CPU.


LG Thunderbolt 3 Cable
# ectool typecstatus 1
Port C1: enabled, connected State: Attached. SNK
Role: SNK UFP VCONN, Polarity: CC1
CC State: UFP attached
Port events: 0x00000000
SOP PD Rev: 3.0
SOP' PD Rev: 2.0
Source Capabilities:
Fixed: 5000mV 3000mA DRP UP USB DRD
Fixed: 9000mV 1660mA
Fixed: 15000mV 1000mA
Fixed: 20000mV 750mA
Sink Capabilities:
Fixed: 5000mV 0mA DRP UP USB DRD
# ectool typecdiscovery 1 0
Identity VDOS:
0xd400043e
0x00000000
0x9a650659
SVID 0x8087 Modes:
0x00000001
SVID 0xff01 Modes:
0x00141047

# ectool typecdiscovery 1 1
Identity VDOS:
0x240020c2
0x00000000
0x00040010
0x21085858
SVID 0x8087 Modes:
0x00430001
SVID 0x04b4 Modes:
0x00000001
Anker Thunderbolt 5 Cable
# ectool typecstatus 1
Port C1: enabled, connected State: Attached. SNK
Role: SNK DFP VCONN, Polarity: CC1
CC State: UFP attached
DP pin mode: C
MUX: USB=1 DP=1 POLARITY=NORMAL HPD_IRQ=0 HPD_LVL=0
SAFE=0 TBT=0 USB4=0
Port events:
0x00000000
SOP PD Rev: 3.0
SOP' PD Rev: 3.0
Source Capabilities:
Fixed: 5000mV 3000mA DRP UP USB DRD
Fixed: 9000mV 1660mA
Fixed: 15000mV 1000mA
Fixed: 20000mV 750mA
Sink Capabilities:
Fixed: 5000mV 0mA DRP UP USB DRD
# ectool typecdiscovery 1 0
Identity VDOS:
0xd400043e
0x00000000
0x9a650659
SVID 0x8087 Modes:
0x00000001
SVID 0xff01 Modes:
0x00141c47

# ectool typecdiscovery 1 1
Identity VDOS:
0x1c60291a
0x00000943
0x84010190
0x110a2644
SVID 0x04b4 Modes:
0x00000001
SVID 0x8087 Modes:
0x00030001

The PD spec version of the cable eMarker would only really matter if the cable wanted to identify as EPR cable. Other than that, the cable has no need to use the PD 3+ version.

And there really cannot be 40G TB3 cables without eMarkers, as TB3 checks the TB-extension in the eMarker to unlock 40G speeds. Older TB3 controllers do not understand the modern Gen 3 info in the standard eMarker (of 40G USB-C cables) and will fall back to the highest USB-C speed back then (Gen 2, 20G connection only).

Some of those monitors might have come with active TB3 cables (especially if 2m, 40G), which likely can ONLY do TB3 and not USB3/ DP Alt mode.
Especially if boltctl does not recognize any TB controllers, they may operate in DP Alt mode where the cables would need to run as DP Alt mode cables instead of TB3 cable.

Original active TB3 cables basically break the USB-C spec and do not behave as modern, active USB-C cables, which still must be backwards compatible. And they are also very rare.
They still absolutely should be supported by modern USB4 hosts for TB3 connections, but its probably not at all well tested