On Wed, 2025-10-29 at 18:07 -0700, John Hubbard wrote:
> Yes, but someone can still plug in a pre-Turing GPU and try to
> boot up with nova-core.ko on the system.
> 
> So it's important to avoid getting into trouble in that case.

Sure, but I think we don't want any real code that looks at boot0.  Nova should 
really just look
at boot42 to determine any architecture.  So what we really want is to avoid 
accidentally
reading boot42 on GPUs where it doesn't exist.  I believe that the oldest GPU 
that supports
boot42 is Fermi GF100, or chipset id 0x0c0.  So we can do something like this:

fn is_gpu_ancient(bar: &Bar0) -> bool {
    let boot0 = regs::NV_PMC_BOOT_0::read(bar);

    if boot0.architecture_1() == 0 && boot0.architecture_0() < 0x0c0 {
        return true;
    } else {
        return false;
}

At the beginning of probe(), if is_gpu_ancient() returns true, just exit 
immediately.  Then the
rest of the driver can happily ignore boot0 completely and use boot42 for 
everything.

Just my two cents.

Reply via email to