<title>Basics on the Athlon Power Saving Mode</title>
<para>
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.
</para>
</sect2>
<!-- Legal Sections -->
<sect2id="copyright">
<title>Copyright and License</title>
<!-- The LDP recommends, but doesn't require, the GFDL -->
<para>
This document, <emphasis>Athlon Powersaving HOWTO</emphasis>,
is copyrighted (c) 2003 by <emphasis>Daniel Nofftz</emphasis>.
</para>
<para>
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
<ulinkurl="http://www.gnu.org/copyleft/fdl.html">
http://www.gnu.org/copyleft/fdl.html</ulink>.
</para>
<para>
Linux is a registered trademark of Linus Torvalds.
</para>
</sect2>
<sect2id="disclaimer">
<title>Disclaimer</title>
<para>
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.
</para>
<para>
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.
</para>
</sect2>
<!-- Feedback -->
<sect2id="feedback">
<title>Feedback</title>
<para>
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
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 <quote>command-line hack,</quote> because the kernel patch is outdated and
will not be developed any further, and the <emphasis>LVCool</emphasis> patch supports only one chipset family.
The <emphasis>athcool</emphasis> program sounds good, but I haven't tested it myself.
</para>
<para>
All these approaches will set the <quote>Disconnect eable when STPGNT detected</quote> bit
in the north bridge of the chipset. Nothing more and nothing less than that. 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. (Only the LVCool solution takes
a different way ...)
</para>
<para>
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 <menuchoice><guimenu>General Setup</guimenu><guimenu>Power Management Setup</guimenu><guimenuitem>ACPI</guimenuitem></menuchoice>. You must have at least the following options: <guimenuitem>ACPI Bus Manager</guimenuitem>, <guimenuitem>System</guimenuitem> and <guimenuitem>Processor.</guimenuitem>
</para>
<sect2id="commandline">
<title>The Command-line Hack</title>
<para>
To use the command-line hack you have to enable ACPI in the kernel. How you can do this is described in <xreflinkend="patch"/>. If you already have a kernel with ACPI-processor support, you can enable/disable the
power-saving right from the command-line without any need for rebooting.
Apply the patch: <command>cat $path-to-patch/amd_cool.diff | patch -p0</command>
</para>
</step>
<step>
<para>
<command>cd linux</command>
</para>
</step>
<step>
<para>
Make the new kernel
</para>
</step>
<step>
<para>
Reboot, and at the kernel boot-prompt, enter the statement <userinput> amd_disconnect=yes </userinput>. This is because there are known bugs within the Athlon processor, which could cause problems on several boards. You should test the patch, and if it works, you can append the statement <userinput> amd_disconnect=yes </userinput> to the file <filename>/etc/lilo.conf</filename>.
</para>
</step>
</procedure>
</sect2>
<sect2id="lvcool">
<title>The LVCool Solution</title>
<para>
<emphasis>LVCool</emphasis> is a small port of the Windows programm
<ulinkurl="http://vcool.occludo.net/">
VCool</ulink>. It only supports the KT133/133A and KX133 chipset and
I can provide no support for it. You can download it
here</ulink>. This is the only solution which does not use the ACPI
system of the Linux kernel.
</para>
</sect2>
</sect1>
<sect1id="else">
<title>What Else?</title>
<sect2id="bugs">
<title>Known Bugs/Problems</title>
<para>There are two known bugs in the Athlon/Duron processor. This is number
11 and number 14 in the <citetitle>AMD Athlon Processor Revision Guide</citetitle>. 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).</para>
<para>There could be following problems (caused by the bugs):
<itemizedlist>
<listitem>
<para>skips during sound playback</para>
</listitem>
<listitem>
<para>skips and slowdown during video playback</para>
</listitem>
<listitem>
<para>slowdown of the ultra-DMA harddisk transfers</para>
</listitem>
<listitem>
<para>system hangs</para>
</listitem>
</itemizedlist>
</para>
<para>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.</para>
<para>For the Asus A7V133-C, it is known that the BIOS-option <option>PCI master read caching</option> will solve most problems when it is enabled. So look
at your BIOS to see whether it has such functionality.</para>
<para>It is also known that on some boards, the BIOS option <option>Delayed Transaction</option> solves some of the problems. You may want to give this option a try too.</para>
<para>WARNING: On boards with KT133A, this could enable the famous VIA-Southbridge bug!</para>
<para>From a Newsnet post, regarding Asus A7V:
<itemizedlist>
<listitem>
<para>without delayed transaction: sound-skips and TV-skips</para>
</listitem>
<listitem>
<para>with delayed transaction: no sound skips and only slight TV problems</para>
</listitem>
<listitem>
<para>with delayed transcation and master read caching: nearly no TV problems and no sound skips at all</para>
</listitem>
</itemizedlist>
</para>
<para>There are other causes for problems:
<itemizedlist>
<listitem>
<para>the PSU is not strong enough to handle the fluctuations in the power consumption of the processor/motherboard</para>
</listitem>
<listitem>
<para>some motherboard voltage-regulators could have the same problems like the PSU ;)</para>
</listitem>
<listitem>
<para>you have a K7S5A (as far as I know, this board could be really wired when power-saving is enabled)</para>
</listitem>
</itemizedlist>
</para>
<para>
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, ...
</para>
</sect2>
<sect2id="todo">
<title>ToDo</title>
<para>Adding more chipsets and more informations to this document.</para>
<para>Maybe make a motherboard list with <quote>working</quote> and <quote>not working</quote> marks.</para>
</sect2>
<sect2id="translations">
<title>Translations</title>
<para>
Translations into different languages also exist. At the moment, most of
them are translations of the pre-XML version of this document.