rust-for-linux.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/31] gpu: nova-core: firmware: Hopper/Blackwell support
@ 2025-12-03  5:58 John Hubbard
  2025-12-03  5:58 ` [PATCH 01/31] gpu: nova-core: print FB sizes, along with ranges John Hubbard
                   ` (30 more replies)
  0 siblings, 31 replies; 53+ messages in thread
From: John Hubbard @ 2025-12-03  5:58 UTC (permalink / raw)
  To: Danilo Krummrich
  Cc: Alexandre Courbot, Joel Fernandes, Timur Tabi, Alistair Popple,
	Edwin Peer, Zhi Wang, David Airlie, Simona Vetter, Bjorn Helgaas,
	Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo,
	Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl,
	Trevor Gross, nouveau, rust-for-linux, LKML, John Hubbard

Hi,

This series adds firmware support for Hopper and Blackwell GPUs. By
that I mean: Hopper and Blackwell can now get just as far as Ampere and
Ada do: they can receive a GET_GSP_STATIC_INFO message from the GPU's
GSP firmware, and print the resulting GPU marketing name to dmesg.

Having made that claim, note that I've only actually tested the new
functionality on a single Blackwell GPU, so far: GB202. For Ampere, I've
tested on GA104, and it still works as before.

The doctests are all passing.

This is based on today's drm-rust-next. For reviewer convenience, there
is also a git branch that has this series applied:

    https://github.com/johnhubbard/linux/tree/nova-core-blackwell-complete-v0

Note: I've merged in the earlier "[PATCH v2 0/5] gpu: nova-core:
Hopper/Blackwell prerequisites" [1], because it is no longer useful by
itself. That makes for a large series, but now it is entirely
self-contained, so it's easy to apply.

[1] https://lore.kernel.org/20251126013936.650678-1-jhubbard@nvidia.com

John Hubbard (31):
  gpu: nova-core: print FB sizes, along with ranges
  gpu: nova-core: add FbRange.len() and use it in boot.rs
  gpu: nova-core: Hopper/Blackwell: basic GPU identification
  nova-core: factor .fwsignature* selection into a new
    get_gsp_sigs_section()
  gpu: nova-core: use GPU Architecture to simplify HAL selections
  gpu: nova-core: apply the one "use" item per line policy to
    commands.rs
  gpu: nova-core: set DMA mask width based on GPU architecture
  gpu: nova-core: move firmware image parsing code to firmware.rs
  gpu: nova-core: factor out a section_name_eq() function
  gpu: nova-core: don't assume 64-bit firmware images
  gpu: nova-core: add support for 32-bit firmware images
  gpu: nova-core: add auto-detection of 32-bit, 64-bit firmware images
  gpu: nova-core: Hopper/Blackwell: add FMC firmware image, in support
    of FSP
  gpu: nova-core: Hopper/Blackwell: add FSP falcon engine stub
  gpu: nova-core: Hopper/Blackwell: add FSP falcon EMEM operations
  gpu: nova-core: Hopper/Blackwell: add FSP message infrastructure
  gpu: nova-core: Hopper/Blackwell: calculate reserved FB heap size
  gpu: nova-core: Hopper/Blackwell: add needs_large_reserved_mem()
  gpu: nova-core: Hopper/Blackwell: add FSP secure boot completion
    waiting
  gpu: nova-core: Hopper/Blackwell: add FSP message structures
  gpu: nova-core: Hopper/Blackwell: add FMC signature extraction
  gpu: nova-core: Hopper/Blackwell: add FSP send/receive messaging
  gpu: nova-core: Hopper/Blackwell: add FSP Chain of Trust boot
  gpu: nova-core: Hopper/Blackwell: larger non-WPR heap
  gpu: nova-core: Hopper/Blackwell: larger WPR2 (GSP) heap
  gpu: nova-core: refactor SEC2 booter loading into run_booter() helper
  gpu: nova-core: Hopper/Blackwell: skip GFW boot waiting
  gpu: nova-core: Hopper/Blackwell: add GSP lockdown release polling
  gpu: nova-core: Hopper/Blackwell: add FSP Chain of Trust boot path
  gpu: nova-core: Hopper/Blackwell: new location for PCI config mirror
  gpu: nova-core: clarify the GPU firmware boot steps

 drivers/gpu/nova-core/driver.rs          |  33 +-
 drivers/gpu/nova-core/falcon.rs          |   1 +
 drivers/gpu/nova-core/falcon/fsp.rs      | 167 ++++++
 drivers/gpu/nova-core/falcon/hal.rs      |  19 +-
 drivers/gpu/nova-core/fb.rs              | 101 +++-
 drivers/gpu/nova-core/fb/hal.rs          |  18 +-
 drivers/gpu/nova-core/firmware.rs        | 193 +++++++
 drivers/gpu/nova-core/firmware/fsp.rs    |  42 ++
 drivers/gpu/nova-core/firmware/gsp.rs    | 128 ++---
 drivers/gpu/nova-core/fsp.rs             | 617 +++++++++++++++++++++++
 drivers/gpu/nova-core/gpu.rs             |  64 ++-
 drivers/gpu/nova-core/gsp/boot.rs        | 342 ++++++++++---
 drivers/gpu/nova-core/gsp/commands.rs    |   8 +-
 drivers/gpu/nova-core/gsp/fw.rs          |  55 +-
 drivers/gpu/nova-core/gsp/fw/commands.rs |  32 +-
 drivers/gpu/nova-core/nova_core.rs       |   1 +
 drivers/gpu/nova-core/num.rs             |  10 +
 drivers/gpu/nova-core/regs.rs            |  59 +++
 18 files changed, 1642 insertions(+), 248 deletions(-)
 create mode 100644 drivers/gpu/nova-core/falcon/fsp.rs
 create mode 100644 drivers/gpu/nova-core/firmware/fsp.rs
 create mode 100644 drivers/gpu/nova-core/fsp.rs


