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: 09/24/2002 00:10:06
On 21 Sep 2002 13:50:01 -0500, Manuel Bouyer wrote:
> On Thu, Sep 19, 2002 at 08:47:32PM +0000, MLH wrote:
>> On 9 Sep 2002 20:57:18 GMT, MLH wrote:
>> ... 
>> > The only problems I have had with these are that the LM driver
>> > incorrectly calculates the cpu temperatures (port-i386/18205)
>> 
>> A bit of info on this:
>> 
>> We located a winbond-based driver for Solaris86 called 'health'
>> (apparently based on a Linux driver of the same name)
>> 
... 
>> This driver produces temperature readings that agree with the MB's
>> BIOS temperature readings, However, the chip on the MB is labelled
>> 'W83627HF'. If I read correctly, syssrc/sys/dev/ic/nslm7x.c indicates
>> that the W83627HF temperature measurements are handled differently
>> than the W83781D, but that the W83782D is handled the same as the
>> W83627HF.
> 
> Hum, no, the temperature measurements are handled the same way for each

Ok. I got confused by the setup code.

> winbond chip. And, if I trust the docs (from http://www.winbond.com/)
> this is correct, wich one minor nit: the W83627HF may have only 2 sensors where
> the W83781D/W83782D have 3. So in your outputs, one of the temps won't
> make sense.
> I say "may" because the doc isn't clear: some places talk about only
> 2 sensors, but in the registers description the registers for the third
> sensors is there.

On page  - 103 - of :
http://www.winbond.com/e-winbondhtm/partner/PDFResult.asp?Pname=182
there appears to be some incorrect information that would lead one
to believe there are only two temp sensors, but yes, if you read
the register information, there is one 8-bit sensor and two 9-bit
sensors.

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.

Dumb question now...  How do I invoke the DPRINTF's so I can have
the actual register values printed out in order to see if envstat
is handling the printouts correctly? If NetBSD is printing correctly,
the bios is also printing them incorrectly (in addition to 'health').

Thanks