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)?,

Reply via email to