Alexandre Courbot
2025-Nov-19 07:11 UTC
[PATCH 04/11] gpu: nova-core: add support for Turing/GA100 fwsignature
On Wed Nov 19, 2025 at 11:59 AM JST, Alexandre Courbot wrote:> On Sat Nov 15, 2025 at 8:30 AM JST, Timur Tabi wrote: >> Turing and GA100 share the same GSP-RM firmware binary, and the >> signature ELF section is labeled ".fwsignature_tu10x". >> >> Signed-off-by: Timur Tabi <ttabi at nvidia.com> >> --- >> drivers/gpu/nova-core/firmware/gsp.rs | 9 +++++++-- >> 1 file changed, 7 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/gpu/nova-core/firmware/gsp.rs b/drivers/gpu/nova-core/firmware/gsp.rs >> index 0549805282ab..aa5a6433c377 100644 >> --- a/drivers/gpu/nova-core/firmware/gsp.rs >> +++ b/drivers/gpu/nova-core/firmware/gsp.rs >> @@ -163,9 +163,14 @@ pub(crate) fn new<'a, 'b>( >> let fw_section = elf::elf64_section(fw.data(), ".fwimage").ok_or(EINVAL)?; >> >> let sigs_section = match chipset.arch() { >> - Architecture::Ampere => ".fwsignature_ga10x", >> + Architecture::Turing | Architecture::Ampere => >> + if chipset > Chipset::GA100 { >> + ".fwsignature_ga10x" >> + } else { >> + // GA100 uses the same firmware as Turing >> + ".fwsignature_tu10x" >> + }, > > Following up the point I raised on patch 3, this could be another site > where we use a potential `Chipset::has_bootloader_thing` or any more > fittingly named method.Ah right, that's unrelated. In this case can we just express the exception as follows: let sigs_section = match chipset.arch() { Architecture::Turing => ".fwsignature_tu10x", // GA100 uses the same firmware name as Turing Architecture::Ampere if chipset > Chipset::GA100 => ".fwsignature_tu10x", Architecture::Ampere => ".fwsignature_ga10x", Architecture::Ada => ".fwsignature_ad10x", }; It treats GA100 as an exception instead of complicating the match for both Turing and Ampere.
John Hubbard
2025-Nov-19 07:17 UTC
[PATCH 04/11] gpu: nova-core: add support for Turing/GA100 fwsignature
On 11/18/25 11:11 PM, Alexandre Courbot wrote:> On Wed Nov 19, 2025 at 11:59 AM JST, Alexandre Courbot wrote: >> On Sat Nov 15, 2025 at 8:30 AM JST, Timur Tabi wrote:...>>> let sigs_section = match chipset.arch() { >>> - Architecture::Ampere => ".fwsignature_ga10x", >>> + Architecture::Turing | Architecture::Ampere => >>> + if chipset > Chipset::GA100 { >>> + ".fwsignature_ga10x" >>> + } else { >>> + // GA100 uses the same firmware as Turing >>> + ".fwsignature_tu10x" >>> + }, >> >> Following up the point I raised on patch 3, this could be another site >> where we use a potential `Chipset::has_bootloader_thing` or any more >> fittingly named method. > > Ah right, that's unrelated. In this case can we just express the > exception as follows: > > let sigs_section = match chipset.arch() { > Architecture::Turing => ".fwsignature_tu10x", > // GA100 uses the same firmware name as Turing > Architecture::Ampere if chipset > Chipset::GA100 => ".fwsignature_tu10x",I think that should be: Architecture::Ampere if chipset == Chipset::GA100 => ".fwsignature_tu10x", ...unless I'm more confused than usual? :)> Architecture::Ampere => ".fwsignature_ga10x", > Architecture::Ada => ".fwsignature_ad10x", > }; > > It treats GA100 as an exception instead of complicating the match for > both Turing and Ampere.thanks, -- John Hubbard