Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 7 Aug 2002 02:07:03 -0300
From:      Mario Sergio Fujikawa Ferreira <lioux@FreeBSD.org>
To:        freebsd-hackers@FreeBSD.org
Cc:        Michael Nottebrock <michaelnottebrock@gmx.net>, Terry Lambert <tlambert2@mindspring.com>, Gary Jennejohn <garyj@jennejohn.org>, Aaron Seelyes <aseelye@urx.com>
Subject:   Cooling idle Athlon/Duron processors? (vcool)
Message-ID:  <20020807050725.96740.qmail@exxodus.fedaykin.here>

next in thread | raw e-mail | index | archive | help
Hi,

	I know that this surfaces every once in a while. However,
I thought I could try to add more information. I did a little digging
on the issue.
	This is related to the following thread:

Subject: AMD low power hacks

http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=utf-8&threadm=ai6g47%242aat%241%40FreeBSD.csie.NCTU.edu.tw&rnum=1&prev=/groups%3Fq%3Dfreebsd%2Bpciconf%2Bvcool%26hl%3Den%26lr%3D%26ie%3DUTF-8%26oe%3Dutf-8%26selm%3Dai6g47%25242aat%25241%2540FreeBSD.csie.NCTU.edu.tw%26rnum%3D1

	Well, I have been using this nice utility VCool under Windows
for quite some time. It has been able to decrease my CPU temperatures
from 60C to <50C. So, it's more than 10C decrease.

	VCool is available at http://vcool.occludo.net/. There is even
a Linux version there at http://vcool.occludo.net/VC_Linux.html. Of course,
the Linux version does not have all the features of the Windows version
but the main feature which is temperature decrease exists.

	Here goes a little summary of what I could understand of
both how and why VCool works:

-------------- (Begin - From VCool homepage)

	- Requirements:

	Chipset with a VT8371, VT82C691/693A/694 or VT8363 Northbridge
and a VT82C686x Southbridge (VIA KT133x or KX133) - limited support
for AMD 761

-------

	- How it works:

	The Athlon (or Duron) enters a lower power state only when
its system bus is disconnected. However the (VIA-)Northbridge will
only disconnect the bus if its "Bus Disconnect Enable" bit is set
and the CPU is in STPGNT state.  VCool allows you to enable this
bit so your CPU can relax when there's nothing to do.

	Setting this bit might not be enough on some systems as the
idle loop provided with the OS will not put the CPU into
the STPGNT state recognized by the Northbridge.  For those
cases VCool includes an internal idle loop that forces the
CPU into the STPGNT mode required by the Northbridge to
initiate a bus disconnect.

-------

	- I see no cooling effect: (this is important for those
	testing the idea or questioning why this would work better
	than any ACPI support we already have)

	1) Make sure your system is idle when VCool is not running:
Software coolers will have no effect on busy systems. Use the task
manager (W2K) or Wintop (W98) to see if there are any threads eating
up time (e.g. SETI@home).

	2) Start VCool and set the NB Cool Bit but deactivate the
loop. Check again that your system is still idle.

	3) Still no temperature drop? Then enable the idle loop.
When you check utilization you should see that VCool eats up most
of the CPU time now.

	On newer systems the Halt Detect PCI option is often required to
achieve cooling. You can configure VCool to use this option instead
of the cool bit or even both.

NOTE: In some cases the idle loop might actually increase the
temperature with Halt Detect enabled, so try try deactivating the
loop.  If you still don't see any cooling effect, VCool doesn't
work on your system.

-------------- (End - From VCool homepage)

	A Linux version of VCool can be found at
http://vcool.occludo.net/VC_Linux.html . This version neither
supports AMD761 correctly NOR has Halt Detect PCI option.

	Here is a summary of how the Linux version works. Detailed information
on how it all should work can be found in
http://vcool.occludo.net/VC_Theory.html

	1) Check if CPU is either Atlhon or Duron AMD. Proceed if
	it is. Otherwise, stop;

	2) Detect NorthBridge chipset

		2.1) Set VIA=0, if it's neither 0x03051106,
		0x03911106 nor 0x06861106 (Gigabyte GA-7DXR ->
		AMD761+VIA686);

		2.2) Otherwise, VIA=1;

	3) If (VIA==1)

		3.1) Detect SouthBridge
			3.1.1) If chipset is neither 0x30571106 nor
			0x30571106, set VIA=0;

	4) If (VIA==0)

		4.1) Look all the possible addresses where either
		NorthBridge and SouthBridge could be;
			4.1.1) If chip is either 0x03051106 or 0x03911106,
				found VIA NorthBridge;
			4.1.2) If chip is 0x30571106, found VIA SouthBridge;
		4.2) If found both NorthBridge and SouthBridge
		chips, proceed. Otherwise, stop;

	5) SouthBridge, enable ACPI and find I/O-Space;

	6) NorthBridge, enable "Bus Disconnect when STPGNT detected"
	bit;

	7) Enter idle loop.


	Well, as you can notice, the AMD761 NorthBridge chipset is
not supported since (4.2) will obviously never detect both NorthBridge
and SouthBridge VIA chips. Also, there is no support for "Halt
Detect PCI" option. Furthermore, since some systems cool better
WITHOUT the idle loop as noted in the information from VCool homepage,
this design is not optimal.

	Well, what we need to fix... Wishlist:

	1) AMD761 NorthBridge has specific support to disconnect
	the bus when entering either HLT or GRANT/STOP states

		1.1) According to "AMD-761 System Controller
		Software/BIOS Design Guide" page 62
		http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/24081.pdf

		"BIU0 Status/Control (Dev0:F0:0x60) Bit 18 controls this" 
		
		"Bit 18 - Halt_Discon_En - Halt Disconnect Enable 
		0 = No AMD Athlon system bus disconnect is performed following HALT
		1 = AMD Athlon system bus disconnects after receiving a HALT special cycle."


		"Bit 17 - Stp_Grant_ Discon_En - Stop Grant Disconnect Enable
		0 = No AMD Athlon processor system bus disconnect is performed following STOP/GRANT.
		1 = AMD Athlon processor system bus disconnects after receiving a STOP/GRANT special"

		We need to set bits both 17 and 18 to 1. Then proceed
		to SouthBridge as usual.

	2) Add "Halt Detect PCI" option

		Have no idea about this. Anyone? Actually, what does this option mean?

	3) Optional idle loop

		Just add a command line option to either idle or not

	4) Add option to either enable or disable the "cool" bit
	since it is possible that this bit might have adverse effects
	on system behavior. Good for testing


	Anyone up for this? I think this is a nice addition for AMD processor
owners.

	Regards,	

* Related information:

- AMD-761 System Controller Revision Guide
- talks about problems with ACPI modes, HLT, STOP, GRANT
http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/23613.pdf

-- 
Mario S F Ferreira - DF - Brazil - "I guess this is a signature."
Computer Science Undergraduate | FreeBSD Committer | CS Developer
flames to beloved devnull@someotherworldbeloworabove.org
feature, n: a documented bug | bug, n: an undocumented feature

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020807050725.96740.qmail>