NVIDIA Pushes 62MB Of GSP Binary Firmware Blobs Into Linux-Firmware.Git

Written by Michael Larabel in NVIDIA on 8 November 2023 at 07:35 PM EST. 134 Comments
NVIDIA
As mentioned last week, merged for the Linux 6.7 kernel is NVIDIA GSP firmware support in the Nouveau driver so that these NVIDIA firmware blobs can handle hardware initialization and power management related tasks. This support is optional right now for the GeForce RTX 20 / RTX 30 series hardware with Nouveau but necessary if wanting better performance via re-clocking the GPUs. The GSP firmware is a mandatory requirement for Nouveau with the NVIDIA RTX 40 GPUs and moving forward.

Nouveau adopting NVIDIA GPU System Processor (GSP) support eases the driver's responsibilities as it's left up to this co-processor and firmware binaries to handle various GPU management tasks in the same way NVIDIA's proprietary driver is utilizing the GSP. Besides the Nouveau DRM kernel driver adaptations to use the GSP, it also depends upon the firmware binaries being present on the system. Merged today to Linux-Firmware.Git is the initial dump of these firmware files.

NVIDIA GSP firmware size


With the GSP firmware support for Turing, Ada, and Ampere, this amounts to 62MB of new firmware blobs being added to the Linux-Firmware.Git tree. These firmware blobs aren't petite but quite large. Making matters worse is there is no stable ABI at this time for the GSP firmware, so with new versions of the NVIDIA driver come revised firmware. At this point in time the Nouveau driver is targeting the NVIDIA R535 firmware state but eventually they'll need to move to a newer version for newer hardware support and/or features, at which point they'll need to upload these new binaries separately due to the unstable ABI. Thus further inflating the linux-firmware.git repository.

Not only is it extra baggage for linux-firmware.git, but also so for the Linux distributions in turn shipping the linux-firmware packages to users. When it comes to then bundling the firmware files into the initramfs, those too will go up in size. Red Hat has been working on improvements in this area to avoid over-inflating the boot partition and firmware bloat for systems not using NVIDIA GPUs or not of a specific family/version.

NVIDIA GSP firmware bloat


NVIDIA's commit adding these GSP firmware binaries explains:
These firmware images are required to provide GSP offloading support on Turing (TU10x) and later GPUs.

The GPU System Processor is a RISC-V coprocessor that is used to offload GPU initialization and management tasks. The Nvidia proprietary driver (aka Resource Manager or RM) is split between a host CPU portion (CPU-RM) and the GSP portion (GSP-RM).

The Nouveau driver can also load, initialize, and use GSP-RM for similar purposes, and that is why these binary images are included.

The gsp-xxx.yy.zz.bin files contain GSP-RM itself and are extracted from the Nvidia proprietary driver ".run" package.

The other binary images are support boot loaders that are extracted from Nvidia's "OpenRM" git repository at https://github.com/NVIDIA/open-gpu-kernel-modules using the extract-firmware-nouveau.py script.

For some size reference, the linux-firmware.git/amdgpu folder amounts to 80MB of firmware files... For all of the GPU firmware files going back to pre-GCN GPUs from a decade ago up through the very latest consumer/workstation GPUs and Instinct accelerators. The GSP firmware binaries alone meanwhile are 62MB just for RTX 20/30/40 series while the other signed NVIDIA firmware files in the tree add another few megabytes.

Now onto benchmarking this new Nouveau support with Linux 6.7 to see how much it improves the open-source situation for RTX 20/30 series hardware as well as the initial RTX 40 GPU support on Nouveau. For those on GPUs prior to RTX 20, this firmware isn't relevant with the GSP only being introduced with RTX 20 (Turing) GPUs.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week