On Thu Jan 22, 2026 at 10:28 PM GMT, Timur Tabi wrote:
> Note: This patchset requires "[PATCH v3 2/7] rust: io: always inline
> functions using build_assert with arguments" in order to compile
> with CLIPPY.
>
> This patch set adds basic support for pre-booting GSP-RM
> on Turing.
>
> There is also partial support for GA100, but it's currently not
> fully implemented.  GA100 is considered experimental in Nouveau,
> and so it hasn't been tested with NovaCore either.
>
> The latest linux-firmware.git is required because it contains the
> Generic Bootloader image that has not yet been propogated to
> distros.
>
> Summary of changes:
>
> 1. Introduce non-secure IMEM support.  For GA102 and later, only secure IMEM
> is used.
> 2. Because of non-secure IMEM, Turing booter firmware images need some of
> the headers parsed differently for stuff like the load target address.
> 3. Add support the tu10x firmware signature section in the ELF image.
> 4. Add several new registers used only on Turing.
> 5. Some functions that were considered generic Falcon operations are
> actually different on Turing vs GA102+, so they are moved to the HAL.
> 6. The FRTS FWSEC firmware in VBIOS uses a different version of the
> descriptor header.
> 7. On Turing/GA100 LIBOS args struct needs to have its 'size' field
> aligned to 4KB.  So pad the struct to make it 4K.
> 8. Turing Falcons do not support DMA, so PIO is used to copy images
> into IMEM/DMEM.
> 9. Load the Generic Bootloader from disk and use it to boot FWSEC on
> Turing and GA100.
>
> Changes from v7:
> 1. Fix unused warnings in some commits that introduce an identifier
> but don't actually use it until a later commit.
> 2. Split out the Generic Bootloader code from the PIO code into a
> separate patch.
> 3. Removed accidentally included vbios.rs.orig

I've checked the Rust language aspect of the series and on the internal API
design and it looks good. I haven't checked that the actually hardware
operations are functioning as intended, though.

Danilo/Alex, feel free to convert this to an Reviewed-by or Acked-by, whichever
you see fit.

Best,
Gary

>
> Alexandre Courbot (1):
>   gpu: nova-core: align LibosMemoryRegionInitArgument size to page size
>
> Timur Tabi (12):
>   gpu: nova-core: rename Imem to ImemSecure
>   gpu: nova-core: add ImemNonSecure section infrastructure
>   gpu: nova-core: support header parsing on Turing/GA100
>   gpu: nova-core: add support for Turing/GA100 fwsignature
>   gpu: nova-core: add NV_PFALCON_FALCON_DMATRFCMD::with_falcon_mem()
>   gpu: nova-core: move some functions into the HAL
>   gpu: nova-core: Add basic Turing HAL
>   gpu: nova-core: add NV_PFALCON_FALCON_ENGINE::reset_engine()
>   gpu: nova-core: add Falcon HAL method load_method()
>   gpu: nova-core: add FalconUCodeDescV2 support
>   gpu: nova-core: add PIO support for loading firmware images
>   gpu: nova-core: use the Generic Bootloader to boot FWSEC
>
>  drivers/gpu/nova-core/falcon.rs           | 252 +++++++++++++++++-----
>  drivers/gpu/nova-core/falcon/hal.rs       |  26 +++
>  drivers/gpu/nova-core/falcon/hal/ga102.rs |  39 ++++
>  drivers/gpu/nova-core/falcon/hal/tu102.rs |  77 +++++++
>  drivers/gpu/nova-core/firmware.rs         | 203 ++++++++++++++++-
>  drivers/gpu/nova-core/firmware/booter.rs  |  43 +++-
>  drivers/gpu/nova-core/firmware/fwsec.rs   | 180 +++++++++++++---
>  drivers/gpu/nova-core/firmware/gsp.rs     |   9 +-
>  drivers/gpu/nova-core/gsp.rs              |   8 +-
>  drivers/gpu/nova-core/gsp/boot.rs         |   6 +-
>  drivers/gpu/nova-core/gsp/fw.rs           |  14 +-
>  drivers/gpu/nova-core/regs.rs             |  72 ++++++-
>  drivers/gpu/nova-core/vbios.rs            |  64 +++---
>  13 files changed, 863 insertions(+), 130 deletions(-)
>  create mode 100644 drivers/gpu/nova-core/falcon/hal/tu102.rs
>
>
> base-commit: 6ea52b6d8f33ae627f4dcf43b12b6e713a8b9331

Reply via email to