Mobile P4 3.06 GHz / 533 MHz FSB only detected after dirty patch
Hello,
my Mobile P4 3.06 Ghz with 533 MHz FSB (Kernel 2.4.22) is only detected after applying a dirty patch to function "speedstep_detect_processor" in file speedstep-lib.c:
/*
ebx = cpuid_ebx(0x00000001);
ebx &= 0x000000FF;
if ((ebx != 0x0e) && (ebx != 0x0f))
return 0;*/
After commenting out the above lines, the routine returns P4M as processor type and I can load the module speedstep-ich.
After loading speedstep-ich, a "cat /proc/cpufreq" shows
minimum CPU frequency - maximum CPU frequency - policy CPU 0 1200000 kHz ( 52 %) - 2300000 kHz (100 %) - performance
but "/proc/cpuinfo" shows
processor : 0vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Genuine Intel(R) CPU 3.06GHz
stepping : 9
cpu MHz : 3056.507
cache size : 512 KBfdiv_bug : nohlt_bug : nof00f_bug : nocoma_bug : no
fpu : yesfpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm
bogomips : 6094.84
If I set the cpumode to powersave, a "cat /proc/cpufreq" shows
minimum CPU frequency - maximum CPU frequency - policy CPU 0 1200000 kHz ( 52 %) - 2300000 kHz (100 %) - powersave
and "/proc/cpuinfo" shows
processor : 0vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Genuine Intel(R) CPU 3.06GHz
stepping : 9
cpu MHz : 1594.699
cache size : 512 KBfdiv_bug : nohlt_bug : nof00f_bug : nocoma_bug : no
fpu : yesfpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm
bogomips : 3179.92
So it looks like it works perfectly well for me. Anyway, I'm not too firm in assembly language programming of the Pentium and the counters from cpufreq seem to be broken after this hack. I'm not sure, if I only had luck in hacking the driver and I'd like to know, if there might be a better fix for my problem.
Best regards,
Gregor