NVIDIA Starts Supplying Open-Source Hardware Reference Headers

Written by Michael Larabel in NVIDIA on 24 June 2015 at 03:00 PM EDT. 35 Comments
There's another step forward today in NVIDIA's open-source/Linux hardware support! NVIDIA will begin supplying hardware reference headers for the Nouveau DRM driver.

While NVIDIA right now is the primary choice for Linux gamers and those willing to use proprietary hardware drivers, the same cannot be said about those that are strict into using fully open-source code on their systems. The NVIDIA open-source support has lagged behind Intel and AMD on Linux with NVIDIA not officially supporting the community-based, mostly-reverse-engineered Nouveau driver. The only exception so far has been for the NVIDIA Tegra hardware where they actively have been working on the Tegra K1 (and newer) graphics driver support for the open-source driver.

In the past NVIDIA maintained a neutral stance against Nouveau while somewhat recently they have been supplying some recent hardware samples to Nouveau developers, a little bit of public documentation, and NVIDIA answering some questions for Nouveau developers. Their latest step in this open-source friendly path is beginning to push hardware reference headers into the Nouveau driver.

On top of that, there's better news that -- currently for Tegra -- their system software team has begun aligning their new-chip development efforts with Nouveau. Ken Adams of NVIDIA explained, "In particular we would like to arrive
at a place where the Nouveau kernel driver code base is our primary development environment."

In order to drive Nouveau as NVIDIA's primary development environment for Tegra, they are looking at adding "official" hardware reference headers to Nouveau. Ken explained, " The headers are derived from the information we use internally.
I have arranged the definitions such that the similarities and differences between GPUs is made explicit. I am happy to explain the rationale for any design choices and since I wrote the generator I am able to tweak them in almost any way the community prefers."

So far he has been cleared to provide the programming headers for the GK20A and GM20B. For those concerned this is just an item for driving up future Tegra sales, Ken added, "over the long-term I'm confident any information we need to fill-in functionality >= NV50/G80 will be made public eventually. We just need to go through the internal steps necessary to make that happen." It's just like Intel and AMD with legal/IP review being time consuming.

These header files should help Nouveau developers better understand the purpose of particular registers, etc, when enabling support for the hardware via this open-source driver. Glancing at one of the new header files, they aren't obfuscated like in the past -- many years ago with the former xf86-video-nv driver that turned into being an obfuscated mess.

Ken Adams ended his announcement with, "Once we're happy with the placement and organization of these headers and accessors, I've been given the freedom (i.e. time and space) to follow through and help make Nouveau our go-to chip development kernel driver."

Hopefully NVIDIA's next step in further enabling Nouveau will be supplying the GTX 900 Maxwell firmware files needed so that the reverse-engineered support for these newest GPUs will be able to take advantage of open-source 3D acceleration.
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