rust-for-linux.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/11] gpu: nova-core: Boot GSP to RISC-V active
@ 2025-09-22 11:30 Alistair Popple
  2025-09-22 11:30 ` [PATCH v2 01/10] gpu: nova-core: Set correct DMA mask Alistair Popple
                   ` (9 more replies)
  0 siblings, 10 replies; 70+ messages in thread
From: Alistair Popple @ 2025-09-22 11:30 UTC (permalink / raw)
  To: rust-for-linux, dri-devel, dakr, acourbot
  Cc: Alistair Popple, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo,
	Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl,
	Trevor Gross, David Airlie, Simona Vetter, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, John Hubbard, Joel Fernandes,
	Timur Tabi, linux-kernel, nouveau

Changes since v1:

 - Based on feed back from Alex the GSP command queue logic was reworked
   extensively. This involved creating a new data struct (DmaGspMem) to
   manage the shared memory areas between CPU and GSP.

 - This data structure helps ensure the safety constraints are meet when
   the CPU is reading/writing the shared memory queues.

 - Several other minor comments were addressed, as noted in the individual
   patches.

This series builds on top of Alex's series[1], most of which has been
merged into drm-rust-next, to continue initialising the GSP into a state
where it becomes active and it starts communicating with the host. A tree
including these patches with the prerequisite patches is available at [2].

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 in patch 6. Admittedly this patch is rather large - if necessary
it could be split into send and receive patches if people prefer.

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/20250911-nova_firmware-v5-0-5a8a33bddca1@nvidia.com/
[2] - https://github.com/apopple-nvidia/linux/tree/nova-core-for-upstream-v2

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

Alistair Popple (8):
  rust: Add several miscellaneous PCI helpers
  gpu: nova-core: Set correct DMA mask
  gpu: nova-core: Create initial Gsp
  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
  nova-core: gsp: Boot GSP

Joel Fernandes (3):
  gpu: nova-core: Add a slice-buffer (sbuffer) datastructure
  nova-core: falcon: Add support to check if RISC-V is active
  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/gsp.rs         |   3 +-
 drivers/gpu/nova-core/firmware/riscv.rs       |   9 +-
 drivers/gpu/nova-core/gpu.rs                  |   2 +-
 drivers/gpu/nova-core/gsp.rs                  | 119 +++-
 drivers/gpu/nova-core/gsp/boot.rs             |  69 ++-
 drivers/gpu/nova-core/gsp/cmdq.rs             | 430 +++++++++++++
 drivers/gpu/nova-core/gsp/commands.rs         | 140 +++++
 drivers/gpu/nova-core/gsp/fw.rs               | 255 +++++++-
 .../gpu/nova-core/gsp/fw/r570_144/bindings.rs | 577 ++++++++++++++++++
 drivers/gpu/nova-core/nova_core.rs            |   1 +
 drivers/gpu/nova-core/regs.rs                 |  15 +
 drivers/gpu/nova-core/sbuffer.rs              | 188 ++++++
 rust/helpers/pci.c                            |  10 +
 rust/kernel/pci.rs                            |  36 ++
 17 files changed, 1857 insertions(+), 22 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.50.1


^ permalink raw reply	[flat|nested] 70+ messages in thread

end of thread, other threads:[~2025-10-01  1:31 UTC | newest]

