NVIDIA Starts Publishing GPU Hardware Documentation To Help Open-Source Drivers
Here's the direct official quote I was emailed from NVIDIA in alerting me to this new effort they are ready to announce:
NVIDIA has released public, freely available (MIT licensed) documentation of portions of its GPU hardware interface. This is a work in progress; not all interfaces have been published.
NVIDIA is releasing this documentation to support open-source development for their GPUs with the Nouveau project being their first known user/project.
This has been a multi-year undertaking that has now been launched on GitHub and the documentation under an MIT license.
The documentation made public at this point primarily covers Maxwell, Pascal, Volta, and Kepler generations of NVIDIA graphics as more is being worked on -- obviously the latest-generation Turing we'd certainly like to see sooner rather than later. When asking about open-source Turing documentation, I hear it's a work-in-progress.
The initial documentation published covers their BIOS tables, device control block, device initialization, security around their Falcon engine, memory clocking/tweaking, shader program headers, power states, and various other bits. While not fully exhaustive documentation, it's a lot more than we have seen out of NVIDIA to date. Generally they have just released random small scraps over the years and this is the first time they are outing their documentation under a unified repository/project/space with more documentation in tow. It goes back to at least 2012 when they said they would release more docs while now it appears they are living up to that promise for helping Nouveau.
Before anyone asks in the forums: unfortunately, no, at this stage it doesn't help with Nouveau's biggest challenge of re-clocking / signed firmware since GTX 900 series making it a real obstruction to be able to re-program the hardware to operate at its effective clock speeds rather than the lower boot clock speeds. When asking NVIDIA about it, they are aware of the situation but no solution to announce right now.
NVIDIA's new home for GPU open-source documentation can be found via NVIDIA/Open-GPU-Doc on GitHub and the HTML view.