Pentium M CPU frequency and XPe/XP Pro

L

Lucvdv

I'm getting different behavior between XP Professional and XPe on the same
hardware, a Pentium M system. I'm talking about swapping OS on the same
mainboard, so it's not a matter of BIOS settings or so.

The only hardware difference is that XP Pro runs from harddisk, and XPe
from flash.

I'm using the same drivers in both setups: in XP Pro I installed from the
CD where I grabbed them from to componentize them for XPe.


Under XPe, the CPU frequency varies with CPU load between 600 MHz and 1.6
GHz.

Under XP Pro, the CPU frequency remains fixed at its maximum, 1.6 GHz.


From a power point of view it might seem that XPe is better, but my problem
is that I need the CPU frequency to be fixed.

There's a custom hardware driver that must control non-intelligent I/O with
microsecond level accuracy, and to obtain that level the driver uses the
processor's TSC register. If the clock frequency isn't fixed, that's an
impossible task of course.

The device works perfectly with Win2000 or XP Pro as OS, but it fails
dramatically under XPe.
 
L

Lucvdv

Hi,

try to disable in the BIOS the Intel SpeedStep technology at all.

No such setting provided by the BIOS, nor by jumper :(

At least none that I found: we only got preliminary documentation with the
board, and some topics contain only "this section TBD".
 
L

Lucvdv

No such setting provided by the BIOS, nor by jumper :(

At least none that I found: we only got preliminary documentation with the
board, and some topics contain only "this section TBD".

But I found the solution here:

http://www.overclock.net/faqs/44005-info-intel-speedstep-technology-thermal-throttling.html

"Always on" power profile disables SpeedStep.
Obvious, once you know it. Not. ;)


For the previous production run we used another mainboard, also Pentium M,
but gone EOL since.

After finding out what caused it, I now remember that I didn't have the
power control panel applet included in that target. To change it from the
default I adjusted the settings of my development machine, and copied my
power management registry data into the target's registry - and that must
have been "Always on" data.
 
S

Stuart Langley

This setting can be configured through TD.

For example, under ACPI Uniprocessor PC -> Settings -> Power Management
Settings -> Always On.

Regards,

Stuart
 
L

Lucvdv

This setting can be configured through TD.

For example, under ACPI Uniprocessor PC -> Settings -> Power Management
Settings -> Always On.

Regards,

Yes, but first you have to know that it has an effect on the CPU clock
rate...
 
L

Lucvdv

This setting can be configured through TD.

My leaking memory is troubling me, that's exactly what I had already done -
to another policy and for another reason.

Changed the power policy to 'Always On' to solve my problem, but of course
my display now got powered of after 20 minutes. That's why I had set it to
"Presentation" in the first place, which is the only default policy without
a display timeout.



If anyone is interested: you can change it all in the registry, post FBA so
you don't have to rebuild the whole target from scratch, without having the
power control panel in the target.

I plugged the CF into my development machine and loaded the registry hives
in regedit there to make the changes (just don't forget to unload them
after you've finished).

Power policy:

{user.dat}\Control Panel\PowerCfg
REG_SZ CurrentPowerPolicy = 0..5 = policy number (2 = presentation, 3 =
always on).


Monitor power:

In the subkey with the selected policy's number, for example Always On:

{user.dat}\Control Panel\PowerCfg\PowerPolicies\3
REG_BINARY Policies

The DWORD at offset 0x38 is the display timeout in seconds (0 = no timeout,
default = 0x04b0 = 1200 seconds = 20 minutes).
 
K

KM

Lucvdv,

Always On will indeed turn off some of the Intel's and AMD's ACPI features including Intel's SpeedStep and corresponding AMD's
PowerNow technologies.

However, in case you do need other power policy scheme to be enabled, did you try just disabling the SpeedStep directly? E.g., you
can set the following flag:
[HKLM\SYSTEM\CurrentControlSet\Services\P3\Parameters],HackFlags=dword:0 (basically you need to set the bit 0 to 0)

After this registry key entry is made or changed, XP will assume new processor performance control upon next boot.

Disclaimer: I never tried this on XPe but only XP Pro long time ago.
 
L

Lucvdv

Lucvdv,

Always On will indeed turn off some of the Intel's and AMD's ACPI features including Intel's SpeedStep and corresponding AMD's
PowerNow technologies.

However, in case you do need other power policy scheme to be enabled, did you try just disabling the SpeedStep directly? E.g., you
can set the following flag:
[HKLM\SYSTEM\CurrentControlSet\Services\P3\Parameters],HackFlags=dword:0 (basically you need to set the bit 0 to 0)

After this registry key entry is made or changed, XP will assume new processor performance control upon next boot.

Disclaimer: I never tried this on XPe but only XP Pro long time ago.

Thanks, I didn't know about HackFlags, and didn't run into it when
searching for info about SpeedStep either -- but it doesn't help much, it
only works on older hardware :(

I got what I needed though power management settings, and that's the
important part - so thanks anyway.


I found (through Google) a document explaining the possible HackFlags
settings, and there it boils down to it that bit 1 must be set to 1 to
enable SpeedStep --

"For systems that were developed and shipped before the Windows XP
release, and for all 440BX and 440MX-based systems"

My board doesn't fall in either category.


There is no P3 service key in my XPe target, nor in the default XP Pro
setup I installed on it, and I don't see much use in adding a parameter for
a driver that isn't there ;)


Apparently, newer boards do it differently, because SpeedStep _is_ working
and _can_ be disabled through the power policy.

Instead of P3.sys (Pentium 3 family?) there's an "intelppm.sys" listed as
driver for the processor, but its service key doesn't have a parameters
subkey.
 
K

KM

Lucvdv,

Basically for the reg.values to work the system has to use the legacy Intel SpeedStep applet interface.
However, I was under impression that it is not required to use ACPI 2.0 interfaces there and you can use the legacy applet interface
on other (not 4404 chipsets). I might be wrong though and never tested the HackFlags on other boards.

We are probably talking about the same doc. Here is the link for other readers and for archiving purposes:
http://www.codemonkey.org.uk/cruft/ProcessorPerfControl_09.doc

--
=========
Regards,
KM
Lucvdv,

Always On will indeed turn off some of the Intel's and AMD's ACPI features including Intel's SpeedStep and corresponding AMD's
PowerNow technologies.

However, in case you do need other power policy scheme to be enabled, did you try just disabling the SpeedStep directly? E.g.,
you
can set the following flag:
[HKLM\SYSTEM\CurrentControlSet\Services\P3\Parameters],HackFlags=dword:0 (basically you need to set the bit 0 to 0)

After this registry key entry is made or changed, XP will assume new processor performance control upon next boot.

Disclaimer: I never tried this on XPe but only XP Pro long time ago.

Thanks, I didn't know about HackFlags, and didn't run into it when
searching for info about SpeedStep either -- but it doesn't help much, it
only works on older hardware :(

I got what I needed though power management settings, and that's the
important part - so thanks anyway.


I found (through Google) a document explaining the possible HackFlags
settings, and there it boils down to it that bit 1 must be set to 1 to
enable SpeedStep --

"For systems that were developed and shipped before the Windows XP
release, and for all 440BX and 440MX-based systems"

My board doesn't fall in either category.


There is no P3 service key in my XPe target, nor in the default XP Pro
setup I installed on it, and I don't see much use in adding a parameter for
a driver that isn't there ;)


Apparently, newer boards do it differently, because SpeedStep _is_ working
and _can_ be disabled through the power policy.

Instead of P3.sys (Pentium 3 family?) there's an "intelppm.sys" listed as
driver for the processor, but its service key doesn't have a parameters
subkey.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top