Video memory configuration

The spec site for the Librem Mini’s CPU says it can support up to 32GB for video memory. How is this controlled with coreboot? Is it pre-set to a fixed value? Does it scale dynamically depending on how much RAM the system has? Is it user configurable (without having to rebuild coreboot)? Or something else?


The Librem Mini uses the integrated graphics of the CPU. Half the RAM of the system will normally be used as VRAM, because there is no GPU with it’s own VRAM. This limitation is set by the OS and not by the BIOS (according to Intel).
The Librem Mini has a maximum of 64 GB of RAM => 32 GB of VRAM.

Edit: Limitation can be set by the BIOS and by the OS


So if I install 64GB of RAM I lose half of that to the GPU? That seems dumb.

This limitation is set by the OS and not by the BIOS (according to Intel).

Where did you find this info? Since it’s set by the OS I assume I can change it?

This is for Windows 10 and I though, that it is not much different under an other OS:

But when I search for “increase VRAM Intel graphics” it seems like, the limit could also be set by the BIOS. So my post was not entirely correct.

I don’t think that you lose a lot of RAM, if you are not running any graphic intensive task. So you can use more than half of the RAM for a CPU intensive workload, but the RAM for graphic intensive workloads is normally limited to half the RAM (as far as I understand it).
Unfortunately, I don’t know how to change this on the Librem Mini.

If you have 64 GB of RAM and never use more than say 2 GB of VRAM, your system will have at least (about) 62 GB of usable RAM at any given time.

Half the RAM isn’t set aside for the GPU and unusable to the system, its simply “available,” meaning the GPU can use it if it needs it and the OS will adjust around it. If you’re not creating Avatar 2, you won’t have anything to worry about.


to expand upon this topic a bit, there are different chunks of system RAM that get allocated for the iGPU: a small fixed amount (8M or so), a pre-allocated chunk (DVMT: 32M-512M), and then a variable, dynamically allocated amount (up to 1/2 system RAM). The latter is what you are referring to, and is typically handled at the OS driver level, not the firmware level, because it’s the same as the rest of the system memory.