"NOVA-Core" Patches Propose Building New NVIDIA Driver Piece-By-Piece In The Linux Kernel

As a reminder this modern NOVA driver is about providing a successor to Nouveau and an emphasis on being written in the Rust programming language. NOVA also is designed to rely on the NVIDIA GPU System Processor (GSP) for supporting RTX 20 "Turing" GPUs and newer with foregoing older NVIDIA GPUs.
Danilo Krummrich posted on Friday a set of two patches for providing an initial driver stub of the "NOVA-Core" code. Krummrich explains in the patch series:
"nova-core is intended to serve as a common base for nova-drm (the corresponding DRM driver) and the vGPU manager VFIO driver, serving as a hard- and firmware abstraction layer for GSP-based NVIDIA GPUs.
The Nova project, including nova-core and nova-drm, in the long term, is intended to serve as the successor of Nouveau for all GSP-based GPUs.
...
In order to avoid the chicken and egg problem to require a user to upstream Rust abstractions, but at the same time require the Rust abstractions to implement the driver, nova-core kicks off as a driver stub and is subsequently developed upstream."
This nova-core patch series follows more Rust platform and PCI abstractions being upstreamed for Linux 6.14 and beginning to make it more suitable for actual Rust hardware drivers in the upstream kernel.
The Kconfig option on the proposed patch series makes it very clear the experimental/early state of NOVA-Core:
"Choose this if you want to build the Nova Core driver for Nvidia GSP-based GPUs.
This driver is work in progress and may not be functional."
In its early stage form, the nova-core driver is less than 300 lines of new code... Again, not a functioning driver yet but just largely stubbing out functions and laying the base for building it up moving forward.
We'll see if there's enough interest in getting the code into the mainline kernel in the next cycle or if it's still going to be a further drawn out process before beginning to see bits of NOVA land upstream.
18 Comments