]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
gpu: nova-core: firmware: process and prepare the GSP firmware
authorAlexandre Courbot <acourbot@nvidia.com>
Sat, 13 Sep 2025 14:12:20 +0000 (23:12 +0900)
committerAlexandre Courbot <acourbot@nvidia.com>
Sat, 13 Sep 2025 14:17:38 +0000 (23:17 +0900)
commita841614e607c9e232dd56ec726ba63d2750025a2
tree28880d1f69d2d595cfd4a5cbbb76001b9f8ec2b2
parent3e5c9681bf86461d26e9db85eeb9b8cbaa256e6a
gpu: nova-core: firmware: process and prepare the GSP firmware

The GSP firmware is a binary blob that is verified, loaded, and run by
the GSP bootloader. Its presentation is a bit peculiar as the GSP
bootloader expects to be given a DMA address to a 3-levels page table
mapping the GSP firmware at address 0 of its own address space.

Prepare such a structure containing the DMA-mapped firmware as well as
the DMA-mapped page tables, and a way to obtain the DMA handle of the
level 0 page table.

Then, move the GSP firmware instance from the `Firmware` struct to the
`start_gsp` method since it doesn't need to be kept after the GSP is
booted.

As we are performing the required ELF section parsing and radix3 page
table building, remove these items from the TODO file.

Acked-by: Danilo Krummrich <dakr@kernel.org>
Link: https://lore.kernel.org/r/20250913-nova_firmware-v6-7-9007079548b0@nvidia.com
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Documentation/gpu/nova/core/todo.rst
drivers/gpu/nova-core/firmware.rs
drivers/gpu/nova-core/firmware/gsp.rs [new file with mode: 0644]
drivers/gpu/nova-core/gsp.rs
drivers/gpu/nova-core/gsp/boot.rs