On 11/13/25 12:03 AM, Alexandre Courbot wrote:
> On Wed Nov 12, 2025 at 1:30 PM JST, John Hubbard wrote:
...
>> impl NV_PMC_BOOT_0 {
>> - /// Combines `architecture_0` and `architecture_1` to obtain the
>> architecture of the chip.
>> - pub(crate) fn architecture(self) -> Result<Architecture> {
>> - Architecture::try_from(
>> - self.architecture_0() | (self.architecture_1() <<
>> Self::ARCHITECTURE_0_RANGE.len()),
>> - )
>> + pub(crate) fn is_older_than_fermi(self) -> bool {
>> + // From https://github.com/NVIDIA/open-gpu-doc/tree/master/manuals :
>> + const NV_PMC_BOOT_0_ARCHITECTURE_GF100: u8 = 0xc;
>> +
>> + // Older chips left arch1 zeroed out. That, combined with an arch0
>> value that is less than
>> + // GF100, means "older than Fermi".
>> + self.architecture_1() == 0 && self.architecture_0() <
>> NV_PMC_BOOT_0_ARCHITECTURE_GF100
>
> We could also keep `architecture` (making it private) and just test for
> `self.architecture < NV_PMC_BOOT_0_ARCHITECTURE_GF100`. John, I can do
> that when applying the series if you think that makes sense.
>
> Considering that the series has been extensively reviewed during the
> previous iterations, I think we can safely apply it for 6.19, so will
> proceed once I have an answer.
Hi Alex,
It turns out that this doesn't work well, because architecture()
returns an Architecture, not a u8, and then we have to map it back
and the whole things looks a lot worse: complexity on the screen
that serves no purpose.
After looking at several approaches, I've come full circle back to
what this patch has.
thanks,
--
John Hubbard