base-commit: 57dc2ea0b7bdb828c5d966d9135c28fe854933a4
-- 
2.52.0


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

end of thread, other threads:[~2025-12-08  6:09 UTC | newest]

Thread overview: 53+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-03  5:58 [PATCH 00/31] gpu: nova-core: firmware: Hopper/Blackwell support John Hubbard
2025-12-03  5:58 ` [PATCH 01/31] gpu: nova-core: print FB sizes, along with ranges John Hubbard
2025-12-03 19:35   ` Timur Tabi
2025-12-04  7:27     ` John Hubbard
2025-12-03  5:58 ` [PATCH 02/31] gpu: nova-core: add FbRange.len() and use it in boot.rs John Hubbard
2025-12-03  5:58 ` [PATCH 03/31] gpu: nova-core: Hopper/Blackwell: basic GPU identification John Hubbard
2025-12-03  5:58 ` [PATCH 04/31] nova-core: factor .fwsignature* selection into a new get_gsp_sigs_section() John Hubbard
2025-12-03  5:58 ` [PATCH 05/31] gpu: nova-core: use GPU Architecture to simplify HAL selections John Hubbard
2025-12-03 19:38   ` Timur Tabi
2025-12-04  7:28     ` John Hubbard
2025-12-03  5:58 ` [PATCH 06/31] gpu: nova-core: apply the one "use" item per line policy to commands.rs John Hubbard
2025-12-03  5:58 ` [PATCH 07/31] gpu: nova-core: set DMA mask width based on GPU architecture John Hubbard
2025-12-03  5:59 ` [PATCH 08/31] gpu: nova-core: move firmware image parsing code to firmware.rs John Hubbard
2025-12-03  5:59 ` [PATCH 09/31] gpu: nova-core: factor out a section_name_eq() function John Hubbard
2025-12-03  5:59 ` [PATCH 10/31] gpu: nova-core: don't assume 64-bit firmware images John Hubbard
2025-12-03  5:59 ` [PATCH 11/31] gpu: nova-core: add support for 32-bit " John Hubbard
2025-12-03  5:59 ` [PATCH 12/31] gpu: nova-core: add auto-detection of 32-bit, 64-bit " John Hubbard
2025-12-03  5:59 ` [PATCH 13/31] gpu: nova-core: Hopper/Blackwell: add FMC firmware image, in support of FSP John Hubbard
2025-12-03  5:59 ` [PATCH 14/31] gpu: nova-core: Hopper/Blackwell: add FSP falcon engine stub John Hubbard
2025-12-03  5:59 ` [PATCH 15/31] gpu: nova-core: Hopper/Blackwell: add FSP falcon EMEM operations John Hubbard
2025-12-03  6:04   ` Timur Tabi
2025-12-03  6:07     ` John Hubbard
2025-12-03  5:59 ` [PATCH 16/31] gpu: nova-core: Hopper/Blackwell: add FSP message infrastructure John Hubbard
2025-12-05 16:47   ` Joel Fernandes
2025-12-03  5:59 ` [PATCH 17/31] gpu: nova-core: Hopper/Blackwell: calculate reserved FB heap size John Hubbard
2025-12-03 20:48   ` Timur Tabi
2025-12-04  7:34     ` John Hubbard
2025-12-03  5:59 ` [PATCH 18/31] gpu: nova-core: Hopper/Blackwell: add needs_large_reserved_mem() John Hubbard
2025-12-03 20:51   ` Timur Tabi
2025-12-04  7:36     ` John Hubbard
2025-12-03  5:59 ` [PATCH 19/31] gpu: nova-core: Hopper/Blackwell: add FSP secure boot completion waiting John Hubbard
2025-12-03  5:59 ` [PATCH 20/31] gpu: nova-core: Hopper/Blackwell: add FSP message structures John Hubbard
2025-12-03  5:59 ` [PATCH 21/31] gpu: nova-core: Hopper/Blackwell: add FMC signature extraction John Hubbard
2025-12-03 15:45   ` Joel Fernandes
2025-12-04  7:55     ` John Hubbard
2025-12-03  5:59 ` [PATCH 22/31] gpu: nova-core: Hopper/Blackwell: add FSP send/receive messaging John Hubbard
2025-12-03  5:59 ` [PATCH 23/31] gpu: nova-core: Hopper/Blackwell: add FSP Chain of Trust boot John Hubbard
2025-12-05 17:15   ` Joel Fernandes
2025-12-08  6:00     ` John Hubbard
2025-12-06 21:36   ` Joel Fernandes
2025-12-08  6:09     ` John Hubbard
2025-12-03  5:59 ` [PATCH 24/31] gpu: nova-core: Hopper/Blackwell: larger non-WPR heap John Hubbard
2025-12-03  5:59 ` [PATCH 25/31] gpu: nova-core: Hopper/Blackwell: larger WPR2 (GSP) heap John Hubbard
2025-12-03  5:59 ` [PATCH 26/31] gpu: nova-core: refactor SEC2 booter loading into run_booter() helper John Hubbard
2025-12-03 20:53   ` Timur Tabi
2025-12-04  7:37     ` John Hubbard
2025-12-03  5:59 ` [PATCH 27/31] gpu: nova-core: Hopper/Blackwell: skip GFW boot waiting John Hubbard
2025-12-03  5:59 ` [PATCH 28/31] gpu: nova-core: Hopper/Blackwell: add GSP lockdown release polling John Hubbard
2025-12-03 20:59   ` Timur Tabi
2025-12-04  7:49     ` John Hubbard
2025-12-03  5:59 ` [PATCH 29/31] gpu: nova-core: Hopper/Blackwell: add FSP Chain of Trust boot path John Hubbard
2025-12-03  5:59 ` [PATCH 30/31] gpu: nova-core: Hopper/Blackwell: new location for PCI config mirror John Hubbard
2025-12-03  5:59 ` [PATCH 31/31] gpu: nova-core: clarify the GPU firmware boot steps John Hubbard

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).