Bug 57861

Summary: Temperature sensors for ITE's 8603
Product: Drivers Reporter: Filipus Klutiero (chealer)
Component: Hardware MonitoringAssignee: Jean Delvare (jdelvare)
Status: VERIFIED CODE_FIX    
Severity: normal CC: petr.pisar
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 3.9 Subsystem:
Regression: No Bisected commit-id:

Description Filipus Klutiero 2013-05-09 13:12:00 UTC
The ability to read temperature sensors from ITE's 8603 Super I/O chip would be greatly appreciated for the ASUS F2A85-M motherboard. Currently, lm-sensors fails to detect the board's sensors:

Trying family `ITE'...                                      Yes
Found unknown chip with ID 0x8603
    (logical device 4 has address 0x290, could be sensors)

Unfortunately, ITE didn't provide specifications despite a request from Rudolf Marek. In fact, ITE doesn't even acknowledge the existence of that chip. The situation is similar to IT8771E.

A patch against lm-sensors was written: http://lists.lm-sensors.org/pipermail/lm-sensors/2012-November/037753.html
David Hubbard provided a Linux patch for it87 later in that thread (continuing in December) providing experimental support, which I didn't test.

The BIOS from ASUS displays CPU temperature. Contacting ASUS and letting them know that some of their users go beyond their flashy BIOS might be the only way to get specifications (but that didn't work or wasn't attempted in IT8771E's case).
Comment 1 Petr Pisar 2013-09-22 12:28:02 UTC
The link is wrong. Correct one is <http://lists.lm-sensors.org/pipermail/lm-sensors/2012-November/037694.html>.
Comment 2 Jean Delvare 2013-11-22 12:41:22 UTC
Experimental support for the ITE IT8603E hardware monitoring features is now available. As a patch at:
http://khali.linux-fr.org/devel/linux-3/jdelvare-hwmon/hwmon-it87-01-add-it8603e-support.patch

Or as a standalone driver at:
http://khali.linux-fr.org/devel/lm-sensors/drivers/it87/

Please test and report.
Comment 3 Petr Pisar 2013-11-22 14:05:12 UTC
Thanks. It gets detected and shows data on my F2A85-M motherboard with 6404 version EFI firmware:

it8603-isa-0290
Adapter: ISA adapter
in0:          +0.85 V  (min =  +0.40 V, max =  +2.89 V)
in1:          +1.50 V  (min =  +1.73 V, max =  +2.92 V)  ALARM
in2:          +2.03 V  (min =  +1.73 V, max =  +1.74 V)  ALARM
in3:          +1.99 V  (min =  +1.73 V, max =  +0.84 V)  ALARM
in4:          +1.20 V  (min =  +2.52 V, max =  +2.50 V)  ALARM
3VSB:         +3.31 V  (min =  +4.99 V, max =  +3.74 V)  ALARM
Vbat:         +3.19 V  
+3.3V:        +3.41 V  
fan1:        1814 RPM  (min =  200 RPM)
fan2:        1280 RPM  (min =  200 RPM)
temp1:        +41.0°C  (low  = -123.0°C, high =  +0.0°C)  ALARM  sensor = thermistor
temp2:        +34.0°C  (low  = +96.0°C, high = +52.0°C)  sensor = thermistor
temp3:       -128.0°C  (low  = +24.0°C, high = -80.0°C)  sensor = thermistor
intrusion0:  OK

I guess the alarm boundaries come from user space. Because some of the values are inverted or simply wrong.
Comment 4 Jean Delvare 2013-11-22 14:17:12 UTC
Yes, the limits are uninitialized and must be set from user-space. You'll have to figure out the voltage mapping first though. See my guide for how you could do that:

http://www.lm-sensors.org/wiki/VoltageLabelsAndScaling

in0 is most certainly Vcore. in1 could be Vddr3. in2 and in3 must be +5V and +12V or the other way around - follow the guide to figure it out. in4 I don't know, maybe your BIOS will tell.

Note that you can add an ignore statement for temp3 as it's clearly not connected.
Comment 5 Filipus Klutiero 2017-07-23 23:55:11 UTC
This is visibly solved in Linux 4.9:

$ sensors it8603-isa-0290
it8603-isa-0290
Adapter: ISA adapter
in0:          +1.25 V  (min =  +0.52 V, max =  +2.71 V)
in1:          +1.50 V  (min =  +2.15 V, max =  +1.02 V)  ALARM
in2:          +1.99 V  (min =  +1.09 V, max =  +1.21 V)  ALARM
in3:          +2.05 V  (min =  +0.92 V, max =  +0.72 V)  ALARM
in4:          +1.20 V  (min =  +1.92 V, max =  +2.38 V)  ALARM
3VSB:         +3.31 V  (min =  +1.97 V, max =  +2.50 V)  ALARM
Vbat:         +3.22 V  
+3.3V:        +3.29 V  
fan1:        2220 RPM  (min =  200 RPM)
fan2:        1011 RPM  (min =  600 RPM)
temp1:        +46.0°C  (low  = -54.0°C, high = -78.0°C)  ALARM  sensor = thermistor
temp2:        +33.0°C  (low  = +31.0°C, high = -95.0°C)  ALARM  sensor = thermistor
temp3:       -128.0°C  (low  = -123.0°C, high = +116.0°C)  sensor = thermistor
intrusion0:  OK

chealer@vinci:~/Téléchargements$ uname -a
Linux vinci 4.9.0-3-amd64 #1 SMP Debian 4.9.30-2+deb9u2 (2017-06-26) x86_64 GNU/Linux
chealer@vinci:~/Téléchargements$

And visibly, temp3 is not relevant as indicated in Comment #4.
Comment 6 Filipus Klutiero 2017-07-24 00:27:00 UTC
And this was visibly already solved in Linux 3.16 (Debian 8).