cross-posted from: https://lemmy.ml/post/5142305
From: Ben Skeggs
This series adds support for loading and running on top of NVIDIA’s GSP-RM firmware, instead of directly programming large portions of the hardware ourselves.
The implementation is a little crude in places, but the goal of this series is to get (more-or-less) GSP-RM support on par with what we already support on HW. Next steps would be to look at what features GSP-RM enables us to more fully support, and clean up the GSP-RM integration once it’s known what those will require.
Things should be somewhat faster when running on GSP-RM, as it’s able to control GPU clocks, which wasn’t possible for us previously.
SVM support is not available when running on top of GSP-RM at this point, due to GPU fault buffers not being implemented yet. This won’t effect any real use-case, as SVM is experimental at best in nouveau anyway.
Aside from that, things should more or less work as normal.
GSP-RM support is disabled by default for now (except on Ada, where it’s the only option) and can be enabled with nouveau.config=NvGspRm=1.
There’ll likely be some nit-picky bugs to sort through, but I don’t anticipate any huge disasters. I’ve smoke-tested this on a selection of GPUs right back to nv50, testing both HW and GSP paths depending on the GPU, and more thoroughly tested on Turing/Ampere/Ada, both discrete and laptop GPUs.
Firmware from NVIDIA is required to enable this support.
The way to support Nvidia 20x 30x 40x series GPU.
Thanks.
and support it properly, with stuff like reclocking now actually working