1 |
62 |
marcus.erl |
Kernel driver k8temp
|
2 |
|
|
====================
|
3 |
|
|
|
4 |
|
|
Supported chips:
|
5 |
|
|
* AMD Athlon64/FX or Opteron CPUs
|
6 |
|
|
Prefix: 'k8temp'
|
7 |
|
|
Addresses scanned: PCI space
|
8 |
|
|
Datasheet: http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/32559.pdf
|
9 |
|
|
|
10 |
|
|
Author: Rudolf Marek
|
11 |
|
|
Contact: Rudolf Marek
|
12 |
|
|
|
13 |
|
|
Description
|
14 |
|
|
-----------
|
15 |
|
|
|
16 |
|
|
This driver permits reading temperature sensor(s) embedded inside AMD K8
|
17 |
|
|
family CPUs (Athlon64/FX, Opteron). Official documentation says that it works
|
18 |
|
|
from revision F of K8 core, but in fact it seems to be implemented for all
|
19 |
|
|
revisions of K8 except the first two revisions (SH-B0 and SH-B3).
|
20 |
|
|
|
21 |
|
|
Please note that you will need at least lm-sensors 2.10.1 for proper userspace
|
22 |
|
|
support.
|
23 |
|
|
|
24 |
|
|
There can be up to four temperature sensors inside single CPU. The driver
|
25 |
|
|
will auto-detect the sensors and will display only temperatures from
|
26 |
|
|
implemented sensors.
|
27 |
|
|
|
28 |
|
|
Mapping of /sys files is as follows:
|
29 |
|
|
|
30 |
|
|
temp1_input - temperature of Core 0 and "place" 0
|
31 |
|
|
temp2_input - temperature of Core 0 and "place" 1
|
32 |
|
|
temp3_input - temperature of Core 1 and "place" 0
|
33 |
|
|
temp4_input - temperature of Core 1 and "place" 1
|
34 |
|
|
|
35 |
|
|
Temperatures are measured in degrees Celsius and measurement resolution is
|
36 |
|
|
1 degree C. It is expected that future CPU will have better resolution. The
|
37 |
|
|
temperature is updated once a second. Valid temperatures are from -49 to
|
38 |
|
|
206 degrees C.
|
39 |
|
|
|
40 |
|
|
Temperature known as TCaseMax was specified for processors up to revision E.
|
41 |
|
|
This temperature is defined as temperature between heat-spreader and CPU
|
42 |
|
|
case, so the internal CPU temperature supplied by this driver can be higher.
|
43 |
|
|
There is no easy way how to measure the temperature which will correlate
|
44 |
|
|
with TCaseMax temperature.
|
45 |
|
|
|
46 |
|
|
For newer revisions of CPU (rev F, socket AM2) there is a mathematically
|
47 |
|
|
computed temperature called TControl, which must be lower than TControlMax.
|
48 |
|
|
|
49 |
|
|
The relationship is following:
|
50 |
|
|
|
51 |
|
|
temp1_input - TjOffset*2 < TControlMax,
|
52 |
|
|
|
53 |
|
|
TjOffset is not yet exported by the driver, TControlMax is usually
|
54 |
|
|
70 degrees C. The rule of the thumb -> CPU temperature should not cross
|
55 |
|
|
60 degrees C too much.
|