[PATCH 00/10] gpu: nova-core: Boot GSP to RISC-V active

Alistair Popple
Wed, 27 Aug 2025 08:19:57 -0000

This series builds on top of Alex's series[1] to continue initialising the
GSP
into a state where it becomes active and it starts communicating with the host.

It includes patches to initialise several important data structures required to
boot the GSP. The biggest change is the implementation of the command/message
circular queue used to establish communication between GSP and host.

This is required to configure and boot the GSP. However this series does not
get the GSP to a fully active state. Instead it gets it to a state where the GSP
sends a message to the host with a sequence of instructions which need running
to get to the active state. A subsequent series will implement processing of
this message and allow the GSP to get to the fully active state.

A full tree including the prerequisites for this patch series is available at
https://github.com/apopple-nvidia/linux/tree/nova-core-for-upstream.

[1] -
https://lore.kernel.org/rust-for-linux/dc18894e-09d3-4088-9be0-22c2070b61f4 at
nvidia.com/T/

To: dri-devel at lists.freedesktop.org
To: Danilo Krummrich <dakr at kernel.org>
To: Alexandre Courbot <acourbot at nvidia.com>
Cc: Miguel Ojeda <ojeda at kernel.org>
Cc: Alex Gaynor <alex.gaynor at gmail.com>
Cc: Boqun Feng <boqun.feng at gmail.com>
Cc: Gary Guo <gary at garyguo.net>
Cc: Bj?rn Roy Baron <bjorn3_gh at protonmail.com>
Cc: Benno Lossin <lossin at kernel.org>
Cc: Andreas Hindborg <a.hindborg at kernel.org>
Cc: Alice Ryhl <aliceryhl at google.com>
Cc: Trevor Gross <tmgross at umich.edu>
Cc: David Airlie <airlied at gmail.com>
Cc: Simona Vetter <simona at ffwll.ch>
Cc: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
Cc: Maxime Ripard <mripard at kernel.org>
Cc: Thomas Zimmermann <tzimmermann at suse.de>
Cc: John Hubbard <jhubbard at nvidia.com>
Cc: Joel Fernandes <joelagnelf at nvidia.com>
Cc: Timur Tabi <ttabi at nvidia.com>
Cc: linux-kernel at vger.kernel.org
Cc: nouveau at lists.freedesktop.org

Alistair Popple (7):
  gpu: nova-core: Set correct DMA mask
  gpu: nova-core: Create initial GspSharedMemObjects
  gpu: nova-core: gsp: Create wpr metadata
  gpu: nova-core: gsp: Add GSP command queue handling
  gpu: nova-core: gsp: Create rmargs
  gpu: nova-core: gsp: Create RM registry and sysinfo commands
  gpu: nova-core: gsp: Boot GSP

Joel Fernandes (3):
  gpu: nova-core: Add a slice-buffer (sbuffer) datastructure
  gpu: nova-core: falcon: Add support to check if RISC-V is active
  gpu: nova-core: falcon: Add support to write firmware version

 drivers/gpu/nova-core/driver.rs               |   8 +-
 drivers/gpu/nova-core/falcon.rs               |  16 +
 drivers/gpu/nova-core/fb.rs                   |   1 -
 drivers/gpu/nova-core/firmware.rs             |   6 +-
 drivers/gpu/nova-core/firmware/gsp.rs         |   1 -
 drivers/gpu/nova-core/firmware/riscv.rs       |   9 +-
 drivers/gpu/nova-core/gpu.rs                  |  60 +-
 drivers/gpu/nova-core/gsp.rs                  | 237 +++++-
 drivers/gpu/nova-core/gsp/cmdq.rs             | 701 ++++++++++++++++++
 drivers/gpu/nova-core/gsp/commands.rs         | 201 +++++
 drivers/gpu/nova-core/nova_core.rs            |   1 +
 drivers/gpu/nova-core/nvfw.rs                 |  59 ++
 .../gpu/nova-core/nvfw/r570_144_bindings.rs   | 501 +++++++++++++
 drivers/gpu/nova-core/regs.rs                 |  15 +
 drivers/gpu/nova-core/sbuffer.rs              | 188 +++++
 15 files changed, 1991 insertions(+), 13 deletions(-)
 create mode 100644 drivers/gpu/nova-core/gsp/cmdq.rs
 create mode 100644 drivers/gpu/nova-core/gsp/commands.rs
 create mode 100644 drivers/gpu/nova-core/sbuffer.rs

--
2.47.2