[PATCH 3/3] gpu: nova-core: rename the FbRanges elf field to fw_image

From: John Hubbard

Date: Sun Sep 13 2026 - 15:55:10 EST


A TLV firmware file carries the GSP firmware image as a section
extracted from the original ELF, and the section is not itself an ELF.

Before the driver moved to TLV firmware files, it parsed that ELF
itself, and it named the framebuffer range that holds the image for the
ELF. The range kept the name through the move.

Rename the field for the framebuffer range that holds the GSP firmware
image, from elf to fw_image. After this, the following:

$ cd drivers/gpu/nova-core
$ grep -iw ELF

comes up empty. :)

Assisted-by: LLM
Reviewed-by: Timur Tabi <ttabi@xxxxxxxxxx>
Signed-off-by: John Hubbard <jhubbard@xxxxxxxxxx>
---
drivers/gpu/nova-core/fb.rs | 18 +++++++++---------
drivers/gpu/nova-core/gsp/fw.rs | 2 +-
2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/nova-core/fb.rs b/drivers/gpu/nova-core/fb.rs
index b18dc5447a73..b0c0b8fe6008 100644
--- a/drivers/gpu/nova-core/fb.rs
+++ b/drivers/gpu/nova-core/fb.rs
@@ -159,7 +159,7 @@ pub(crate) struct FbRanges {
/// Memory area containing the GSP bootloader image.
pub(crate) boot: FbRange,
/// Memory area containing the GSP firmware image.
- pub(crate) elf: FbRange,
+ pub(crate) fw_image: FbRange,
/// WPR2 heap.
pub(crate) wpr2_heap: FbRange,
/// WPR2 region range, starting with an instance of `GspFwWprMeta`.
@@ -234,25 +234,25 @@ pub(crate) fn new(
FbRange(bootloader_base..bootloader_base + bootloader_size)
};

- let elf = {
- const ELF_DOWN_ALIGN: Alignment = Alignment::new::<SZ_64K>();
- let elf_size = u64::from_safe_cast(gsp_fw.size());
- let elf_addr = (boot.start - elf_size).align_down(ELF_DOWN_ALIGN);
+ let fw_image = {
+ const FW_IMAGE_DOWN_ALIGN: Alignment = Alignment::new::<SZ_64K>();
+ let fw_image_size = u64::from_safe_cast(gsp_fw.size());
+ let fw_image_addr = (boot.start - fw_image_size).align_down(FW_IMAGE_DOWN_ALIGN);

- FbRange(elf_addr..elf_addr + elf_size)
+ FbRange(fw_image_addr..fw_image_addr + fw_image_size)
};

let (vf_partition_count, wpr2_heap_size) = wpr2_heap_params(chipset, vgpu_state, fb.end)?;

let wpr2_heap = {
const WPR2_HEAP_DOWN_ALIGN: Alignment = Alignment::new::<SZ_1M>();
- let wpr2_heap_addr = elf
+ let wpr2_heap_addr = fw_image
.start
.checked_sub(wpr2_heap_size)
.ok_or(EOVERFLOW)?
.align_down(WPR2_HEAP_DOWN_ALIGN);

- FbRange(wpr2_heap_addr..(elf.start).align_down(WPR2_HEAP_DOWN_ALIGN))
+ FbRange(wpr2_heap_addr..(fw_image.start).align_down(WPR2_HEAP_DOWN_ALIGN))
};

let wpr2 = {
@@ -273,7 +273,7 @@ pub(crate) fn new(
vga_workspace,
frts,
boot,
- elf,
+ fw_image,
wpr2_heap,
wpr2,
non_wpr_heap,
diff --git a/drivers/gpu/nova-core/gsp/fw.rs b/drivers/gpu/nova-core/gsp/fw.rs
index ae98da42410b..918a7ae809eb 100644
--- a/drivers/gpu/nova-core/gsp/fw.rs
+++ b/drivers/gpu/nova-core/gsp/fw.rs
@@ -205,7 +205,7 @@ pub(crate) fn from_ranges<'a>(
gspFwWprStart: ranges.wpr2.start,
gspFwHeapOffset: ranges.wpr2_heap.start,
gspFwHeapSize: ranges.wpr2_heap.len(),
- gspFwOffset: ranges.elf.start,
+ gspFwOffset: ranges.fw_image.start,
bootBinOffset: ranges.boot.start,
frtsOffset: ranges.frts.start,
frtsSize: ranges.frts.len(),
--
2.55.0