# Centrino - Banias - CPU Frequency Problem - [Solved]

## Mehrius

I know this has been covered by a lot of other topics but I could not find a sollution and i've been searching for over 3 weeks now .....

Almost all others who have this problem have a Dothan proc while I have an old Banias 1.6GHz ..

The problem is I cannot get the cpu frequency to more than 600MHz no matter what I do ... I worked fine in XP though....

The full specs of my laptop are: Toshiba Satellite Pro M30 with a 1.6GHz Banias 512MB and I also did a BIOS upgrade to 1.7 ...

I know I have to set some things in my kernel and I think I did but anyway here is my .config:

#

# Automatically generated make config: don't edit

# Linux kernel version: 2.6.11-gentoo-r3

# Fri Jun 10 20:00:31 2005

#

CONFIG_X86=y

CONFIG_MMU=y

CONFIG_UID16=y

CONFIG_GENERIC_ISA_DMA=y

CONFIG_GENERIC_IOMAP=y

#

# Code maturity level options

#

CONFIG_EXPERIMENTAL=y

CONFIG_CLEAN_COMPILE=y

CONFIG_BROKEN_ON_SMP=y

CONFIG_LOCK_KERNEL=y

#

# General setup

#

CONFIG_LOCALVERSION=""

CONFIG_SWAP=y

CONFIG_SYSVIPC=y

CONFIG_POSIX_MQUEUE=y

# CONFIG_BSD_PROCESS_ACCT is not set

CONFIG_SYSCTL=y

CONFIG_AUDIT=y

CONFIG_AUDITSYSCALL=y

CONFIG_LOG_BUF_SHIFT=14

CONFIG_HOTPLUG=y

CONFIG_KOBJECT_UEVENT=y

CONFIG_IKCONFIG=y

CONFIG_IKCONFIG_PROC=y

# CONFIG_EMBEDDED is not set

CONFIG_KALLSYMS=y

# CONFIG_KALLSYMS_EXTRA_PASS is not set

CONFIG_FUTEX=y

CONFIG_EPOLL=y

# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set

CONFIG_SHMEM=y

CONFIG_CC_ALIGN_FUNCTIONS=0

CONFIG_CC_ALIGN_LABELS=0

CONFIG_CC_ALIGN_LOOPS=0

CONFIG_CC_ALIGN_JUMPS=0

# CONFIG_TINY_SHMEM is not set

#

# Loadable module support

#

CONFIG_MODULES=y

CONFIG_MODULE_UNLOAD=y

# CONFIG_MODULE_FORCE_UNLOAD is not set

CONFIG_OBSOLETE_MODPARM=y

# CONFIG_MODVERSIONS is not set

# CONFIG_MODULE_SRCVERSION_ALL is not set

CONFIG_KMOD=y

#

# Processor type and features

#

CONFIG_X86_PC=y

# CONFIG_X86_ELAN is not set

# CONFIG_X86_VOYAGER is not set

# CONFIG_X86_NUMAQ is not set

# CONFIG_X86_SUMMIT is not set

# CONFIG_X86_BIGSMP is not set

# CONFIG_X86_VISWS is not set

# CONFIG_X86_GENERICARCH is not set

# CONFIG_X86_ES7000 is not set

# CONFIG_M386 is not set

# CONFIG_M486 is not set

# CONFIG_M586 is not set

# CONFIG_M586TSC is not set

# CONFIG_M586MMX is not set

# CONFIG_M686 is not set

# CONFIG_MPENTIUMII is not set

# CONFIG_MPENTIUMIII is not set

CONFIG_MPENTIUMM=y

# CONFIG_MPENTIUM4 is not set

# CONFIG_MK6 is not set

# CONFIG_MK7 is not set

# CONFIG_MK8 is not set

# CONFIG_MCRUSOE is not set

# CONFIG_MEFFICEON is not set

# CONFIG_MWINCHIPC6 is not set

# CONFIG_MWINCHIP2 is not set

# CONFIG_MWINCHIP3D is not set

# CONFIG_MCYRIXIII is not set

# CONFIG_MVIAC3_2 is not set

# CONFIG_X86_GENERIC is not set

CONFIG_X86_CMPXCHG=y

CONFIG_X86_XADD=y

CONFIG_X86_L1_CACHE_SHIFT=6

CONFIG_RWSEM_XCHGADD_ALGORITHM=y

CONFIG_GENERIC_CALIBRATE_DELAY=y

CONFIG_X86_WP_WORKS_OK=y

CONFIG_X86_INVLPG=y

CONFIG_X86_BSWAP=y

CONFIG_X86_POPAD_OK=y

CONFIG_X86_GOOD_APIC=y

CONFIG_X86_INTEL_USERCOPY=y

CONFIG_X86_USE_PPRO_CHECKSUM=y

CONFIG_HPET_TIMER=y

# CONFIG_SMP is not set

CONFIG_PREEMPT=y

CONFIG_PREEMPT_BKL=y

# CONFIG_X86_UP_APIC is not set

CONFIG_X86_TSC=y

CONFIG_X86_MCE=y

CONFIG_X86_MCE_NONFATAL=y

CONFIG_TOSHIBA=y

# CONFIG_I8K is not set

# CONFIG_MICROCODE is not set

# CONFIG_X86_MSR is not set

CONFIG_X86_CPUID=m

#

# Firmware Drivers

#

# CONFIG_EDD is not set

CONFIG_NOHIGHMEM=y

# CONFIG_HIGHMEM4G is not set

# CONFIG_HIGHMEM64G is not set

CONFIG_MATH_EMULATION=y

CONFIG_MTRR=y

# CONFIG_EFI is not set

CONFIG_HAVE_DEC_LOCK=y

# CONFIG_REGPARM is not set

#

# Power management options (ACPI, APM)

#

CONFIG_PM=y

# CONFIG_PM_DEBUG is not set

CONFIG_SOFTWARE_SUSPEND=y

CONFIG_PM_STD_PARTITION=""

#

# ACPI (Advanced Configuration and Power Interface) Support

#

CONFIG_ACPI=y

CONFIG_ACPI_BOOT=y

CONFIG_ACPI_INTERPRETER=y

CONFIG_ACPI_SLEEP=y

CONFIG_ACPI_SLEEP_PROC_FS=y

CONFIG_ACPI_AC=y

CONFIG_ACPI_BATTERY=y

CONFIG_ACPI_BUTTON=y

CONFIG_ACPI_VIDEO=m

CONFIG_ACPI_FAN=y

CONFIG_ACPI_PROCESSOR=y

CONFIG_ACPI_THERMAL=y

# CONFIG_ACPI_ASUS is not set

# CONFIG_ACPI_IBM is not set

CONFIG_ACPI_TOSHIBA=y

CONFIG_ACPI_BLACKLIST_YEAR=0

# CONFIG_ACPI_DEBUG is not set

CONFIG_ACPI_BUS=y

CONFIG_ACPI_EC=y

CONFIG_ACPI_POWER=y

CONFIG_ACPI_PCI=y

CONFIG_ACPI_SYSTEM=y

CONFIG_X86_PM_TIMER=y

# CONFIG_ACPI_CONTAINER is not set

#

# APM (Advanced Power Management) BIOS Support

#

# CONFIG_APM is not set

#

# CPU Frequency scaling

#

CONFIG_CPU_FREQ=y

# CONFIG_CPU_FREQ_DEBUG is not set

CONFIG_CPU_FREQ_STAT=y

# CONFIG_CPU_FREQ_STAT_DETAILS is not set

# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set

CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y

CONFIG_CPU_FREQ_GOV_PERFORMANCE=y

CONFIG_CPU_FREQ_GOV_POWERSAVE=y

CONFIG_CPU_FREQ_GOV_USERSPACE=y

CONFIG_CPU_FREQ_GOV_ONDEMAND=y

CONFIG_CPU_FREQ_TABLE=y

#

# CPUFreq processor drivers

#

# CONFIG_X86_ACPI_CPUFREQ is not set

# CONFIG_X86_POWERNOW_K6 is not set

# CONFIG_X86_POWERNOW_K7 is not set

# CONFIG_X86_POWERNOW_K8 is not set

# CONFIG_X86_GX_SUSPMOD is not set

CONFIG_X86_SPEEDSTEP_CENTRINO=y

CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI=y

CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y

# CONFIG_X86_SPEEDSTEP_ICH is not set

# CONFIG_X86_SPEEDSTEP_SMI is not set

# CONFIG_X86_P4_CLOCKMOD is not set

# CONFIG_X86_CPUFREQ_NFORCE2 is not set

# CONFIG_X86_LONGRUN is not set

# CONFIG_X86_LONGHAUL is not set

#

# shared options

#

# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set

I also get a dmesg error which says : 

speedstep-centrino: couldn't enable Enhanced SpeedStep

my /proc/cpuinfo says:  

processor	: 0

vendor_id	: GenuineIntel

cpu family	: 6

model		: 9

model name	: Intel(R) Pentium(R) M processor 1600MHz

stepping	: 5

cpu MHz		: 598.710

cache size	: 1024 KB

fdiv_bug	: no

hlt_bug		: no

f00f_bug	: no

coma_bug	: no

fpu		: yes

fpu_exception	: yes

cpuid level	: 2

wp		: yes

flags		: fpu vme de pse tsc msr mce cx8 sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 tm pbe est tm2

bogomips	: 1183.74

if i run cpufreq-info I get:

cpufrequtils 0.3: cpufreq-info (C) Dominik Brodowski 2004

Report errors and bugs to linux@brodo.de, please.

analyzing 

CPU 0:

  no or unknown cpufreq driver is active on this CPU

I simply cannot find anything in /sys/.../cpu/cpu0/

I tried compiling without ACPI (APM) and got no results...

I aslo tried compiling with ACPI_CPUFREQ and no ENCHANTED Speedstep support bul still nothing

I really want this to work because I don't want to go back to Windows..... (Gentoo this still works better for multimedia -- and I want to see it work at full speed) ...

Please write anything that can help even if you think it's too obvious and i probablly thought out that ... It's likely I haven't as I am a total beginner with Linux and specially with Gentoo...... Also please fell free to ask more details ........Last edited by Mehrius on Mon Jul 25, 2005 5:08 pm; edited 1 time in total

----------

## widan

Look in dmesg for things related to speedstep. Running "dmesg | grep -Ei 'centrino|speedstep'" should give you something to start with. If the cpufreq driver can't load, it will usually print some messages there explaining why.

You can look here too. Other links on google might be interesting too.

----------

## dgaffuri

Are you sure it's working in WinXP? It's common for Toshiba notebooks (especially aftery servicing) to get stuck at 600 MHZ. If not working in XP you may look at this thread, that describes how I solved the same problem on a Tecra M2.

https://forums.gentoo.org/viewtopic-t-345344.html

----------

## Mehrius

Widan: the command only returns: speedstep-centrino: couldn't enable Enhanced SpeedStep

And I looked all over there and could not find anything related to this ......

I'll give the links a look and get back to you....

dgaffuri: Look ... to know for sure I'd have to reinstall windows and I really don't want to...but as much as i remembered before installing gentoo I played GTA SA quite well on it and I don't think it would've worked at 600MHz .....Although I did have it serviced as my net card got burned during a storm and they had to replace my whole mother board ..... If nothing else works I'll just reinstall XP on another hdd and look into that too .... And thanks for the links.......

----------

## dgaffuri

 *Mehrius wrote:*   

> Although I did have it serviced as my net card got burned during a storm and they had to replace my whole mother board

 

I'm quite sure you're stuck to 600 MHz in BIOS. To confirm look in BIOS settings if you have a CPU frequency entry. If it's not there you have two alternatives.

1) (at your risk) use this utility, see the tablet pc forum linked in my previous post for details

http://www.bob-cat.me.uk/pom200t1-V1.5.zip

2) make your laptop serviced by Toshiba (if they even understand what you're talking about)

Good luck

----------

## Mehrius

Thanks for the quick reply ......

I DO have the cpu frequency option on the BIOS ... I always had it ( with 1.4, 1.6 and now 1.7) it's on dynamical (not lowest or highest)

And I can't say I know for sure that it worked in windows as I never checked with a proper utility (CPUZ) but San Andreas would'nt work at 600MHz ... (that I'm sure of)

So if you have other suggestions I'd love to hear them ..........

----------

## dgaffuri

Yes, the last one. Enable

```
CONFIG_CPU_FREQ_DEBUG
```

in your kernel at look at dmesg. Good luck, and let us know.

----------

## Mehrius

Ok I enabled it on my 2.6.12-gentoo-r4 kernel which I use for testing ......

and i got an additional error mesage in dmesg which says: 

speedstep_centrino: Unknown symbol cpufreq_debug_printk

I susspect that this only appears if I try to modprobe the speedstep-centrino module as it is at the ending of the dmesg and not near the first one......... What can I do about this???

----------

## Mehrius

Ok that only appears when I try to modprobe the speedstep-centrino module ...

I did a little searching and found out that I can give cpufreq.debug some options: 1-core, 2-drivers and 4-governors .... As it is a module a tried them all and I got this in my dmesg:

kobject_register failed for processor (-17)

 [<c01f3d19>] kobject_register+0x49/0x80

 [<c012f1b1>] mod_sysfs_setup+0x51/0xc0

 [<c01302d1>] load_module+0x7a1/0xa70

 [<c013063a>] sys_init_module+0x6a/0x1f0

 [<c0102c25>] syscall_call+0x7/0xb

speedstep_centrino: Unknown symbol cpufreq_debug_printk

Now I really am confused........Did anyone see anything like this before???

----------

## Earthwings

Sounds like you recompiled your kernel and modules, but booted from the old one (if you copied bzImage to /boot, check that /boot was mounted when doing so).

----------

## Mehrius

Nope I'm pretty sure that it is the new kernel that i'm booting ... the problem is that I forgot to compile something, recompiled and now I can't get cpufreq.debug to work ...............

Ok so i have everything exect the speedstep-centrino compiled into the kernel (including cpufreq_debug) and when i boot it only says: 

speedstep-centrino: couldn't enable Enhanced SpeedStep

But when i run modprobe speedstep-centrino it says: 

FATAL: Error inserting speedstep_centrino (/lib/modules/2.6.12-gentoo-r4/kernel/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.ko): Unknown symbol in module, or unknown parameter (see dmesg)

And now the dmesg has a new message that says:

speedstep_centrino: Unknown symbol cpufreq_debug_printk

I have to say that I am using the cpufreq_debug= 7 (1+2+4) in my grub.conf but it just returns:

uknown command ....

What can I do ........????? Oh and my other HDD doesn't seem to work anymore so I can't install XP without uninstalling Gentoo which is only my last resort solution ...............

----------

## Earthwings

Please post your grub.conf

----------

## Mehrius

Here's my grub.conf:

default 0

timeout 10

splashimage=(hd0,0)/grub/splash.xpm.gz

title=Gentoo

root (hd0,0)

kernel /kernel-2.6.11-gentoo-r3 vga=0x360

title=Tests

root (hd0,0)

kernel /kernel-2.6.12-gentoo-r4 video=vesafb:mtrr,1280x800-16@72 cpufreq.debug=7

----------

## Mehrius

OK guys I finnaly got it to recognize my CPU correctly ..... but the module still wont't load ......

i recompiled the kernel with everything except the processor drivers enabled and i also compiled everything else in the cpufreq section as modules.....

I boots up and for some reason it tries to load the speedstep-centrino module even if I didn't enable it to run automatically...... and if I : dmesg | grep speedstep I get this:

speedstep-centrino: found "Intel(R) Pentium(R) M processor 1600MHz": max frequency: 1600000kHz

speedstep-centrino: couldn't enable Enhanced SpeedStep

so it does finnaly see the CPU right but still doesn't load .... WHY ????????

I have to say that I enables CPUFREQ_DEBUG in my kernel config but if I add cpufreq.debug=1(or 2 or 4 or 7) in my grub.conf it returns :

Kernel command line: video=vesafb:mtrr,1280x800-16@72 ide3=noprobe ide4=noprobe cpufreq.debug=1

Unknown boot option `cpufreq.debug=1': ignoring

I'm going crazy .............

----------

## widan

If you built it as a module, you should pass the debug parameter directly to the module, "modprobe cpufreq debug=7". Since it seems to autoload the modules, you need to rmmod them first. (Look at lsmod output, and rmmod the cpufreq* modules. Those with "used" = 0 first, then the others.) Then "modprobe cpufreq debug=7", then modprobe speedstep-centrino. Then you should have the debug messages.

----------

## Mehrius

I don't think cpufreq_debug can be loaded as a module ..... 

I also get an error when I try to modprobe acpi_cpufreq........

I don't know what else I might try ..  Maybe I should try a custom DSDT Table but I don't know where to find one .........

I anyone has anymore ideas please post...

----------

## Mehrius

Oh I forgot to say that I got the latest results (the ones where my processor is recognized) using a custom speestep-centrino.c......

If anyone wants to have a look at it.. post

----------

## widan

 *Mehrius wrote:*   

> I don't know what else I might try ..  Maybe I should try a custom DSDT Table but I don't know where to find one .........

 

Maybe at acpi.sourceforge.net.

EDIT: If you want to have debugging info, even with the problems you've got with the modules, in the file /usr/src/linux/arch/i386/kernel/cpu/cpufreq/speedtstep-centrino.c, change that line (near the beginning):

```
#define dprintk(msg...) cpufreq_debug_printk(CPUFREQ_DEBUG_DRIVER, "speedstep-centrino", msg)
```

So that it says:

```
#define dprintk printk
```

(You might need to do that to other files in that directory too, as it enabled debugging only for that file)

----------

## Mehrius

Ok so i downloaded all the acpi patches from acpi.sourceforge.net ... and tried them on my 2.6.12-gentoo-r4 kernel but nothing worked......

But I got the new 2.6.12-gentoo-r6 sources and applied the latest 20050708 acpi patch. I compiled cpufreq in my kernel but added all the cpu drivers as modules ... and stiil get the could not activate speedstep-centrino error in my dmesg.

----------

## Mehrius

But now I can modprobe the p4-clockmod module and cange frequencies using this but the problem is that is sees my 600MHz frequency as being the maximum and I can only change the frequency to 75Mhz, 150Mhz ... to 600Mhz. Using this module I am not sure that frequency change actually happens and also the Centrino proc also changes it's voltage (thus saving battery life) so there is no point in using the p4-clockmod.

Also I have another problem: I cannot post messages that include pasted info from my dmesg .... even if I use the code option.........

----------

## Mehrius

Here is what I get in my dmesg when I modprobe speedstep-centrino:

[   49.387638] cpufreq-core: trying to register driver centrino

[   49.387650] cpufreq-core: adding CPU 0

[   49.387665] speedstep-centrino: found "Intel(R) Pentium(R) M processor 1600MHz": max frequency: 1600000kHz

[   49.387676] speedstep-centrino: trying to enable Enhanced SpeedStep (111088)

[   49.387682] speedstep-centrino: couldn't enable Enhanced SpeedStep

[   49.387689] cpufreq-core: initialization failed

[   49.387697] cpufreq-core: no CPU initialized for driver centrino

[   49.387704] cpufreq-core: unregistering CPU 0

----------

## Mehrius

Also this is what dmesg says when I modprobe p4-clockmod :

I don't seem to be able to post the content of the dmesg file so here is the link to the file.... 

www.patchwork.ro/dmesg

If you figure out why i could not post it plese reply or pm me so I can post it here .....

I think I'm close to making this work so please post anything you think might help ....

Also .. I'm sorry about the multiple posts but I could not get it to post in a single message ....

----------

## Mehrius

Got the link up .......please take a look...

----------

## Mehrius

so here's the deal...

I see that everybody lost interest but anyway here's what I got so far:

I'm still using the 2.6.12-gentoo-r6 with the 20050708 acpi patch but i decided to take it into my own hands and modify some sources..

As I am a total beginner (with a little background in programming languages ... including C and C++) I could not understand much of the 

speedstep-centrino.c file but I could find the line that stops the module from loading and comment it out. Lucky enough it complied and I

got a running kernel. I boot into my new kernel I run modprobe speedstep-centrino and IT RUNS. I load the cpufreqd and run a cpufreq-info

which returns both minimum and maximum frequency as being 600MHz. I then reboot the same kernel but with acpi=off and modprobe 

speedstep-centrino again and run cpufreg-info which now sees my processor perfectly and I'm able to change frequencies to what I like.

But no ACPI .... this means no bright screen (I'm using the toshiba_acpi option in the kernel which is not available now), no battery meter, 

no CPU temperature, no control over the fan.... I can't have this...

So again I must ask for help from you guys....

The line that I commented out in the speedstep-centino.c is:

if (!(l & (1<<16))) {

		l |= (1<<16);

		dprintk("trying to enable Enhanced SpeedStep (%x)\n", l);

		wrmsr(MSR_IA32_MISC_ENABLE, l, h);

		/* check to see if it stuck */

		rdmsr(MSR_IA32_MISC_ENABLE, l, h);

		if (!(l & (1<<16))) {

			printk(KERN_INFO PFX "couldn't enable Enhanced SpeedStep\n");

			printk(KERN_INFO PFX "Mehrius was here and disabled the line that said return -ENODEV. Was this a mistake?\n");

			//return -ENODEV;

		}

	}

You can see which one it is right?

Also I cannot notice any performance improvements .... Maybe someone knows the way for me to be sure that throtlling actually happens....

I also tried compiling the unmodified speedstep-centrino.c (after I found out that it is the acpi that keeps the module from loading) but it 

didn't work ( "couldn't enable Enchanted SpeedStep" ).

Can anyone tell me what I commented out ? I don't understand what being stuck means ....

Another thing I want to know is what is the %x or as I see it the "l" which is connect to it. My dmesg displays this:

speedstep-centrino: trying to enable Enchanted SpeedStep (111088) 

So what does the 111088 represent ?????

Also when I modprobe speedstep-centino it automatically loads the /acpi/processor.ko and the /acpi/freq_table.ko modules... so I can't understand

why it will not work when I enable ACPI support.

----------

## dgaffuri

Try to remove

```
CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI=y
```

AFAIK tables (and not ACPI) are used for Banian CPUS. Then reboot the modified version without acpi=off to see if it works. The line that you commented out is the error return from the check that speedstep was effectively enabled. Don't know if it's really enabled in this case.

I'm just guessing, but you may try to insert a delay just before

```
rdmsr(MSR_IA32_MISC_ENABLE, l, h);
```

We've not forgot you  :Very Happy: .

----------

## Mehrius

It worked ..... I can still (fakely) change my frequecy and not I have generic ACPI, however the TOSHIBA_ACPI is not loading anymore .... Don't know why but I think I may have done some other mystake .....

Have some questions:

dgaffuri: what do you mean by AFAIK tables..... and how do I set the delay before rdmsr() ???

Oh and thanks to dgaffuri for the reply ......

I don't know if I have to say this, but: you may have noticed that I replaced the error with some output ("Was this a mistake?" - part)  and I'm still getting that in all my dmesg's so it still would not work if I tried a compile with the normal source (I mean the one with the ACPI patch)......

Waiting for more feedback ......

----------

## dgaffuri

 *Mehrius wrote:*   

> dgaffuri: what do you mean by AFAIK tables..... and how do I set the delay before rdmsr() ??

 

I mean that you may try

```
CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y

CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI=n
```

and see if this allows you to boot without acpi=off.

For the delay you may try to use

```
#include <linux/delay.h> // if it's not already there, I can't look at kernel code right now

...

mdelay(20); // in milliseconds
```

I repeat that this is just a guess. It's very strange that BIOS shows dynamic freqs in BIOS and then trying to enable it reports a failure.

----------

## widan

 *Mehrius wrote:*   

> and how do I set the delay before rdmsr() ???

 

I don't think it will help, but if you want a delay of 10ms:

```
mdelay(10)
```

 *Mehrius wrote:*   

> I don't know if I have to say this, but: you may have noticed that I replaced the error with some output ("Was this a mistake?" - part)  and I'm still getting that in all my dmesg's so it still would not work if I tried a compile with the normal source (I mean the one with the ACPI patch)......

 

Basically, the driver toggles a bit in an MSR (a control register) in the CPU, that tells it to enable whatever logic is needed to support on-the-fly frequency changes. Then it reads it back to see if the CPU supports the capability (if it supports it, there is a small memory cell that stores the bit, so it stays in the last state it was put in, to keep the related logic enabled even after we wrote to the register, but if it does not, the bit is hardwired to 0, and won't change when the driver writes to it.) So what you're doing by removing the check is telling the driver: "don't care about whether the CPU supports it or not, and continue". If the bit is still 0 in the CPU, scaling won't work. The driver thinks scaling works, tries to send the frequency change commands, and updates what Linux thinks of the frequency, but since it's still disabled on the CPU, the real frequency won't change.

As to why Speedstep can't be enabled, that I don't know. Maybe there are other things that need to be done before it can be enabled, that the BIOS should do, but doesn't (or does incorrectly).

EDIT: Try with the different possible BIOS settings related to frequency. The BIOS may be doing weird things, like trying to do scaling by itself in System Management Mode, rather than letting the OS do it.

----------

## Mehrius

Solved .... turns out is was blocked after all .... after I tried everything i reinstalled Windows XP and it was clear ..... used the tool from tabletpcbuzz.com and now it's fine .... ( 2.5 times faster ) ......

Thank you for all your replies anyways .......

----------

