Re: [NCT6775] Additional temperature sensors on nct6791d

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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





[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux