In addition to the Nouveau driver set to see NVIDIA Blackwell and Hopper GPU support with the upcoming Linux 6.16 cycle, the modern, Rust-based Nova driver for future open-source NVIDIA GPU support is set to become a bit more full with this next kernel release.
The Rust-written Nova driver was upstreamed in Linux 6.15 but only the very preliminary boilerplate code. The Nova driver currently isn’t useful to those Linux end-users with NVIDIA GPUs but have to continue using either the Nouveau driver or NVIDIA’s packaged Linux graphics driver stack. But eventually this Nova driver will become useful for NVIDIA Turing and newer GPUs with the GPU System Processor (GSP) support.
For Linux 6.16 the Nova driver is being built out a bit more. Danilo Krummrich of Red Hat submitted this pull request with more Nova material for Linux 6.16:
“auxiliary:
– bus abstractions
– implementation for driver registration
– add sample driverdrm:
– implement __drm_dev_alloc()
– DRM core infrastructure Rust abstractions
– device, driver and registration
– DRM IOCTL
– DRM File
– GEM object
– IntoGEMObject rework
– generically implement AlwaysRefCounted through IntoGEMObject
– refactor unsound from_gem_obj() into as_ref()
– refactor into_gem_obj() into as_raw()driver-core:
– merge topic/device-context-2025-04-17 from driver-core tree
– implement Devres::access()
– fix: doctest build under `!CONFIG_PCI`
– accessor for Device::parent()
– fix: conditionally expect `dead_code` for `parent()`
– impl TryFrom<&Device> bus devices (PCI, platform)nova-core:
– remove completed Vec extentions from task list
– register auxiliary device for nova-drm
– derive useful traits for Chipset
– add missing GA100 chipset
– take &Device in Gpu::new()
– infrastructure to generate register definitions
– fix register layout of NV_PMC_BOOT_0
– move Firmware into own (Rust) module
– fix: select AUXILIARY_BUS
nova-drm:
– initial driver skeleton (depends on drm and auxiliary bus abstractions)
– fix: select AUXILIARY_BUSRust (dependencies):
– implement Opaque::zeroed()
– implement Revocable::try_access_with()
– implement Revocable::access()”
The Nova driver still isn’t useful for NVIDIA Linux end-users but the driver is seeing more functionality wired up as well as sorting out new Rust Direct Rendering Manager (DRM) code/dependencies along the way.