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/[email protected]

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

Reply via email to