On 04/12/2015 06:37 AM, Ville Aakko wrote:
2015-04-11 5:12 GMT+03:00 Guenter Roeck <linux@xxxxxxxxxxxx>:
If the sensor is connected to AUXTIN[0123], it _should_ be working.
Hi Guenter, thanks for your reply!
At least for now, I haven't found anything in the registers which
could look like the data from the additional sensor (as additional
tools, I've used the room temperature, my hands, graphics card
heatsink, a glass of ice water, and a cold beer though I didn't put
the sensor in the latter).
But bear with me, I'm quite novice to these things, so I might have
done something wrongly here with isadump (though I think the
additional sensor is just being elusive). Below I will give my output
from the registers along with the isadump commands I have used.
So, unless you can give any more suggestions what I could try, I think
I can live with it for the time being - the additional sensor is
something nice to tinker with, but not that essential for my project
(but if I can provide any more information I will happily do so).
Registers to directly read temperatures from the chip are as follows:
Bank 4:
0x90 SYSTIN
0x91 CPUTIN
0x92 AUXTIN0
0x93 AUXTIN1
0x94 AUXTIN2
0x95 AUXTIN3
I think I have found these (so I think I have understod correctly how
to use isadump):
$ sudo isadump -y 0x295 0x296 4
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff
20: ff ff ff 96 64 96 64 e1 96 00 ff ff ff ff ff ff
30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
40: ff ff 00 00 ff ff ff ff ff ff 00 00 00 00 04 ff
50: 00 73 ff ff 00 00 00 ff ff 00 52 10 09 00 ff ff
60: ff 01 00 00 00 00 00 00 ff ff ff ff ff ff ff ff
70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
80: 74 7d d2 d2 7e f7 00 d6 cd 7f 00 65 00 08 20 00
90: 22 24 7f 80 24 4f 00 32 80 24 24 24 24 7c 10 7f
a0: ff 22 ff ff ff ff ff 35 63 63 00 00 00 00 00 00
b0: ff 1f 18 07 47 0c 45 1e ff 1f ff 1f 00 00 ff ff
c0: 00 00 06 cd 02 4f 02 5b 00 00 00 00 ff ff ff ff
d0: 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff
e0: ff a7 01 01 ff ff ff ff ff ff ff ff ff ff ff ff
f0: 27 40 00 00 24 00 fd 00 50 00 51 00 00 00 00 ff
0x90 to 0x95 seem to match to what is reported by lm-sensors at the
time at least for SYSTIN, CPUTIN and AUXTIN2 (in hexadecimal; although
lmsensors is giving .5°C more precision, so there's one bit of
information lm-sensors is gathering from somewhere else, it seems).
Yes, from the registers at 0x73 onwards.
Also AUXTIN1,3 and 4 kind-of match (their data is not usefull in any
case ATM). Nothing here reacting to manipulating the additional sensor
(as expected), at least AFAICT.
Additional temperature registers:
Bank 0:
0x27 SMIOVT1
The temperature source for this register is set in bank 6, register 0x21.
0x73, 0x74 Monitor Temperature Register 1 (0x73=fraction,
0x74=Integer)
0x75, 0x76 Reg 2
0x77, 0x78 Reg 3
0x79, 0x7a Reg 4
0x7b, 0x7c Reg 5
However, if I've understod your information correctly, SMIOVT1 is
always shoving 0x24 or 0x25, and SMIOVT2 seems to be 0x33. The select
registers are set to 01 and 02, (and reg 0x0, bank 0xa to 0x03), which
does not make sense? They should be set to 0x73 to 0x7c to provide
anything meaningful? See below:
I hope I did not say that ;-). The source select registers always
have the same definition, and that definition is further below.
0x01 is SYSTIN, 0x02 is CPUTIN.
$ sudo isadump -y 0x295 0x296 6
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff
10: 00 fc 00 fc fc fc ff ff ff ff ff ff ff ff ff ff
20: ff 01 02 00 ff ff ff ff ff ff ff ff ff ff ff 1f
30: ff 1f 18 0a 47 07 45 1d ff 1f ff 1f ff 1f ff 1f
40: ff 1f ff 1f 02 02 02 02 02 02 ff ff ff ff 06 ff
50: 7f 7f 7f 7f 00 00 00 00 06 c7 02 50 02 5b 00 00
60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
$ sudo isadump -y 0x295 0x296 0
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: 04 ff 04 a7 00 ff ff ff ff ff ff ff ff ff ff ff
10: 04 00 04 00 04 ff 03 ff 40 7f 00 65 00 08 00 00
20: 74 7e d2 d2 7e f7 23 22 ff ff ff da 00 83 77 d9
30: c4 d9 c4 83 77 ff ea 51 38 37 32 ff ff ff ff ff
40: 03 1e 17 ff df 08 1e ff 2d ff ff 10 00 55 00 a3
50: 05 ff ff ff ff ff ff ff c1 ff ff ff ff 01 00 ff
60: 00 00 ff ff ff 01 00 ff ff ff ff ff ff ff ff ff
70: 00 0a 00 23 00 23 00 23 00 23 00 51 00 ff ff ff
80: ff 7f 3f bf ff 05 05 05 00 00 00 00 00 00 00 00
90: 0a 00 00 00 00 fd fd fd 0a 95 ef 80 ff 40 46 c4
a0: 0e ff 00 00 ff 00 00 ff 00 00 80 66 06 06 01 00
b0: 00 00 00 00 00 00 33 00 04 00 00 06 80 00 04 00
c0: ff ff ff ff ff ff ff ff ff 0c 06 06 ff ff ff ff
d0: 05 05 05 05 00 00 00 00 00 00 00 00 fd fd fd fd
e0: 55 80 00 00 00 ff ff ff ff ff 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 6f ff ff ff
The temperature sources for those registers are set in bank 1, 2, 3, 8, and
9,
in register 0 of each bank.
There is another source select register in bank
0xa,
register 0, which you could check as well.
I did, though I did not find anything usefull:
$ sudo isadump -y 0x295 0x296 0xa
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: 03 00 00 0a 0a 01 01 3c 00 ff ff 00 00 ff ff ff
10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
20: ff 19 23 2d 37 ff ff 8c aa c8 e6 ff ff ff ff ff
30: ff 00 ff ff 00 3c 00 cc 00 ff ff ff ff ff ff 00
40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0a ff
50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
60: ff ff ff ff ff ff 00 00 ff ff ff ff ff ff ff ff
70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
Bank 1:
0x50 SMIOVT2
$ sudo isadump -y 0x295 0x296 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: 10 00 40 01 01 01 01 3c 00 ff ff ff 00 ff ff ff
10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
20: ff 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff
30: ff 00 ff ff 00 4b 00 cc 02 ff ff ff ff ff ff 00
40: ff ff ff ff ff 00 00 ff ff ff ff ff ff ff 01 ff
50: 24 00 00 4b 00 50 00 ff ff ff ff ff ff ff ff ff
60: ff ff ff ff ff ff 11 00 ff ff ff ff ff ff ff ff
70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
The temperature source for this register is set in bank 6, register 0x22.
In the source select registers, the lower 5 bits define the temperature
source. There are too many to list each individually, but here are some
important values.
0x01 - 0x06 SYSSTIN to AUXTIN3
0x08 - 0x0f SMBus master sources (not explained in detail)
0x10, 0x11 PECI0, PECI1
0x12 - 0x19 PCH temperatures
0x1a BYTE_TEMP, not explained in detail
0x1f Virtual_TEMP, not explained in detail
0x0 in banks 1, 2, 3 and 8 is set to 0x10 and 9 to 0x03 (I can provide
the dumps if that helps). So that means PECI0 and AUXTIN0?
Yes, nothing special here.
You can try reading any of these registers to see if changes in temperature
are reflected. We can then go from there and try to determine what is
missing
in the driver.
Should I try to write to registers (0x0 in bank 1, 2, 3, 8 or 9 to
anything ranging from 0x0 to 0x20 and the corresponding set registers)
with isaset? I'm not sure exactly what I should input, and the isaset
man page does not actually encourage tinkering if one is not totally
sure what he/she is doing =). How to select bank with isaset? I'll be
responsible of course if I will blow up my computer with isaset, but
I'd still like to know if that is the right thing to do before I try
it.
You could try that with bank 8. The PCH temperatures as well as BYTE_TEMP
are also reported in bank 4, registers 0x00 to 0x1a (two registers per
temperature). Those all report 0 per your log above.
The only unreported temperatures are therefore the temperatures
reported through the SMBUs master sources. So you could set register
0x00 of bank 8 to 0x08 .. 0x0f and see if that makes a difference
for the temperature reported at 0x79 / 0x7a.
The bank register is at register 0x4e in every page. You would set
the bank first with isaset, followed by the actual isaset command.
sudo isaset -y 0x295 0x296 0x4e 8
sudo isaset -y 0x295 0x296 0x0 0x08 [0x09, 0x0a, ... , 0x0f]
sudo isadump -y 0x295 0x296 0
If 0x79 / 0x7a reports anything but 0, we may have found your sensor.
You might want to unload the nct6775 driver before doing those tests.
I am wondering - when you do all your tests in the BIOS, do you
see the temperature (changes) reported there correctly ?
Thanks,
Guenter
_______________________________________________
lm-sensors mailing list
lm-sensors@xxxxxxxxxxxxxx
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors