LPN-Text


LPN-Logo
SourceForge Logo

Hi! I'm Robos.

I built my new pc and in that is a 8hda3+. The german computer magazine c't mentioned it as being quite nice so I bought it. There were NO sites at that time mentioned in google.com/linux regarding this board. Here the manufacturer site: epox 8hda3+.
Nearly everything works out of the box, including sound and sata (if you run recent kernels, something like >2.4.25 and > 2.6.4 I think). One problem persisted with the board, that being cool'n quiet (aka powernow) support. The cpu is capable of running at different frequencies and core voltages. The lowest frequency is 800 Mhz. But I simply quote Paul Devriendt from amd.com (who helped a lot in fixing the problem):
It gets complicated, but the basics are:
- frequencies step in 200 MHz intervals
- there is a low table and a high table
- high table is >= 1600 MHz
- low table is <= 1400 MHz
- you can only jump between the low table and high table at portal frequencies
- portal frequencies are low_tabel_entry * 2 and low_table_entry * 2 + 200
- as an example, the only jumps from 800 are 1600 and 1800 MHz
- lowest speed is 800
- lowest speed must be >= bus speed (which is typically 800 in desktop/laptop and 1000 in server)
Normally linux reads the supported frequencies from the bios, either by the newer acpi subsystem or via the older PST system. Win2000 uses the old PST system whereas XP uses acpi. None of these worked under 2.6.7 out of the box. So either the support in this bios ( 02.12.2003 version - others here: http://www.epox.de/techsupp/downloads_anzeige.asp)is heavily broken or linux can't determine the positions and values correctly.
Aaannyway, to cut things short, Paul gave me a hardcoded frequencies powernow-k8 (this is the driver for the cool'n quiet feature) driver. This is processor specific! I use a Athlon64 3000+ and it works fine. The driver is powernow-k8.c and the header file powernow-k8.h. This has to go into /usr/src/linux-2.6.7-rc3/arch/i386/kernel/cpu/cpufreq/.
If you look inside of powernow-k8.c you find some #if 0 and #if 1 which comment out or include some frequencies. You might want to adjust that to your liking (just look, easy to understand - 1 compiles this in (and use only one 1!))
After a "make" in /usr/src/linux-2.6.7-rc3 you can
$ cp arch/i386/kernel/cpu/cpufreq/powernow-k8.ko /lib/modules/2.6.7-rc3/kernel/arch/i386/kernel/cpu/cpufreq/ Mind you, for this to work in (at least) 2.6.7-rc3 I had to set CONFIG_ACPI_PROCESSOR=y (in /usr/src/linux-2.6.7-rc3/.config), m (as module) is NOT sufficient! This is the processor setting in the acpi submenu in the kernel config.
A modprobe powernow-k8 did the trick then. Here is the dmesg I get:
powernow-k8: Found 1 AMD Athlon 64 / Opteron processors (version 1.00.09e-builtin)
powernow-k8: BIOS error: using hardcoded table
powernow-k8: currfid c, currvid 2
powernow-k8: cpu_init done, current fid 0xc, vid 0x2

The important info files are in sysfs then, here: /sys/devices/system/cpu/cpu0/cpufreq
You can query the current cpu speed with
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
These frequencies are possible:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
You can set the cpu speed with
echo "800000"> /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq should show now 800000.
(if these files don't exist, you might have to do this:
modprobe cpufreq_userspace
echo "userspace" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
)

Here is another quote from Paul:
> Also, what do you think, does your hardcoded frequency code
> also work with 3200+ and up? Only in the athlon64 range I mean. Not opterons.
Yes, but you need to get the correct values for the processor from
the thermal/power doc on AMD's web site. New rev Opterons can also
do it.

Other infos regarding which modules to load and such will be here (sometime soon)


News


23.6.2004: This page here upped

Last update: Thursday, 12-Nov-2009 12:21:33 CET

Due to some judgements in recent time I hereby want to express that I'm not involved in other sites I may link to from this page.
 

Links

Gnu-Logo
epox 8hda3+
new bios
powernow-k8.c
powernow-k8.h

Comments, Errata? Contact robos!
Page counter: 8217