On Sat Nov 15, 2025 at 10:09 AM JST, John Hubbard wrote:
> NVIDIA GPUs are moving away from using NV_PMC_BOOT_0 to contain
> architecture and revision details, and will instead use NV_PMC_BOOT_42
> in the future. NV_PMC_BOOT_0 will contain a specific set of values
> that will mean "go read NV_PMC_BOOT_42 instead".
>
> Change the selection logic in Nova so that it will claim Turing and
> later GPUs. This will work for the foreseeable future, without any
> further code changes here, because all NVIDIA GPUs are considered, from
> the oldest supported on Linux (NV04), through the future GPUs.
>
> Add some comment documentation to explain, chronologically, how boot0
> and boot42 change with the GPU eras, and how that affects the selection
> logic.
>
> Cc: Alexandre Courbot <[email protected]>
> Cc: Danilo Krummrich <[email protected]>
> Cc: Timur Tabi <[email protected]>
> Reviewed-by: Joel Fernandes <[email protected]>
> Signed-off-by: John Hubbard <[email protected]>
> ---
>  drivers/gpu/nova-core/gpu.rs  | 41 ++++++++++++++++++++++++++++++-----
>  drivers/gpu/nova-core/regs.rs | 21 +++++++++++++-----
>  2 files changed, 52 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/gpu/nova-core/gpu.rs b/drivers/gpu/nova-core/gpu.rs
> index 88a6d7af9f37..8e04628ca3d9 100644
> --- a/drivers/gpu/nova-core/gpu.rs
> +++ b/drivers/gpu/nova-core/gpu.rs
> @@ -169,6 +169,15 @@ fn from(boot0: regs::NV_PMC_BOOT_0) -> Self {
>      }
>  }
>  
> +impl From<regs::NV_PMC_BOOT_42> for Revision {
> +    fn from(boot0: regs::NV_PMC_BOOT_42) -> Self {
> +        Self {
> +            major: boot0.major_revision(),
> +            minor: boot0.minor_revision(),
> +        }
> +    }
> +}

Just one nit: similarly to how we are converting the `TryFrom<BOOT_0>
for Spec` into a `TryFrom<BOOT_42>`, I think we don't need to keep
`From<BOOT_0> for Revision`. Actually we don't even want it, as using it
would mean we are relying on BOOT_0 instead of BOOT_42, which this
patchset nicely makes our only source of truth.

I'll thus remove the `From<BOOT_0>` implementation before applying.

Reply via email to