[RESPONDED] Framework 13 USB 4 PCIe Lanes

I was trying to figure out why one of my eGPUs worked with my Framework 13 Intel i7-1370p but doesn’t work with my new Framework 13 AMD 7840U, and noticed that I’m only getting an x1 link on AMD while I’m getting and x4 link on Intel. This is what I’m seeing in dmesg:

[  134.193344] pci 0000:62:00.0: 2.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x1 link at 0000:00:04.1 (capable of 31.504 Gb/s with 8.0 GT/s PCIe x4 link)

lspci for the thunderbolt tunnel also shows an x1 link:

00:04.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 19h USB4/Thunderbolt PCIe tunnel (prog-if 00 [Normal decode])
        Subsystem: Advanced Micro Devices, Inc. [AMD] Family 19h USB4/Thunderbolt PCIe tunnel
                ...
                LnkSta: Speed 2.5GT/s, Width x1
                        TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
                ...

Are the USB ports on the AMD Framework 13’s only 1-lane ports instead of 4 like on the Intels? If they are in fact 4-lane, is there some trick to make them run at full speed?

Note that this happens with a few Thunderbolt devices I have, not just with an eGPU.

Edit: I’m running an updated Arch install with the latest kernel:

Linux grazier 6.6.1-arch1-1 #1 SMP PREEMPT_DYNAMIC Wed, 08 Nov 2023 16:05:38 +0000 x86_64 GNU/Linux

We don’t test eGPUs per se, however can you tell me which port you are connecting to?

I tested both ports 1 and 3. I know the bottom two aren’t USB4.

It looks like this might be the issue here: [Linux 6.5.7] External GPU not working on AMD ThinkPad Z16 laptop via USB4 (#2925) · Issues · drm / amd · GitLab

Also the link speed showing as a single x1 PCIe gen 2 link might be a red herring: https://gitlab.freedesktop.org/drm/amd/-/issues/2925#note_2147083

We’ll see if it’s fixed in 6.7…

1 Like

I guess I should have mentioned, the eGPU that “doesn’t work” does connect and shows up in lspci, it’s just the amdgpu driver that gives an error. I have two though, one works and one doesn’t.

I have a RX7800 in an Akitio Node Titan, which is the one that “doesn’t work”, and an RX6800 in a Razer Core X, which does, both however report x1 at 2.5GT/s; I thought maybe the newer card doesn’t like running with only that much bandwidth so it might be the problem. It’s not important enough for me to start swapping enclosures and whatnot to try and get it working, so I’ll just wait for this fix to go through which hopefully fixes it.

This should fix performance issues.

https://lore.kernel.org/amd-gfx/20231110223452.13439-1-mario.limonciello@amd.com/

The messaging from PCI core is still under discussion.

1 Like

Thanks, I saw that in the thread I had posted. It’s not important enough right now for me to run a patched kernel so I’m just waiting for it to (hopefully) show up in kernel 6.7.

1 Like

Might not be relevant to your problem, but you might give this solution a shot in order to force amdgpu driver to use x3 instead of x1 speeds. I had a similar issue but on 12th gen Intel and this fixed it.

Did you get this fixed? I have a 7640U (running NixOS, so Linux as well) and I’d like to get an eGPU to be able to get rid of my desktop possibly.

I can get pretty much full bandwidth on a usb4 ssd so I suppose it probably is. Th reporting as 1 lane thing was still there last time I checked but it doesn’t actually effect performance.

1 Like

Thanks a lot!