VOOZH about

URL: https://www.phoronix.com/news/Linux-6.17-NOVA-Driver

⇱ Rust-Written NOVA Open-Source NVIDIA Driver Being Further Built Out In Linux 6.17 - Phoronix


👁 Phoronix

Rust-Written NOVA Open-Source NVIDIA Driver Being Further Built Out In Linux 6.17

Written by Michael Larabel in Nouveau on 19 July 2025 at 09:49 AM EDT. 16 Comments
For Linux 6.17 in addition to Intel enabling SR-IOV for Battlemage graphics cards and many other big Intel Xe kernel graphics cards and then more AMD graphics driver features too, the NOVA driver for modern open-source NVIDIA driver support is continuing to be further built out in this next kernel version.

The initial NOVA core driver code was upstreamed back in Linux 6.15 as the skeleton infrastructure for this modern successor to the Nouveau open-source driver. NOVA is written in the Rust programming language and designed for NVIDIA Turing and newer GPUs due to depending upon the NVIDIA GPU System Processor (GSP). With the initial code in place, succeeding kernels continue working on implementing more functionality and will eventually reach the stage of being functional for end-users with the likes of the Mesa NVK driver.

For Linux 6.17 the NOVA code sent out on Friday to DRM-Next still isn't ready for end-users but continues implementing more functionality and simultaneously building out the Rust support for Direct Rendering Manager (DRM) infrastructure. The NOVA code ready for upstreaming in Linux 6.17 includes:
DMA:

- Merge topic/dma-features-2025-06-23 from alloc tree.
- Clarify wording and be consistent in 'coherent' nomenclature.
- Convert the read!() / write!() macros to return a Result.
- Add as_slice() / write() methods in CoherentAllocation.
- Fix doc-comment of dma_handle().
- Expose count() and size() in CoherentAllocation and add the corresponding type invariants.
- Implement CoherentAllocation::dma_handle_with_offset().

nova-core:
- Various register!() macro improvements.
- Custom Sleep / Delay helpers (until the actual abstractions land).
- Add DMA object abstraction.

- VBIOS
- Image parser / iterator.
- PMU table look up in FWSEC.
- FWSEC ucode extraction.

- Register sysmem flush page.

- Falcon
- Generic falcon boot code and HAL (Ampere).
- GSP / SEC2 specific code.

- FWSEC-FRTS
- Compute layout of FRTS region (FbLayout and HAL).
- Load into GSP falcon and execute.

- Add Documentation for VBIOS layout, Devinit process, Fwsec operation and layout, Falcon basics.
- Update and annotate TODO list.
- Add Alexandre Courbot as co-maintainer.

Rust:

- Make ETIMEDOUT error available.
- Add size constants up to SZ_2G.
Alexandre Courbot is the NVIDIA engineer who is now serving as NOVA's co-maintainer as previously covered on Phoronix. And then the code changes are a lot of Rust infrastructure work and other low-level builts for further building out the NOVA driver.

👁 NVIDIA RTX graphics cards


More details on the NOVA changes going to DRM-Next ahead of the Linux 6.17 cycle can be found via this pull request.

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.