Rudolf Marek | d58ee05 | 2007-05-08 17:22:02 +0200 | [diff] [blame] | 1 | Kernel driver coretemp |
| 2 | ====================== |
| 3 | |
| 4 | Supported chips: |
| 5 | * All Intel Core family |
| 6 | Prefix: 'coretemp' |
Rudolf Marek | eccfed4 | 2009-09-23 22:59:42 +0200 | [diff] [blame] | 7 | CPUID: family 0x6, models 0xe (Pentium M DC), 0xf (Core 2 DC 65nm), |
| 8 | 0x16 (Core 2 SC 65nm), 0x17 (Penryn 45nm), |
Jean Delvare | fcc14ac | 2012-06-17 18:05:05 +0200 | [diff] [blame] | 9 | 0x1a (Nehalem), 0x1c (Atom), 0x1e (Lynnfield), |
Guenter Roeck | 5592906 | 2012-06-17 18:05:05 +0200 | [diff] [blame] | 10 | 0x26 (Tunnel Creek Atom), 0x27 (Medfield Atom), |
| 11 | 0x36 (Cedar Trail Atom) |
Rudolf Marek | d58ee05 | 2007-05-08 17:22:02 +0200 | [diff] [blame] | 12 | Datasheet: Intel 64 and IA-32 Architectures Software Developer's Manual |
| 13 | Volume 3A: System Programming Guide |
Rudolf Marek | ae77015 | 2008-01-18 00:50:04 +0100 | [diff] [blame] | 14 | http://softwarecommunity.intel.com/Wiki/Mobility/720.htm |
Rudolf Marek | d58ee05 | 2007-05-08 17:22:02 +0200 | [diff] [blame] | 15 | |
| 16 | Author: Rudolf Marek |
| 17 | |
| 18 | Description |
| 19 | ----------- |
Durgadoss R | 199e0de | 2011-05-20 01:29:35 +0530 | [diff] [blame] | 20 | This driver permits reading the DTS (Digital Temperature Sensor) embedded |
| 21 | inside Intel CPUs. This driver can read both the per-core and per-package |
| 22 | temperature using the appropriate sensors. The per-package sensor is new; |
| 23 | as of now, it is present only in the SandyBridge platform. The driver will |
| 24 | show the temperature of all cores inside a package under a single device |
| 25 | directory inside hwmon. |
Rudolf Marek | d58ee05 | 2007-05-08 17:22:02 +0200 | [diff] [blame] | 26 | |
Rudolf Marek | d58ee05 | 2007-05-08 17:22:02 +0200 | [diff] [blame] | 27 | Temperature is measured in degrees Celsius and measurement resolution is |
| 28 | 1 degree C. Valid temperatures are from 0 to TjMax degrees C, because |
| 29 | the actual value of temperature register is in fact a delta from TjMax. |
| 30 | |
Chen Gong | f3cffe4 | 2010-08-09 17:21:10 -0700 | [diff] [blame] | 31 | Temperature known as TjMax is the maximum junction temperature of processor, |
| 32 | which depends on the CPU model. See table below. At this temperature, protection |
Rudolf Marek | d58ee05 | 2007-05-08 17:22:02 +0200 | [diff] [blame] | 33 | mechanism will perform actions to forcibly cool down the processor. Alarm |
| 34 | may be raised, if the temperature grows enough (more than TjMax) to trigger |
| 35 | the Out-Of-Spec bit. Following table summarizes the exported sysfs files: |
| 36 | |
Durgadoss R | 199e0de | 2011-05-20 01:29:35 +0530 | [diff] [blame] | 37 | All Sysfs entries are named with their core_id (represented here by 'X'). |
| 38 | tempX_input - Core temperature (in millidegrees Celsius). |
| 39 | tempX_max - All cooling devices should be turned on (on Core2). |
| 40 | tempX_crit - Maximum junction temperature (in millidegrees Celsius). |
| 41 | tempX_crit_alarm - Set when Out-of-spec bit is set, never clears. |
Rudolf Marek | d58ee05 | 2007-05-08 17:22:02 +0200 | [diff] [blame] | 42 | Correct CPU operation is no longer guaranteed. |
Durgadoss R | 199e0de | 2011-05-20 01:29:35 +0530 | [diff] [blame] | 43 | tempX_label - Contains string "Core X", where X is processor |
| 44 | number. For Package temp, this will be "Physical id Y", |
| 45 | where Y is the package number. |
Rudolf Marek | d58ee05 | 2007-05-08 17:22:02 +0200 | [diff] [blame] | 46 | |
Jean Delvare | a45a8c8 | 2011-09-16 21:24:02 +0200 | [diff] [blame] | 47 | On CPU models which support it, TjMax is read from a model-specific register. |
| 48 | On other models, it is set to an arbitrary value based on weak heuristics. |
| 49 | If these heuristics don't work for you, you can pass the correct TjMax value |
| 50 | as a module parameter (tjmax). |
Chen Gong | f3cffe4 | 2010-08-09 17:21:10 -0700 | [diff] [blame] | 51 | |
| 52 | Appendix A. Known TjMax lists (TBD): |
| 53 | Some information comes from ark.intel.com |
| 54 | |
| 55 | Process Processor TjMax(C) |
| 56 | |
Guenter Roeck | 813441f | 2012-06-17 18:05:06 +0200 | [diff] [blame] | 57 | 22nm Core i5/i7 Processors |
| 58 | i7 3920XM, 3820QM, 3720QM, 3667U, 3520M 105 |
| 59 | i5 3427U, 3360M/3320M 105 |
| 60 | i7 3770/3770K 105 |
| 61 | i5 3570/3570K, 3550, 3470/3450 105 |
| 62 | i7 3770S 103 |
| 63 | i5 3570S/3550S, 3475S/3470S/3450S 103 |
| 64 | i7 3770T 94 |
| 65 | i5 3570T 94 |
| 66 | i5 3470T 91 |
| 67 | |
Chen Gong | f3cffe4 | 2010-08-09 17:21:10 -0700 | [diff] [blame] | 68 | 32nm Core i3/i5/i7 Processors |
| 69 | i7 660UM/640/620, 640LM/620, 620M, 610E 105 |
| 70 | i5 540UM/520/430, 540M/520/450/430 105 |
| 71 | i3 330E, 370M/350/330 90 rPGA, 105 BGA |
| 72 | i3 330UM 105 |
| 73 | |
| 74 | 32nm Core i7 Extreme Processors |
| 75 | 980X 100 |
| 76 | |
| 77 | 32nm Celeron Processors |
| 78 | U3400 105 |
| 79 | P4505/P4500 90 |
| 80 | |
Jean Delvare | fcc14ac | 2012-06-17 18:05:05 +0200 | [diff] [blame] | 81 | 32nm Atom Processors |
| 82 | Z2460 90 |
Guenter Roeck | 5592906 | 2012-06-17 18:05:05 +0200 | [diff] [blame] | 83 | D2700/2550/2500 100 |
| 84 | N2850/2800/2650/2600 100 |
Jean Delvare | fcc14ac | 2012-06-17 18:05:05 +0200 | [diff] [blame] | 85 | |
Chen Gong | f3cffe4 | 2010-08-09 17:21:10 -0700 | [diff] [blame] | 86 | 45nm Xeon Processors 5400 Quad-Core |
| 87 | X5492, X5482, X5472, X5470, X5460, X5450 85 |
| 88 | E5472, E5462, E5450/40/30/20/10/05 85 |
| 89 | L5408 95 |
| 90 | L5430, L5420, L5410 70 |
| 91 | |
| 92 | 45nm Xeon Processors 5200 Dual-Core |
| 93 | X5282, X5272, X5270, X5260 90 |
| 94 | E5240 90 |
| 95 | E5205, E5220 70, 90 |
| 96 | L5240 70 |
| 97 | L5238, L5215 95 |
| 98 | |
| 99 | 45nm Atom Processors |
| 100 | D525/510/425/410 100 |
| 101 | Z560/550/540/530P/530/520PT/520/515/510PT/510P 90 |
| 102 | Z510/500 90 |
| 103 | N475/470/455/450 100 |
| 104 | N280/270 90 |
| 105 | 330/230 125 |
Jean Delvare | fcc14ac | 2012-06-17 18:05:05 +0200 | [diff] [blame] | 106 | E680/660/640/620 90 |
| 107 | E680T/660T/640T/620T 110 |
Guenter Roeck | 1102dca | 2012-10-09 13:23:57 -0700 | [diff] [blame] | 108 | CE4170/4150/4110 110 |
Chen Gong | f3cffe4 | 2010-08-09 17:21:10 -0700 | [diff] [blame] | 109 | |
| 110 | 45nm Core2 Processors |
| 111 | Solo ULV SU3500/3300 100 |
| 112 | T9900/9800/9600/9550/9500/9400/9300/8300/8100 105 |
| 113 | T6670/6500/6400 105 |
| 114 | T6600 90 |
| 115 | SU9600/9400/9300 105 |
| 116 | SP9600/9400 105 |
| 117 | SL9600/9400/9380/9300 105 |
| 118 | P9700/9600/9500/8800/8700/8600/8400/7570 105 |
| 119 | P7550/7450 90 |
| 120 | |
| 121 | 45nm Core2 Quad Processors |
| 122 | Q9100/9000 100 |
| 123 | |
| 124 | 45nm Core2 Extreme Processors |
| 125 | X9100/9000 105 |
| 126 | QX9300 100 |
| 127 | |
| 128 | 45nm Core i3/i5/i7 Processors |
| 129 | i7 940XM/920 100 |
| 130 | i7 840QM/820/740/720 100 |
| 131 | |
| 132 | 45nm Celeron Processors |
| 133 | SU2300 100 |
| 134 | 900 105 |
| 135 | |
| 136 | 65nm Core2 Duo Processors |
| 137 | Solo U2200, U2100 100 |
| 138 | U7700/7600/7500 100 |
| 139 | T7800/7700/7600/7500/7400/7300/7250/7200/7100 100 |
| 140 | T5870/5670/5600/5550/5500/5470/5450/5300/5270 100 |
| 141 | T5250 100 |
| 142 | T5800/5750/5200 85 |
| 143 | L7700/7500/7400/7300/7200 100 |
| 144 | |
| 145 | 65nm Core2 Extreme Processors |
| 146 | X7900/7800 100 |
| 147 | |
| 148 | 65nm Core Duo Processors |
| 149 | U2500/2400 100 |
| 150 | T2700/2600/2450/2400/2350/2300E/2300/2250/2050 100 |
| 151 | L2500/2400/2300 100 |
| 152 | |
| 153 | 65nm Core Solo Processors |
| 154 | U1500/1400/1300 100 |
| 155 | T1400/1350/1300/1250 100 |
| 156 | |
| 157 | 65nm Xeon Processors 5000 Quad-Core |
| 158 | X5000 90-95 |
| 159 | E5000 80 |
| 160 | L5000 70 |
| 161 | L5318 95 |
| 162 | |
| 163 | 65nm Xeon Processors 5000 Dual-Core |
| 164 | 5080, 5063, 5060, 5050, 5030 80-90 |
| 165 | 5160, 5150, 5148, 5140, 5130, 5120, 5110 80 |
| 166 | L5138 100 |
| 167 | |
| 168 | 65nm Celeron Processors |
| 169 | T1700/1600 100 |
| 170 | 560/550/540/530 100 |