[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