I am currently using the FW 13 AMD 7040 series, and with the attached eGPU via USB4 to a Thunderbolt 3 enclosure with a RTX 2070 inside, I would like to ask whether the ReBAR would be able to enable as an option in the BIOS setting? It could bring up more APU’s performance also could potentially make the eGPU perform better.
Or any followable steps to use ReBAR now? Saw this on Reddit but wasn’t sure if this will brick my FW.
I believe there are 2 potential barriers to get ReBar to work with USB4/TB3 eGPUs. And Framework may not be able to do sth. about one of those.
ReBar requires BIOS support yes. Because the PCIe bus needs to be addressed with 64 Bit and then you need the software features in the BIOS to allow runtime changing of PCIe BAR sizes. But modern platforms basically have that. And I believe from what others have dug up in the 12th gen BIOS, the ReBar support is actually in there and probably even enabled as it is required to be the default for desktop platforms.
But here is the other thing:
ReBar like you want it, only has the purpose of mapping all of your GPUs VRAM directly into PCIe Address Space. So that means the GPU in question will expose a memory range as big as its VRAM to the PCIe bus (i.e. multiple GiB).
TB3/USB4 controllers are based on PCIe Switches. Those operate on hierarchical addressing. So the host’s TB3/USB4 controller reserves a certain amount of PCIe address space so that it may distribute that to devices that are later attached. If that reserved address space is too little, then ReBar support alone is worth nothing. Because the full range of memory that you want to make available would not fit behind the TB3/USB4 controller.
So it is relevant which prerequisits are met and which are not. Because I do not know if the current/all TB3/USB4 controllers are ready for that amount of address space. External desktop TB controllers typically reserve like 1.2 GiB for 2 ports total. Which will not fit any GPU with ReBar. Now my 12th gen Framework reserves 64 GiB for some ports, but not all. But older / other TB3/USB4 controllers in eGPUs etc might be more limited and not support address ranges that large or the OS/BIOS might just not reserve enough by default to fit your GPU.
Here a screenshot of 12th gen Framework that shows that for some reason 3 of the 4 ports now actually reserve 64 GiB each. The 4th (461F) actually does not for some weird reason (preliminary checks says it should have 4096 GiB available for PCIe addresses and 512 GiB physical addresses).
And if I for example attach a Goshen Ridge Hub, that only maps ~ 21 GiB of those total 64 GiB to each of its downstream ports, which would no longer be enough for any GPUs with > 16 GiB VRAM.
I would be curious to see what and how address space is reserved for AMDs USB4 PCIe ports in comparison. But discussing whether ReBar is supported by the BIOS or a switch needs to be flipped only makes sense if the TB/USB4 chain can be made to support what ReBar would try to move to.
Edit: I checked, the TB3 controller in my Razer Core X actually gets the full 64 GiB allocated. I do not have good enough screenshots from my previous looks at this, but I could swear this new and previously, each port of my 12th gen only had ~450 MiB available. If my memory is correct, this would most likely be sth. that Windows 11 24H2 changed. Sadly, my ReBar-capable GPU is in my desktop PC and it is too much work to get it out of there just to test if ReBar now actually works.
Edit2: Yes. There was a change and it must be with Windows or drivers that changed recently. Because I found screenshots from April 30th showing only ~450 MiB per USB4 PCIe port reserved, but in the same address range that now contains 64 GiB (i.e. impossible for me to have accidentally missed the larger range that is not shown in the screenshot). And I was running 3.08 BIOS back in January, so that cannot have impacted this.