diff options
author | Joel Fernandes <joelagnelf@nvidia.com> | 2025-06-19 22:24:03 +0900 |
---|---|---|
committer | Danilo Krummrich <dakr@kernel.org> | 2025-06-23 21:52:48 +0200 |
commit | 47c4846e4319503e9cd0bd0922facd0fb1e383d0 (patch) | |
tree | 9357055f2c76c3a0ab346d578ef725b87cf31702 /drivers/gpu/nova-core/firmware.rs | |
parent | dc70c6ae2441c8ab5438331b2430ec098fdd94bb (diff) |
gpu: nova-core: vbios: Add support for FWSEC ucode extraction
Using the support for navigating the VBIOS, add support to extract vBIOS
ucode data required for GSP to boot. The main data extracted from the
vBIOS is the FWSEC-FRTS firmware which runs on the GSP processor. This
firmware runs in high secure mode, and sets up the WPR2 (Write protected
region) before the Booter runs on the SEC2 processor.
Tested on my Ampere GA102 and boot is successful.
Cc: Alexandre Courbot <acourbot@nvidia.com>
Cc: John Hubbard <jhubbard@nvidia.com>
Cc: Shirish Baskaran <sbaskaran@nvidia.com>
Cc: Alistair Popple <apopple@nvidia.com>
Cc: Timur Tabi <ttabi@nvidia.com>
Cc: Ben Skeggs <bskeggs@nvidia.com>
Signed-off-by: Joel Fernandes <joelagnelf@nvidia.com>
[ acourbot@nvidia.com: remove now-unneeded Devres acquisition ]
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Link: https://lore.kernel.org/r/20250619-nova-frts-v6-19-ecf41ef99252@nvidia.com
[ Re-format and use markdown in comments. - Danilo ]
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
Diffstat (limited to 'drivers/gpu/nova-core/firmware.rs')
-rw-r--r-- | drivers/gpu/nova-core/firmware.rs | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/drivers/gpu/nova-core/firmware.rs b/drivers/gpu/nova-core/firmware.rs index 41f43a729ad3..e5583925cb3b 100644 --- a/drivers/gpu/nova-core/firmware.rs +++ b/drivers/gpu/nova-core/firmware.rs @@ -44,7 +44,6 @@ impl Firmware { /// Structure used to describe some firmwares, notably FWSEC-FRTS. #[repr(C)] #[derive(Debug, Clone)] -#[allow(dead_code)] // Temporary, will be removed in later patch. pub(crate) struct FalconUCodeDescV3 { /// Header defined by `NV_BIT_FALCON_UCODE_DESC_HEADER_VDESC*` in OpenRM. hdr: u32, @@ -77,7 +76,6 @@ pub(crate) struct FalconUCodeDescV3 { impl FalconUCodeDescV3 { /// Returns the size in bytes of the header. - #[expect(dead_code)] // Temporary, will be removed in later patch. pub(crate) fn size(&self) -> usize { const HDR_SIZE_SHIFT: u32 = 16; const HDR_SIZE_MASK: u32 = 0xffff0000; |