On 11/13/25 11:59 AM, Joel Fernandes wrote:
> Hi John,
>
...
>> - Spec::try_from(boot0)
>> + if boot0.is_older_than_fermi() {
>> + return Err(ENOTSUPP);
>> + }
>> +
>> + Spec::try_from(regs::NV_PMC_BOOT_42::read(bar))
>
> There is an inconsistency in error return here, if NV04 through NV50, it
> returns
> -ENOTSUPP. For Fermi through Volta, it will read boot42 but will return
> -ENODEV
> because `Spec::try_from()` -> `boot42.chipset()` with return -ENODEV. I am Ok
> with either error return, but it would be good to make it consistent.
>
Yes, good catch. It should be -ENOTSUPP for sure.
> There also does not seem to be a diagnostic if the chipset is not supported.
> It
> would be good diagnostic that the chipset did not match, right now it will
> return -ENODEV, which could mean the device does not exist. -ENOTSUPP is
> better
> though but an actual dmesg error message would be nice.
Yes. The "not supported" case would happen in two situations:
a) Someone found a pre-Fermi GPU to use for (probably) display, and they
also have a Turing+ GPU in the same system (!), and they have both Nouveau
and Nova drivers available.
Here, it's not really an error situation. If this actually works, then
Nova not supporting the older GPU is just expected operation.
But these older GPUs are not even really directly supported, so this
is a fringe case anyway.
b) A newer GPU is installed, and Nova does not yet support it. Here,
an error message is OK, because Nova is eventually (soon) going to
support that GPU.
So I think that means an error message is reasonable here.
>
> With these,
>
> Reviewed-by: Joel Fernandes <[email protected]>
>
Thanks for the review!
Alex, I think I'd better re-spin and re-test, in order to safely collect
the various small fixes from you and Joel. I can do that today.
thanks,
--
John Hubbard