The module firmware table lists booter_load and booter_unload for every
chipset, but Hopper and Blackwell boot the GSP through FSP and never
load the SEC2 booter. Those modinfo entries point at firmware files that
are not shipped for FSP-based chipsets, so initramfs tooling looks for
images that are never used.
Declare the booter only for chipsets that boot via it, matching how the
FMC and FWSEC bootloader images are already gated on chipset
capabilities.
Signed-off-by: John Hubbard <jhubbard@nvidia.com>
---
drivers/gpu/nova-core/firmware.rs | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/nova-core/firmware.rs b/drivers/gpu/nova-core/firmware.rs
index 366d3b76360e..977a306ed471 100644
--- a/drivers/gpu/nova-core/firmware.rs
+++ b/drivers/gpu/nova-core/firmware.rs
@@ -427,19 +427,20 @@ const fn make_entry_chipset(self, chipset: gpu::Chipset) -> Self {
let name = chipset.name();
let this = self
- .make_entry_file(name, "booter_load")
- .make_entry_file(name, "booter_unload")
.make_entry_file(name, "bootloader")
.make_entry_file(name, "gsp");
- let this = if chipset.needs_fwsec_bootloader() {
- this.make_entry_file(name, "gen_bootloader")
+ // FSP-based chipsets (Hopper and later) boot the GSP via the FMC image
+ // loaded by FSP. Older chipsets use the SEC2 booter instead.
+ let this = if chipset.uses_fsp() {
+ this.make_entry_file(name, "fmc")
} else {
- this
+ this.make_entry_file(name, "booter_load")
+ .make_entry_file(name, "booter_unload")
};
- if chipset.uses_fsp() {
- this.make_entry_file(name, "fmc")
+ if chipset.needs_fwsec_bootloader() {
+ this.make_entry_file(name, "gen_bootloader")
} else {
this
}
base-commit: fea3a2dd7d3fc1936211ced5f84420e610435730
--
2.54.0