Messages in this thread | ![/](/images/icornerl.gif) | | Date | Wed, 18 Feb 2004 10:42:16 +0600 | From | Alexey Shinkin <> | Subject | 2.6.0 doesn't recognize some Cyrix Cpus ? |
| |
hi!
I am playing with Linux 2.6.0 on a PC-104 board with ZFx86 CPU - it is Cyrix core based 486. Kernel 2.4.18 detects the CPU as Cyrix Cx486DX2, but 2.6.0 says it is 486.
I looked through /arch/i386/kernel/setup.c in 2.4.18 sources, /arch/i386/kernel/cpu/common.c in 2.6.0 sources and found the identify_cpu() function that seems to be working a bit incorrectly in 2.6.0.
In 2.4.18 it checks if the CPU able to execute CPUID , if cannot - the id_and_try_enable_cpuid() is called, which identifies old Cyrixes and tries to turn on CPUID on some of them. Even if the CPU is not CPUID-capable,Cyrix is detected by test_cyrix_52div(), at least, the function fills x86_vendor & x86_vendorid fields in for Cyrixes. The fields are used later for vendor-specific initialization.
In 2.6.0 identify_cpu() does not check CPUID-uncapable CPUs by test_cyrix_52div() and doesnt try to enable CPUID on them, so , further generic_identify() considers my CPU as usual 486, doesnt find vendor in get_cpu_vendor and after all default CPU init procedure is performed instead of vendor-specific.
I understand that now people are more focused on newest P4's, Athlons64 etc , but I think that support for old CPUs also shouldnt be broken...
-- Best regards, Alex Shinkin
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| ![\](/images/icornerr.gif) |