On 1/21/2026 6:52 PM, 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.
>
> Note 2: This patch set does not include the upcoming refactor for
> handling the Generic Bootloader.
>
> 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 v6:
> 1. Miscellaneous refactoring to FalconUCodeDescV2 code, based on review
> feedback, to make the code more consistent.
> 2. Added NV_PFALCON_FALCON_ENGINE::reset_engine()
> 3. Removed `port` parameter from pio_wr_bytes and just hard-coded it to 0.
> 4. Removed supports_dma patch
> 5. Renamed pr_wr_bytes to pr_wr_slice
> 6. Simplified NV_PFALCON_FALCON_DMEMD loop
> 7. Misc minor code improvements based on review feedback.
>
> Alexandre Courbot (1):
> gpu: nova-core: align LibosMemoryRegionInitArgument size to page size
>
> Timur Tabi (11):
> 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
>
> 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 | 178 +++-
> drivers/gpu/nova-core/firmware/gsp.rs | 6 +-
> 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 +-
> drivers/gpu/nova-core/vbios.rs.orig | 1105 +++++++++++++++++++++
Extra file? :)
--
Joel Fernandes