On Sat Jan 31, 2026 at 12:55 AM GMT, John Hubbard wrote: > Hopper and Blackwell GPUs use FSP-based secure boot and do not require > waiting for GFW_BOOT completion. Skip this step for these architectures. > > Signed-off-by: John Hubbard <[email protected]> > --- > drivers/gpu/nova-core/gpu.rs | 15 ++++++++++++--- > 1 file changed, 12 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/nova-core/gpu.rs b/drivers/gpu/nova-core/gpu.rs > index 2e7b90b80877..2ed0f6d8d19d 100644 > --- a/drivers/gpu/nova-core/gpu.rs > +++ b/drivers/gpu/nova-core/gpu.rs > @@ -304,10 +304,19 @@ pub(crate) fn new<'a>( > let chipset = spec.chipset(); > > try_pin_init!(Self { > - // We must wait for GFW_BOOT completion before doing any > significant setup on the GPU. > + // Turing, Ampere, Ada: we must wait for GFW_BOOT completion > before doing any > + // significant setup on the GPU. > + // > + // Hopper/Blackwell: skip GFW_BOOT completion waiting entirely, > and use the simpler FSP > + // Chain of Trust boot path (elsewhere) instead. > _: { > - gfw::wait_gfw_boot_completion(bar) > - .inspect_err(|_| dev_err!(pdev.as_ref(), "GFW boot did > not complete\n"))?; > + if matches!( > + chipset.arch(), > + Architecture::Turing | Architecture::Ampere | > Architecture::Ada > + ) { > + gfw::wait_gfw_boot_completion(bar) > + .inspect_err(|_| dev_err!(pdev.as_ref(), "GFW boot > did not complete\n"))?;
I think the `as_ref()` here is no longer necessary? Best, Gary > + } > }, > > sysmem_flush: SysmemFlush::register(pdev.as_ref(), bar, > chipset)?,
