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 <jhubbard@nvidia.com>
> ---
> 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)?,