Subject: Re: LM support (was Re: MSI 6501 Dual AMD Athlon MP & 1.6 i386 MP kernel)
To: None <tech-smp@NetBSD.ORG>
From: MLH <MLH@goathill.org>
List: tech-smp
Date: 10/08/2002 23:10:41
> On Tue, Sep 24, 2002 at 12:10:06AM +0000, MLH wrote:
>> [...]
>> 
>> It appears that 'health' and nslm7x.c are reading the registers
>> the same, however, 'health' rounds up so that it always provides
>> a whole-numbered degC value while nslm7x.c converts to uK (apparently
>> correctly), but I don't know what happens on printout.  I assume
>> it is handled correctly.

Results:

The two drivers appear to set the chip up essentially the same,
but get different results. I have mapped the behaviors so they are
the same (lcd) and they still get different results. 

- lm turns the chip on, whereas health doesn't, but disabling it
  in lm appeared to have no affect.
- health checks chip status before reading, but disabling it
  appeared to have no effect.

The W83627HF supports different interfaces. Might the lm sensor be
setting this up incorrectly?

NetBSD lm:
Oct  7 18:18:00 enki /netbsd: lm: rv = 1, cr = 1
Oct  7 18:18:00 enki /netbsd: lm0 at isa0 port 0x290-0x297

Solaris86 health :
health.conf:name="health" parent="isa" reg=1,0x295,0x4;

Any more ideas here?

Thanks


NetBSD's lm sensor reads the chip as follows:
------------
probe:
write reg: 0x4e data: 0x80
read  reg: 0x4f data: 0x5c
write reg: 0x4e data: 0x0
read  reg: 0x4f data: 0xa3
winbond vend id 0x5ca3
write reg: 0x4e data: 0x0
read  reg: 0x58 data: 0x21
winbond chip id 0x21    : W83627HF
LM attach :                - turn on data collection
write reg: 0x40 data: 0x1


Read Temp 0 :
read  reg: 0x27 data: 0x1c - sdata[temp0] 0x1c wb_stemp

Read Bank 1 :
write reg: 0x4e data: 0x1  - Set Bank 1
read  reg: 0x50 data: 0x3e - sdata[temp1] 0x7c wb_stemp high
read  reg: 0x51 data: 0x0  - sdata[temp1] 0x7c wb_stemp

Read Bank 2 :
write reg: 0x4e data: 0x2  - Set Bank 2
read  reg: 0x50 data: 0x44 - sdata[temp2] 0x88 wb_stemp high
read  reg: 0x51 data: 0x80 - sdata[temp2] 0x89 wb_stemp
------------

Solaris 'health' as follows :

------------
probe:
write addr: 0x4e data: 0x0
read  addr: 0x4f data: 0xa3
write addr: 0x4e data: 0x80 
read  addr: 0x4f data: 0x5c 
write reg: 0x4e data: 0x0


Read Temp 0 :
read  reg: 0x27 data: 0x1e

Read Bank 1 :
write reg: 0x4e data: 0x1  - Set Bank 1
read  reg: 0x50 data: 0x2d - 0x5a high
read  reg: 0x51 data: 0x0  - 0x5a low

Read Bank 2 :
write reg: 0x4e data: 0x2  - Set Bank 2
read  reg: 0x50 data: 0x33 - 0x66 high
read  reg: 0x51 data: 0x80 - 0x67 low
-------------