Saturday, November 22, 2008

GM965_temp can‘t be update to IGP_temp

Last updated 2008-12-24

At leaset can't be done as GM965 temperature report in following Intel IGP according to datasheet:

Short name Full name
G45 Intel® G45 Express Chipset
Q45 Intel® Q45 Express Chipset
G43 Intel® G43 Express Chipset
Q43 Intel® Q43 Express Chipset
GM45 Mobile Intel® GM45 Express Chipset
G35 Intel® G35 Express Chipset
Q35 Intel® Q35 Express Chipset
Q33 Intel® Q33 Express Chipset
G33 Intel® G33/G31 Express Chipset

In their datasheets, the "TR Temperature Read" Register can't be found. So the real time temperature report is unreachable. While the SMI temperature can be set, so BIOS programmer can do some jobs on it.

GM45 is a exception! It just had the similar regs as GM965, and I just add support
code for it. But need somebody to test it!

I just try to play my laptop's hardware. Such as HDAPS and ICH8. And the result is: ICH8's temperature subsystem hardware is unused in F31G, so I can't reach it through PCI access.While, HDAPS's embedded controller, I can't find it. I ananly it on Win32, and found it maybe can reach by ACPI PNP0C09 _HID Port 0x62 and 0x66.

Hwmon kernel module for GM965 IGP temp report

Last updated 2008-11-09

I just do it today, from this noon.
I refered k8temp, i5k_amb and so on hwmon kernel module sources. Then I ported my GM965_temp user mode tool to kernel mode.
Without much difficult except the sysfs under hwmon_init sysfs. So I had to stop and learn more about sysfs, and now I finished it.
But it need to improve to support more features, I will do it step by step.


http://lists.lm-sensors.org/pipermail/lm-sensors/2008-November/024658.html

http://lists.lm-sensors.org/pipermail/lm-sensors/attachments/20081109/9ccbabbb/attachment.obj

[SRC]GM965 Thermal Sensor detect program v0.3

Last updated: 2008-11-03

Dear all:

I haven't found a tool in linux to detect the temperature of GM965. So I just take some sources and try to write it to do it.
First, I try libpciaccess and learn from xf86-video-intel code. But I found the "pci_device_find_by_slot" function can't find the correct "Device 0"'s base_addr and size. So I search some code about the process of "MCHBAR", because I found the "Device 0 MCHBAR" contains "Thermal Sensor" Regs in Intel GM965 datasheet.
And I found coreboot's inteltool. At that time, I don't get the trac version code, so the inteltool code which I used is a bit old.
I focus on the "print_mchbar" funcion, and make a small revise on it to support GM965.
Then I can dump the MCHBAR Regs in GM965.
The other thing is much more easy, and I had a little trouble in transfering the TR1's value to Centigrade degree value. I just test the value some time and use a Magic number based on experience.

Now it seems to work.
Hope you like it.

Thank you for your orignal work, Stefan Reinauer.
Let's GNU/Linux.

http://www.coreboot.org/pipermail/coreboot/attachments/20081025/c7921f6c/attachment-0001.gz

Updated version: Add GM945 detect support, make a little adjustment of temprature report.

http://www.coreboot.org/pipermail/coreboot/attachments/20081026/0f52e1e7/attachment-0001.gz

2008-11-03 Updated version:

Use Intel's offical datasheet formula to transfer display.

http://lists.lm-sensors.org/pipermail/lm-sensors/2008-November/024623.html

http://lists.lm-sensors.org/pipermail/lm-sensors/attachments/20081103/38f7eac1/attachment.tgz