NVIDIA GPU driver infrastructure
 help / color / mirror / Atom feed
From: Alexandre Courbot <acourbot@nvidia.com>
To: Danilo Krummrich <dakr@kernel.org>,
	Alice Ryhl <aliceryhl@google.com>,
	 David Airlie <airlied@gmail.com>,
	Simona Vetter <simona@ffwll.ch>,  Gary Guo <gary@garyguo.net>
Cc: John Hubbard <jhubbard@nvidia.com>,
	 Alistair Popple <apopple@nvidia.com>,
	Timur Tabi <ttabi@nvidia.com>,
	 Eliot Courtney <ecourtney@nvidia.com>,
	Zhi Wang <zhiw@nvidia.com>,
	 nova-gpu@lists.linux.dev, dri-devel@lists.freedesktop.org,
	 linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org,
	 Alexandre Courbot <acourbot@nvidia.com>
Subject: [PATCH 0/6] gpu: nova-core: consolidate and streamline GSP boot process
Date: Fri, 19 Jun 2026 22:42:15 +0900	[thread overview]
Message-ID: <20260619-nova-bootcontext-v1-0-45193cd0a2e5@nvidia.com> (raw)

The recently introduced `GspBootContext` is useful in at least two
other places:

- As a replacement for the sequencer's `GspSequencerParams`,
- As the main parameter of `Gsp::unload`, for symmetry with `Gsp::boot`.

This symmetry can be further exploited to make `Gsp::boot` and
`Gsp::unload` generic over the exact boot context required for the
current chip. Doing so requires some more preliminary work that goes
beyond this series, but this groundwork is needed regardless.

Another cleanup that can be performed as a consequence is the removal of
the `BootUnloadGuard`. This type is cumbersome as it holds extra
references to the boot context, making it difficult to make some of
these references mutable (as we want to do with the `Falcon`s that
should require exclusive access to load and run firmware). Furthermore,
it is only needed a single time in `Gsp::boot`.

By running the boot process in a local closure, we can catch errors and
call `Gsp::unload` on the unload bundle just as efficiently, and with
less code.

Although the final goal is to enable mutable methods on `Falcon`s and
make the GSP boot context generic, these cleanups stand on their own and
remove quite a bit of code, so I am sending them separately.

This series applies on `drm-rust-next`, and requires [1].

[1] https://lore.kernel.org/all/20260617-boot-vram-v3-0-20b9ec5fe9f2@nvidia.com/

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
---
Alexandre Courbot (6):
      gpu: nova-core: gsp: sequencer: use GspBootContext
      gpu: nova-core: gsp: sequencer: do not store sequence into GspSequencer
      gpu: nova-core: gsp: move boot code into local closure
      gpu: nova-core: gsp: replace BootUnloadGuard with local handler
      gpu: nova-core: gsp: move unload bundle error handling to Gsp::boot
      gpu: nova-core: gsp: make unload take GspBootContext

 drivers/gpu/nova-core/gpu.rs           |  19 ++++-
 drivers/gpu/nova-core/gsp/boot.rs      | 140 ++++++++++++---------------------
 drivers/gpu/nova-core/gsp/hal.rs       |  35 ++++-----
 drivers/gpu/nova-core/gsp/hal/gh100.rs |  59 ++++++--------
 drivers/gpu/nova-core/gsp/hal/tu102.rs | 133 ++++++++++++++-----------------
 drivers/gpu/nova-core/gsp/sequencer.rs |  71 +++++++----------
 6 files changed, 191 insertions(+), 266 deletions(-)
---
base-commit: e655873885063245fd7f49f81cebfdfdef66a59d
change-id: 20260619-nova-bootcontext-401d6107e8fb
prerequisite-message-id: 20260617-boot-vram-v3-0-20b9ec5fe9f2@nvidia.com
prerequisite-patch-id: 3b9948cc78c017fd9edcd51e1a65d0aa741a1b8a
prerequisite-patch-id: e5c8ef9f9fde8bf165f8339da1cc55c7f25ee845
prerequisite-patch-id: e6657ea9ed37ee9a195aae6d87d5f28d4ef2378e

Best regards,
--  
Alexandre Courbot <acourbot@nvidia.com>


             reply	other threads:[~2026-06-19 13:42 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-19 13:42 Alexandre Courbot [this message]
2026-06-19 13:42 ` [PATCH 1/6] gpu: nova-core: gsp: sequencer: use GspBootContext Alexandre Courbot
2026-06-19 13:42 ` [PATCH 2/6] gpu: nova-core: gsp: sequencer: do not store sequence into GspSequencer Alexandre Courbot
2026-06-19 13:42 ` [PATCH 3/6] gpu: nova-core: gsp: move boot code into local closure Alexandre Courbot
2026-06-19 13:42 ` [PATCH 4/6] gpu: nova-core: gsp: replace BootUnloadGuard with local handler Alexandre Courbot
2026-06-19 13:42 ` [PATCH 5/6] gpu: nova-core: gsp: move unload bundle error handling to Gsp::boot Alexandre Courbot
2026-06-19 13:42 ` [PATCH 6/6] gpu: nova-core: gsp: make unload take GspBootContext Alexandre Courbot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260619-nova-bootcontext-v1-0-45193cd0a2e5@nvidia.com \
    --to=acourbot@nvidia.com \
    --cc=airlied@gmail.com \
    --cc=aliceryhl@google.com \
    --cc=apopple@nvidia.com \
    --cc=dakr@kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=ecourtney@nvidia.com \
    --cc=gary@garyguo.net \
    --cc=jhubbard@nvidia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nova-gpu@lists.linux.dev \
    --cc=rust-for-linux@vger.kernel.org \
    --cc=simona@ffwll.ch \
    --cc=ttabi@nvidia.com \
    --cc=zhiw@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox