The HLT signal which is used by the normal idle-loop of the Linux kernel does not bring any significant power-saving on processors of the Athlon/Duron family (hereafter referred to as Athlon processors). To get real power-saving on an Athlon processor, you have to put the processor in the STPGNT-Mode (Stop Grant Mode). In this mode, the processor is disconnected from the front-side bus (FSB), and can turn off parts of the CPU as well as reduce the clock to save power.
Some modern Motherboards/Chipsets also support a Function to make a STPGNT when a HLT signal is detected.
This document, Athlon Powersaving HOWTO, is copyrighted (c) 2003 by Daniel Nofftz.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is available at http://www.gnu.org/copyleft/fdl.html.
Linux is a registered trademark of Linus Torvalds.
No liability for the contents of this document can be accepted. Use the concepts, examples and information at your own risk. There may be errors and inaccuracies, that could be damaging to your system. Proceed with caution, and although this is highly unlikely, the author(s) do not take any responsibility.
All copyrights are held by their respective owners, unless specifically noted otherwise. Use of a term in this document should not be regarded as affecting the validity of any trademark or service mark. Naming of particular products or brands should not be seen as endorsements.
Feedback is most essential for this document. New solutions for new chipsets are especially needed. And I need comments, whether the provided solutions work or don't work. Send your additions, comments and criticisms to the following email address: <email@example.com.NOSPAM>.
You can email me in German or English!
The newest version of this HOWTO will always first be made available here.
In the following section I present different approaches to achieve the same goal: power-saving on your Athlon-based system. My recommended approach at the moment is to use the "command-line hack," because the kernel patch is outdated and will not be developed any further, and the LVCool patch supports only one chipset family. The athcool program sounds good, but I haven't tested it myself.
Nearly all of these approaches will set the " Disconnect enable when STPGNT detected" bit in the north bridge of the chipset. All other work is done by the ACPI subsystem of the kernel which sends a STPGNT signal to the processor, when it enters the acpi-c2 idle mode.
If you haven't already got a kernel with ACPI support, you have to enable it in the kernel setup and then recompile the new kernel. You'll find the ACPI-options under+ -> . You must have at least the following options: , and
Or for the new 2.4.22 Kernel:+ . You must have at least the following option: .
Some Chipsets also support a STPGNT if a HLT signal is detected. This Motherboards/Chipsets don't need ACPI to be enabled! At the moment i look for feedback which Chipsets work without ACPI and which need ACPI. Maybee you could test it on your Motherboard and send me a mail. (see Section 3.1)
To use the command-line hack you normaly have to enable ACPI in the kernel, otherwise it is mentioned. No reboot is needed to enable the Powersaving. You could enable/disbale it from the command line with this commands:
Athcool is a small program which performs the same task as the setpci commands above. It supports the same chipsets and detects what chipset you have, issuing the right settings in the chipset to get the power-saving to work.
You can read more about it (and download it) here.
On some newer boards the manufacturer provides a BIOS update which sets the needed bit/bits in the chipset of the board (or let you choose in the BIOS-setup whether it should be enabled). Refer to the homepage of your motherboard manufacturer to see if such a BIOS-update is available.
My patch is based on another patch (from Jan Niehusmann) I found on the Newsnet. I modified the patch to also support the KT266/266A chipset. By the way, my patch does the same as the command-line hack, except from within the kernel. This is why I recommend using the command-line hack, which is really simple to use.
Ok... now step by step, here's how to apply the patch:
LVCool is a small port of the Windows programm VCool. It only supports the KT133/133A and KX133 chipset and I can't provide support for it. You can download it here. This solutions needs no ACPI compiled in the kernel.
Here is another Powersaving program which supports several chipsets. I didn't test it by myself but i heared it works. Check it out ... There is also a program provided with which you could use the onboard monitoring chips on some motherboards (like the lm-sensors package).
There is a kernel module which enables powersaving on the 760MP multiprocessor chipset. You could find it here. I don't know how good it works, but i got at least one mail from someone who said it works for him. So check it out.
Ok ... you use one of the described powersaving possibilitys and you want to verify, whether it works. Here are two ways to check it:
If you have temperature controlled Fan on your CPU-Heatsink, you could check for the noise level of the Fan to see whether it works or not. After a few idle minutes you give the CPU somthing to do.
After about 20 or 30 seconds you should notice that the noise of the fan is getting louder while the fan is getting faster. Don't forget to end the while-loop after some time ( a few minutes) with STRG-C.
I normaly do it like this:
The same procedure as above works also with a monitoring program for the cpu-temperature (like lm-sensors or xmbmon).
There are two known bugs in the Athlon/Duron processor. This is number 11 and number 14 in the AMD Athlon Processor Revision Guide. It looks like the Athlon XP is significantly less often affected by these bugs. So if you have an Athlon XP you are on the lucky side (like me).
There could be following problems (caused by the bugs):
Sometimes a BIOS-update will help (it exists as a workaround for bug 11, which could be done by the BIOS). But as far as I know there are only a few boards out there which have this workaround in the BIOS.
For the Asus A7V133-C, it is known that the BIOS-option PCI master read caching will solve most problems when it is enabled. So look at your BIOS to see whether it has such functionality.
It is also known that on some boards, the BIOS option Delayed Transaction solves some of the problems. You may want to give this option a try too.
WARNING: On boards with KT133A, this could enable the famous VIA-Southbridge bug!
From a Newsnet post, regarding Asus A7V:
There are other causes for problems:
If you have minor problems with power-saving enabled, and nevertheless want to use power-saving, you can enable the power-saving by default, and turn it off if you want to playback music, watch TV, ...
Adding more chipsets and more informations to this document.
Maybe make a motherboard list with "working" and "not working" marks.