Kernel driver coretemp

Supported chips:
  • All Intel Core family

    Prefix: ‘coretemp’

    CPUID: family 0x6, models

    • 0xe (Pentium M DC), 0xf (Core 2 DC 65nm),
    • 0x16 (Core 2 SC 65nm), 0x17 (Penryn 45nm),
    • 0x1a (Nehalem), 0x1c (Atom), 0x1e (Lynnfield),
    • 0x26 (Tunnel Creek Atom), 0x27 (Medfield Atom),
    • 0x36 (Cedar Trail Atom)

    Datasheet:

    Intel 64 and IA-32 Architectures Software Developer’s Manual Volume 3A: System Programming Guide

    http://softwarecommunity.intel.com/Wiki/Mobility/720.htm

Author: Rudolf Marek

Description

This driver permits reading the DTS (Digital Temperature Sensor) embedded inside Intel CPUs. This driver can read both the per-core and per-package temperature using the appropriate sensors. The per-package sensor is new; as of now, it is present only in the SandyBridge platform. The driver will show the temperature of all cores inside a package under a single device directory inside hwmon.

Temperature is measured in degrees Celsius and measurement resolution is 1 degree C. Valid temperatures are from 0 to TjMax degrees C, because the actual value of temperature register is in fact a delta from TjMax.

Temperature known as TjMax is the maximum junction temperature of processor, which depends on the CPU model. See table below. At this temperature, protection mechanism will perform actions to forcibly cool down the processor. Alarm may be raised, if the temperature grows enough (more than TjMax) to trigger the Out-Of-Spec bit. Following table summarizes the exported sysfs files:

All Sysfs entries are named with their core_id (represented here by ‘X’).

tempX_input Core temperature (in millidegrees Celsius).
tempX_max All cooling devices should be turned on (on Core2).
tempX_crit Maximum junction temperature (in millidegrees Celsius).
tempX_crit_alarm Set when Out-of-spec bit is set, never clears. Correct CPU operation is no longer guaranteed.
tempX_label Contains string “Core X”, where X is processor number. For Package temp, this will be “Physical id Y”, where Y is the package number.

On CPU models which support it, TjMax is read from a model-specific register. On other models, it is set to an arbitrary value based on weak heuristics. If these heuristics don’t work for you, you can pass the correct TjMax value as a module parameter (tjmax).

Appendix A. Known TjMax lists (TBD): Some information comes from ark.intel.com

Process Processor TjMax(C)
22nm Core i5/i7 Processors i7 3920XM, 3820QM, 3720QM, 3667U, 3520M i5 3427U, 3360M/3320M i7 3770/3770K i5 3570/3570K, 3550, 3470/3450 i7 3770S i5 3570S/3550S, 3475S/3470S/3450S i7 3770T i5 3570T i5 3470T 105 105 105 105 103 103 94 94 91
32nm Core i3/i5/i7 Processors i7 2600 i7 660UM/640/620, 640LM/620, 620M, 610E i5 540UM/520/430, 540M/520/450/430 i3 330E, 370M/350/330 i3 330UM 98 105 105 90 rPGA, 105 BGA 105
32nm Core i7 Extreme Processors 980X 100
32nm Celeron Processors U3400 P4505/P4500 105 90
32nm Atom Processors S1260/1220 S1240 Z2460 Z2760 D2700/2550/2500 N2850/2800/2650/2600 95 102 90 90 100 100
45nm Xeon Processors 5400 Quad-Core X5492, X5482, X5472, X5470, X5460, X5450 E5472, E5462, E5450/40/30/20/10/05 L5408 L5430, L5420, L5410 85 85 95 70
45nm Xeon Processors 5200 Dual-Core X5282, X5272, X5270, X5260 E5240 E5205, E5220 L5240 L5238, L5215 90 90 70, 90 70 95
45nm Atom Processors D525/510/425/410 K525/510/425/410 Z670/650 Z560/550/540/530P/530/520PT/520/515/510PT/510P Z510/500 N570/550 N475/470/455/450 N280/270 330/230 E680/660/640/620 E680T/660T/640T/620T E665C/645C E665CT/645CT CE4170/4150/4110 CE4200 series CE5300 series 100 100 90 90 90 100 100 90 125 90 110 90 110 110 unknown unknown
45nm Core2 Processors Solo ULV SU3500/3300 T9900/9800/9600/9550/9500/9400/9300/8300/8100 T6670/6500/6400 T6600 SU9600/9400/9300 SP9600/9400 SL9600/9400/9380/9300 P9700/9600/9500/8800/8700/8600/8400/7570 P7550/7450 100 105 105 90 105 105 105 105 90
45nm Core2 Quad Processors Q9100/9000 100
45nm Core2 Extreme Processors X9100/9000 QX9300 105 100
45nm Core i3/i5/i7 Processors i7 940XM/920 i7 840QM/820/740/720 100 100
45nm Celeron Processors SU2300 900 100 105
65nm Core2 Duo Processors Solo U2200, U2100 U7700/7600/7500 T7800/7700/7600/7500/7400/7300/7250/7200/7100 T5870/5670/5600/5550/5500/5470/5450/5300/5270 T5250 T5800/5750/5200 L7700/7500/7400/7300/7200 100 100 100 100 100 85 100
65nm Core2 Extreme Processors X7900/7800 100
65nm Core Duo Processors U2500/2400 T2700/2600/2450/2400/2350/2300E/2300/2250/2050 L2500/2400/2300 100 100 100
65nm Core Solo Processors U1500/1400/1300 T1400/1350/1300/1250 100 100
65nm Xeon Processors 5000 Quad-Core X5000 E5000 L5000 L5318 90-95 80 70 95
65nm Xeon Processors 5000 Dual-Core 5080, 5063, 5060, 5050, 5030 5160, 5150, 5148, 5140, 5130, 5120, 5110 L5138 80-90 80 100
65nm Celeron Processors T1700/1600 560/550/540/530 100 100