Thread overview: 70+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-22 11:30 [PATCH v2 00/11] gpu: nova-core: Boot GSP to RISC-V active Alistair Popple
2025-09-22 11:30 ` [PATCH v2 01/10] gpu: nova-core: Set correct DMA mask Alistair Popple
2025-09-22 15:25   ` Boqun Feng
2025-09-22 16:08   ` Danilo Krummrich
2025-09-23  2:16     ` John Hubbard
2025-09-23  4:29       ` Alistair Popple
2025-09-26 12:00         ` Danilo Krummrich
2025-09-29  0:19           ` Alistair Popple
2025-09-29  7:06             ` Danilo Krummrich
2025-09-29  7:39               ` Alistair Popple
2025-09-29 12:49                 ` Danilo Krummrich
2025-10-01  1:31                   ` [PATCH v2 01/10] gpu: nova-core: Set correct DMA mask^[ Alistair Popple
2025-09-24 19:43   ` [PATCH v2 01/10] gpu: nova-core: Set correct DMA mask Lyude Paul
2025-09-22 11:30 ` [PATCH v2 02/10] gpu: nova-core: Create initial Gsp Alistair Popple
2025-09-23 14:20   ` Alexandre Courbot
2025-09-24 20:13   ` Lyude Paul
2025-09-24 20:50     ` John Hubbard
2025-09-24 21:07       ` Lyude Paul
2025-09-24 21:15         ` John Hubbard
2025-09-22 11:30 ` [PATCH v2 03/10] gpu: nova-core: gsp: Create wpr metadata Alistair Popple
2025-09-24 20:24   ` Lyude Paul
2025-09-26  1:24     ` Alexandre Courbot
2025-09-29  0:29       ` Alistair Popple
2025-09-29 14:54         ` Alexandre Courbot
2025-09-26  1:24   ` Alexandre Courbot
2025-09-29  0:38     ` Alistair Popple
2025-09-22 11:30 ` [PATCH v2 04/10] gpu: nova-core: Add a slice-buffer (sbuffer) datastructure Alistair Popple
2025-09-24 20:36   ` Lyude Paul
2025-09-29  0:44     ` Alistair Popple
2025-09-22 11:30 ` [PATCH v2 05/10] gpu: nova-core: gsp: Add GSP command queue handling Alistair Popple
2025-09-22 19:16   ` Timur Tabi
2025-09-24 22:03   ` Lyude Paul
2025-09-25  6:32     ` Alistair Popple
2025-09-26  2:20       ` Alexandre Courbot
2025-09-29  1:06         ` Alistair Popple
2025-09-29  7:24           ` Danilo Krummrich
2025-09-26  4:37   ` Alexandre Courbot
2025-09-29  6:19     ` Alistair Popple
2025-09-29 14:34       ` Alexandre Courbot
2025-09-29 14:38         ` Miguel Ojeda
2025-09-29 14:45           ` Alexandre Courbot
2025-09-30 11:41             ` Alistair Popple
2025-09-30 11:58               ` Miguel Ojeda
2025-10-01  0:42                 ` Alistair Popple
2025-09-30  0:36         ` Alistair Popple
2025-09-30 10:33           ` Danilo Krummrich
2025-09-30 13:36           ` Alexandre Courbot
2025-09-22 11:30 ` [PATCH v2 06/10] gpu: nova-core: gsp: Create rmargs Alistair Popple
2025-09-24 22:05   ` Lyude Paul
2025-09-26  7:27   ` Alexandre Courbot
2025-09-29  6:36     ` Alistair Popple
2025-09-29  7:18       ` Danilo Krummrich
2025-09-29  7:49         ` Alistair Popple
2025-09-22 11:30 ` [PATCH v2 07/10] gpu: nova-core: gsp: Create RM registry and sysinfo commands Alistair Popple
2025-09-22 19:10   ` Timur Tabi
2025-09-23  4:40     ` Alistair Popple
2025-09-23  4:46       ` Timur Tabi
2025-09-24 22:11   ` Lyude Paul
2025-09-22 11:30 ` [PATCH v2 08/10] nova-core: falcon: Add support to check if RISC-V is active Alistair Popple
2025-09-22 19:12   ` Timur Tabi
2025-09-23  1:07     ` John Hubbard
2025-09-23  4:23       ` Timur Tabi
2025-09-23  4:42       ` Alistair Popple
2025-09-24 22:12   ` Lyude Paul
2025-09-22 11:30 ` [PATCH v2 09/10] nova-core: falcon: Add support to write firmware version Alistair Popple
2025-09-24 22:14   ` Lyude Paul
2025-09-22 11:30 ` [PATCH v2 10/10] nova-core: gsp: Boot GSP Alistair Popple
2025-09-24 22:15   ` Lyude Paul
2025-09-24 22:24   ` John Hubbard
2025-09-25  3:09   ` Timur Tabi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).