Hello!
I have a Framework 13 laptop, it has two memory allocation settings for the iGPU:
UMA_AUTO which sets it to 512MB
UMA_GAME_OPTIMIZED which sets it to 4GB
I would like to set the vram above 4GB so I can run OpenCL programs. Happy for any assistance or tips about how to go about this.
There’s a couple exposed EFI variables that can be set with efivar, but I either don’t know what they do or they don’t do anything.
One is UmaCarveOutDefault which sounds promising, and is initially set to a value of 0x02. I tried modifying it to a few different values, but it didn’t seem to have an effect.
Looking at the AmdNbioDxe file, it describes it as “Default UMA Carve Out Mode from EFI Variable” so I’m not sure if this sets a size or some other setting.
Besides that, when I switch between UMA_AUTO and UMA_GAME_OPTIMIZED, a single byte changes in one of the variables, which was with the PBS or CBS, which was a giant variable. The byte is set to 0x02 for UMA_AUTO and 0x03 for UMA_GAME_OPTIMIZED. Setting it to anything higher than 0x03 doesn’t seem to have an effect (other than possible defaulting back to UMA_AUTO setting) and if I go into the bios an error message will pop up stating
“Question value mismatch with Option value!
(iGPU Configuration: mismatch value is 5.)” – (or whatever value I overwrote the pbs setting with)
I’m not sure if there’s an easy way to increase the VRAM size beyond 4GB using just the efivars, and not sure really where to start looking to patch the bios itself to modify firmware size.
The UniversalAmdFormBrowser doesn’t seem to work for this laptop.
The bios images are available here:
https://fwupd.org/lvfs/devices/work.frame.Laptop.Ryzen7040.BIOS.firmware