[PATCH v7 8/8] gpu: nova-core: update firmware module info for TLV images
Timur Tabi <[email protected]> Fri, 31 Jul 2026 15:10:17 -0500
| Newsgroups | dev.linux.lists.driver-core,dev.linux.lists.nova-gpu,org.kernel.vger.rust-for-linux |
|---|---|
| Message-ID | <[email protected]> |
Now that nova-core loads the TLV firmware images, update the firmware module info to specify those files. Also remove FIRMWARE_VERSION as it is no longer used. Signed-off-by: Timur Tabi <[email protected]> --- drivers/gpu/nova-core/firmware.rs | 12 ++++-------- drivers/gpu/nova-core/gsp/hal.rs | 8 ++++---- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/nova-core/firmware.rs b/drivers/gpu/nova-core/firmware.rs index d58a3d5770d5..b49613a90bf0 100644 --- a/drivers/gpu/nova-core/firmware.rs +++ b/drivers/gpu/nova-core/firmware.rs @@ -29,8 +29,6 @@ pub(crate) mod riscv; pub(crate) mod tlv; -pub(crate) const FIRMWARE_VERSION: &str = "570.144"; - /// Structure used to describe some firmwares, notably FWSEC-FRTS. #[repr(C)] #[derive(Debug, Clone, FromBytes)] @@ -338,10 +336,7 @@ const fn make_entry_file(self, chipset: &str, fw: &str) -> Self { .push("nvidia/") .push(chipset) .push("/gsp/") - .push(fw) - .push("-") - .push(FIRMWARE_VERSION) - .push(".bin"), + .push(fw), ) } @@ -350,8 +345,9 @@ const fn make_entry_chipset(self, chipset: gpu::Chipset) -> Self { // GSP firmware files are always present. let mut this = self - .make_entry_file(name, "bootloader") - .make_entry_file(name, "gsp"); + .make_entry_file(name, "gsp_bootloader.tlv") + .make_entry_file(name, "gsp.tlv") + .make_entry_file(name, "gsp.bin"); // Add the firmware files specific to the GSP boot method of `chipset`. let boot_files = boot_firmware_files(chipset); diff --git a/drivers/gpu/nova-core/gsp/hal.rs b/drivers/gpu/nova-core/gsp/hal.rs index 34b4bb82a999..2177ea17dee6 100644 --- a/drivers/gpu/nova-core/gsp/hal.rs +++ b/drivers/gpu/nova-core/gsp/hal.rs @@ -67,16 +67,16 @@ fn post_boot( pub(crate) const fn boot_firmware_files(chipset: Chipset) -> &'static [&'static str] { match chipset.arch() { // Turing chipsets boot the GSP via the SEC2 Booter, and require the FWSEC bootloader. - Architecture::Turing => &["booter_load", "booter_unload", "gen_bootloader"], + Architecture::Turing => &["booter_load.tlv", "booter_unload.tlv", "gen_bootloader.tlv"], // GA100 also requires the FWSEC bootloader. Architecture::Ampere if matches!(chipset, Chipset::GA100) => { - &["booter_load", "booter_unload", "gen_bootloader"] + &["booter_load.tlv", "booter_unload.tlv", "gen_bootloader.tlv"] } // Other Ampere chipsets, as well as Ada chipsets, run FWSEC directly. - Architecture::Ampere | Architecture::Ada => &["booter_load", "booter_unload"], + Architecture::Ampere | Architecture::Ada => &["booter_load.tlv", "booter_unload.tlv"], // Hopper and later chipsets boot the GSP via the FMC image loaded by FSP. Architecture::Hopper | Architecture::BlackwellGB10x | Architecture::BlackwellGB20x => { - &["fmc"] + &["fmc.tlv"] } } } -- 2.54.0