Thunderbolt eGPU on Linux can't allocate BAR space?

Hey all,

I’m trying to get a Sonnet RX5500XT eGPU Breakaway puck working on an HP Elitebook G7 running Fedora 38, but when it tries to initialize, dmesg starts coughing up BAR Space allocation errors, more specifically, the host Thunderbolt controller down to the GPU itself is saying that it can’t allocate BAR space, so it fails to initialize.

Any thoughts as to what might be wrong and how to fix it? Thanks in advance!

Logs in question:

[60079.277100] amdgpu 0000:08:00.0: BAR 2: releasing [mem 0x4028000000-0x40281fffff 64bit pref]
[60079.277110] amdgpu 0000:08:00.0: BAR 0: releasing [mem 0x4030000000-0x403fffffff 64bit pref]
[60079.277180] pcieport 0000:07:00.0: BAR 15: releasing [mem 0x4028000000-0x403fffffff 64bit pref]
[60079.277188] pcieport 0000:06:00.0: BAR 15: releasing [mem 0x4028000000-0x403fffffff 64bit pref]
[60079.277195] pcieport 0000:05:01.0: BAR 15: releasing [mem 0x4028000000-0x403fffffff 64bit pref]
[60079.277211] pcieport 0000:05:04.0: bridge window [io  0x1000-0x0fff] to [bus 0a-36] add_size 1000
[60079.277222] pcieport 0000:04:00.0: bridge window [io  0x1000-0x0fff] to [bus 05-36] add_size 1000
[60079.277233] pcieport 0000:04:00.0: BAR 13: no space for [io  size 0x1000]
[60079.277239] pcieport 0000:04:00.0: BAR 13: failed to assign [io  size 0x1000]
[60079.277245] pcieport 0000:04:00.0: BAR 13: no space for [io  size 0x1000]
[60079.277251] pcieport 0000:04:00.0: BAR 13: failed to assign [io  size 0x1000]
[60079.277263] pcieport 0000:05:01.0: BAR 15: no space for [mem size 0x180000000 64bit pref]
[60079.277269] pcieport 0000:05:01.0: BAR 15: failed to assign [mem size 0x180000000 64bit pref]
[60079.277275] pcieport 0000:05:04.0: BAR 13: no space for [io  size 0x1000]
[60079.277281] pcieport 0000:05:04.0: BAR 13: failed to assign [io  size 0x1000]
[60079.277289] pcieport 0000:05:01.0: BAR 15: no space for [mem size 0x180000000 64bit pref]
[60079.277295] pcieport 0000:05:01.0: BAR 15: failed to assign [mem size 0x180000000 64bit pref]
[60079.277301] pcieport 0000:05:04.0: BAR 13: no space for [io  size 0x1000]
[60079.277306] pcieport 0000:05:04.0: BAR 13: failed to assign [io  size 0x1000]
[60079.277315] pcieport 0000:06:00.0: BAR 15: no space for [mem size 0x180000000 64bit pref]
[60079.277321] pcieport 0000:06:00.0: BAR 15: failed to assign [mem size 0x180000000 64bit pref]
[60079.277328] pcieport 0000:07:00.0: BAR 15: no space for [mem size 0x180000000 64bit pref]
[60079.277335] pcieport 0000:07:00.0: BAR 15: failed to assign [mem size 0x180000000 64bit pref]
[60079.277343] amdgpu 0000:08:00.0: BAR 0: no space for [mem size 0x100000000 64bit pref]
[60079.277349] amdgpu 0000:08:00.0: BAR 0: failed to assign [mem size 0x100000000 64bit pref]
[60079.277356] amdgpu 0000:08:00.0: BAR 2: no space for [mem size 0x00200000 64bit pref]
[60079.277362] amdgpu 0000:08:00.0: BAR 2: failed to assign [mem size 0x00200000 64bit pref]

Is CSM disabled in bios?

Yes, it’s disabled, I confirmed it’s booting with UEFI. Thunderbolt authorizes OK as well.

I’m out of ideas, weird that a 5500xt with little VRAM triggers it

What would the relationship between BAR and VRAM have? I knew that GPU’s required more BAR space but it relies on memory size?

So if a GPU lets you access all of its VRAM at once, then that’s the bar space rounded, most consumer stuff is 256MB of bar space unless it’s resizable bar compatible then it lets you access all of it simultaneously

And it sounds so a 12GB card will use 16GB where a 8GB will use 8GB of bar space

I’m still a little confused - you may need to ELI5 for me.

I don’t understand the 12GB card will use 16GB but the 8GB card will only use 8.

It rounds to the next doubling
256 MB
512 MB
1 GB
2 GB
4 GB
8 GB
16 GB
32 GB

1 Like