Which Linux distro are you using?
Arch Linux
Which release version?
(if rolling release without a release version, skip this question)
(If rolling release, last date updated?)
2026-02-13
Which kernel are you using?
6.18.7-arch1-1
Which BIOS version are you using?
4.03
Which Framework Laptop 16 model are you using? (AMD Ryzen™ 7040 Series)
AMD Ryzen 9 7940HS
AMD RX7700s
Hi there!
I got an eGPU (Razer Core X V2 w/ RX9070 XT) a few days ago and haven’t gotten it working properly so far. I use a 4k Monitor and wanted to be able to play games a little more performant, than I can with the RX7700s. Also I needed more VRAM for video editing.
In Games like RDR2 and Cyberpunk 2077 and even CS2 I barely hit 20 FPS with the eGPU whereas with the RX7700s I get more than 30 FPS in those games. In CS2 with my realistic settings (medium Graphics + 1080p) I get 120FPS+.
I’m well aware of the USB 4 bottleneck, but I have to assume that there is something else wrong here. The performance is just way too bad to simply blame it on USB4.
I did some debugging and found out that the Laptop 16 seeming doesn’t support resizable BAR:
sudo dmesg | grep -i bar
[ 184.767945] amdgpu 0000:0a:00.0: amdgpu: Fetched VBIOS from ROM BAR
[ 184.782277] amdgpu 0000:0a:00.0: BAR 2 [mem 0x7410000000-0x74101fffff 64bit pref]: releasing
[ 184.782280] amdgpu 0000:0a:00.0: BAR 0 [mem 0x7400000000-0x740fffffff 64bit pref]: releasing
[ 184.782345] amdgpu 0000:0a:00.0: BAR 0 [mem size 0x400000000 64bit pref]: can't assign; no space
[ 184.782347] amdgpu 0000:0a:00.0: BAR 0 [mem size 0x400000000 64bit pref]: failed to assign
[ 184.782348] amdgpu 0000:0a:00.0: BAR 2 [mem size 0x00200000 64bit pref]: can't assign; no space
[ 184.782349] amdgpu 0000:0a:00.0: BAR 2 [mem size 0x00200000 64bit pref]: failed to assign
[ 184.782351] amdgpu 0000:0a:00.0: BAR 0 [mem size 0x400000000 64bit pref]: can't assign; no space
[ 184.782352] amdgpu 0000:0a:00.0: BAR 0 [mem size 0x400000000 64bit pref]: failed to assign
[ 184.782354] amdgpu 0000:0a:00.0: BAR 2 [mem size 0x00200000 64bit pref]: can't assign; no space
[ 184.782355] amdgpu 0000:0a:00.0: BAR 2 [mem size 0x00200000 64bit pref]: failed to assign
[ 184.782439] amdgpu 0000:0a:00.0: amdgpu: Not enough PCI address space for a large BAR.
[ 184.782441] amdgpu 0000:0a:00.0: BAR 0 [mem 0x7400000000-0x740fffffff 64bit pref]: assigned
[ 184.782455] amdgpu 0000:0a:00.0: BAR 2 [mem 0x7410000000-0x74101fffff 64bit pref]: assigned
[ 184.782488] [drm] Detected VRAM RAM=16304M, BAR=256M
And furthermore, I think it doesn’t support above 4G decoding either:
cat /proc/iomem | grep -i "pci bus"
00000000-00000000 : PCI Bus 0000:00
00000000-00000000 : PCI Bus 0000:00
00000000-00000000 : PCI Bus 0000:00
00000000-00000000 : PCI Bus 0000:00
00000000-00000000 : PCI Bus 0000:65
00000000-00000000 : PCI Bus 0000:66
00000000-00000000 : PCI Bus 0000:67
00000000-00000000 : PCI Bus 0000:68
00000000-00000000 : PCI Bus 0000:87
00000000-00000000 : PCI Bus 0000:a6
00000000-00000000 : PCI Bus 0000:c3
00000000-00000000 : PCI Bus 0000:06
00000000-00000000 : PCI Bus 0000:c4
00000000-00000000 : PCI Bus 0000:c6
00000000-00000000 : PCI Bus 0000:c5
00000000-00000000 : PCI Bus 0000:05
00000000-00000000 : PCI Bus 0000:04
00000000-00000000 : PCI Bus 0000:01
00000000-00000000 : PCI Bus 0000:02
00000000-00000000 : PCI Bus 0000:03
00000000-00000000 : PCI Bus 0000:00
00000000-00000000 : PCI Bus 0000:00
00000000-00000000 : PCI Bus 0000:00
00000000-00000000 : PCI Bus 0000:00
00000000-00000000 : PCI Bus 0000:00
00000000-00000000 : PCI Bus 0000:00
00000000-00000000 : PCI Bus 0000:65
00000000-00000000 : PCI Bus 0000:66
00000000-00000000 : PCI Bus 0000:67
00000000-00000000 : PCI Bus 0000:68
00000000-00000000 : PCI Bus 0000:87
00000000-00000000 : PCI Bus 0000:a6
00000000-00000000 : PCI Bus 0000:c3
00000000-00000000 : PCI Bus 0000:06
00000000-00000000 : PCI Bus 0000:01
00000000-00000000 : PCI Bus 0000:02
00000000-00000000 : PCI Bus 0000:03
00000000-00000000 : PCI Bus 0000:c4
00000000-00000000 : PCI Bus 0000:c5
00000000-00000000 : PCI Bus 0000:04
If I understand this correctly, this means that there are no memory windows assigned to these busses?
I went to dig a little deeper and read the ACPI Tables and decoded them:
sudo cat /sys/firmware/acpi/tables/DSDT > dsdt.dat
iasl -d dsdt.dat
I found this, which kind of confirms my initial suspicion:
QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
0x0000000000000000, // Granularity
0x0000000000000000, // Range Minimum
0x0000000000000000, // Range Maximum
0x0000000000000000, // Translation Offset
0x0000000000000000, // Length
,, _Y02, AddressRangeMemory, TypeStatic)
QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
0x0000000000000000, // Granularity
0x0000000000000000, // Range Minimum
0x0000000000000000, // Range Maximum
0x0000000000000000, // Translation Offset
0x0000000000000000, // Length
,, _Y03, AddressRangeMemory, TypeStatic)
There is no above 4G space defined for the kernel to map something to.
I plugged the eGPU into my work laptop (Dell Latitude 5531) and read out the memory mapping which is 0x6000000000-0x60101FFFFF. That is clearly in the above 4G space, so it’s not an issue with the eGPU.
After that, I tried various boot kernel flags to work around those limitations and haven’t gotten lucky. Mostly it just lead to the system being unstable or not booting at all.
Now, I’m out of ideas and really don’t know how to go from here. I’m honestly disappointed that this is even an issue. Unfortunately, the BIOS isn’t open source, so I have no way of solving this issue myself. I’ve seen this post about coreboot: [RESPONDED] Coreboot on the Framework Laptop - #571 by blur.
If that ever sees the light of day I’ll probably switch to that, but in the mean time, do you have any recommendations for me?
Could this issue be fixed. Am I missing something?