NVIDIA Provides A Surprise For Pascal GPU Owners Wanting Open-Source

Written by Michael Larabel in NVIDIA on 11 July 2016 at 05:19 PM EDT. 97 Comments
NVIDIA
After it took NVIDIA until earlier this year to release the signed firmware for the GeForce GTX 900 "Maxwell" GPUs, I expected -- and based upon what I heard -- that it could be months before seeing the firmware for GeForce GTX 1000 "Pascal" GPUs in order to enable hardware acceleration with these latest-generation GPUs. Thus it's a huge surprise today to see NVIDIA already making public their Pascal GP100 firmware images!

Hitting this afternoon in linux-firmware Git are the GP100 firmware files! There are 15 binary-only firmware blobs now part of the linux-firmware tree needed for initializing GP100 hardware. The GP100 blobs are named (for providing some reference) bl, ucode_load, ucode_unload, fecs_bl, fecs_data, fecs_inst, fecs_sig, gpccs_bl, gpccs_data, gpccs_inst, gpccs_sig, sw_bundle_init, sw_ctx, sw_method_init, and sw_nonctx. The largest of these blobs are 20955 bytes.

It shouldn't take long at all for Nouveau developers to bring up basic hardware acceleration support with the Nouveau DRM driver and NVC0 Gallium3D driver... When NVIDIA released the Maxwell firmware in February, within one day Nouveau developers had 3D games working with the driver stack and were quick to mainline the code. Hopefully it will be much the same manner for this Pascal support.


But before getting too excited, this firmware sadly doesn't do anything to help out the re-clocking situation. While it should be possible to soon get OpenGL games going on Pascal with Nouveau, it will be at the clock frequencies programmed by the video card at boot time, which are usually very low. NVIDIA GTX 900 cards on Maxwell don't yet have re-clocking either and is likely to be a very drawn out process before we get faster Maxwell/Pascal performance on Nouveau and may be reliant on NVIDIA providing additional power management related firmware blobs.

Just days ago Ben Skeggs did post initial open-source Nouveau patches for Pascal, but that's just in the context of mode-setting. That work at least will be coming for Linux 4.8 in order to provide a better display experience until getting around to installing the proprietary Linux driver.

For those living in a cave, since Maxwell the NVIDIA GPUs have required signed firmware blobs for initializing the hardware for acceleration. With Kepler and prior generations of hardware, the Nouveau developers through reverse-engineering were able to come up with their own way to basically self-generate the needed steps for initializing the hardware without any signed protections getting in the way. While you may be quick to jump on it for being anti-FLOSS, going back a number of generations AMD hardware has also required binary-only firmware blobs. Intel has also begun making use of binary-only firmware blobs (i.e. GuC) on their latest hardware too. Separate from the Nouveau firmware issue has been the whole re-clocking / power management debacle, which has been a pain to implement due to the increasing complexity of GPUs.

Update: I've now been able to confirm that this firmware only covers the GP100 proper and not the GP100 series. Thus, unfortunately, the GP104/GP106 do not yet have publicly signed firmware.
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