On 12/17/25 7:29 PM, Timur Tabi wrote: > 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.
Hi Timur, Are you also working on rebasing this onto drm-rust-next? There are some changes and conflicts to work through, but I'm hoping that we are very close to getting this ready for merging, so that's the next step. thanks, -- John Hubbard > > That 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. > > Changes from v3: > 1. Fixed Rust formatting issues > 2. Misc style changes as suggested by Alex > 3. Merged regs.rs changes into commits that use them > 4. Used Zeroable::zeroed() > > 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 Falcon HAL method supports_dma() > gpu: nova-core: add FalconUCodeDescV2 support > gpu: nova-core: align LibosMemoryRegionInitArgument size to page size > gpu: nova-core: add PIO support for loading firmware images > > drivers/gpu/nova-core/falcon.rs | 246 +++++++++++++++++----- > drivers/gpu/nova-core/falcon/hal.rs | 17 ++ > drivers/gpu/nova-core/falcon/hal/ga102.rs | 47 +++++ > drivers/gpu/nova-core/falcon/hal/tu102.rs | 77 +++++++ > drivers/gpu/nova-core/firmware.rs | 181 +++++++++++++++- > drivers/gpu/nova-core/firmware/booter.rs | 43 +++- > drivers/gpu/nova-core/firmware/fwsec.rs | 215 ++++++++++++++++--- > drivers/gpu/nova-core/firmware/gsp.rs | 4 +- > drivers/gpu/nova-core/gsp/boot.rs | 10 +- > drivers/gpu/nova-core/gsp/fw.rs | 24 ++- > drivers/gpu/nova-core/regs.rs | 53 +++++ > drivers/gpu/nova-core/vbios.rs | 75 ++++--- > 12 files changed, 864 insertions(+), 128 deletions(-) > create mode 100644 drivers/gpu/nova-core/falcon/hal/tu102.rs > > > base-commit: 60c7398bded2e11f0db40a409a241b8be5910ee2 > prerequisite-patch-id: a3e23917ec535263604af95194422382f14c2f21
