[coreboot] How to access temperature sensors on 'modern' thinkpads?

Charlotte Plusplus pluspluscharlotte at gmail.com
Mon Nov 28 02:49:55 CET 2016


Hello

I am still interested in lowering the power consumption. To try to find the
culprit, I am thinking about monitoring temperature sensors.

On the W520 specs, I see on p 70 ("Thermal sensor"):
S0: PCH/BASE COVER
S1: NVIDIA
S2: GBE
S3: WWAN
S4: DIMM(TOP)
S5: DIMM(BOTTOM)
S6: WLAN
S7: EXPRESS SLOT

On the W530 specs, I see on p 69 ("Thermal sensor"):
S0: PCH/BASE COVER
S1: NVIDIA
S2: DIMM(TOP)
S3: WLAN
S4: N/A
S5: DIMM(BOTTOM)
S6: GBE & WWAN

So basically, on the specs, I see at least 7 temperature sensors, connected
straight to a smbus  chip (EMC1438-2-AP-TR-GP on a w520) or straight to the
new EC (MEC1619L-GP on a w530). But I can't read any of them: even when
using the default bios on a W530, I can't get any data.

Apparently the userland tools do not support new thinkpads:
/proc/acpi/ibm/thermal shows nothing. lm-sensors doesn't help - I only get
the CPU sensors

Using ec_access, the offsets used on older thinkpads (as seen on
http://www.thinkwiki.org/wiki/Thermal_Sensors) remain at 0,

In case the temperatures are shown on other offsets, I tried to acquire
values for 3600 seconds while doing periods of activity. Plotting all the
offset only shows temperature-like readings on 0x78 (the 121st entry).
Other candidates with non-zero activity are the 48, 133, 134, 171, 205, and
206 entries, but the plot doesn't look like temperature readings (CSV data
available upon request)

So where is the data from these 7 temperature sensors??

I was told the Thinker1 can be accessed by writing to the EC, and exposes
more values, but I don't have any example on how to do that.

In the W530 specs, I read "To be monitor S4/5/6 line, EC should enable the
function with register" - but I can only read one sensor. I suppose this is
what was meant by accessing the Thinker 1.

Anyone has any example??

After some googling, I found a reference to an advanced temperature
management mode on
https://sourceforge.net/p/ibm-acpi/mailman/ibm-acpi-devel/?viewmonth=201104
: but nothing about how to use it.

In the W520 specs, I read:
H8 I2C Bus 2 ADDRESS : 4DH

Resistor value | SMBUS Address
GND              | 1001 100, 4Ch
270                | 1001 101, 4Dh
560                | 1001 110, 4Eh
1K                 | 1001 111, 4Fh
1.5K              | 1001 001, 49h
2.7K              | 1001 010, 4Ah
5.6K              | 1001 011, 4Bh
>=18K           | 0011 000, 18h

Based on my best guess, I suppose on the w520, reading some special address
on the smbus will get me that data from that temperature sensors, as
selected by a resistor. But I get nothing with i2cdump -y 6 0x4C bp

Is there some code showing how to read the temperature sensors on either a
xx20 serie thinkpad or a xx30 serie thinkpad?

Thanks
Charlotte
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20161127/16d5495c/attachment.html>


More information about the coreboot mailing list