[lm-sensors] NCT6776 global registers 0x1c=0 and 0x24=0x5c onASRock Extreme4

Harald Judt h.judt at gmx.at
Wed Dec 21 23:43:47 CET 2011


Am 21.12.2011 21:55, schrieb Ira W. Snyder:
> On Wed, Dec 21, 2011 at 06:55:31PM +0100, Ian Dobson wrote:
>> Hi,
>> --------------------------------------------------
>> From: "Guenter Roeck"<guenter.roeck at ericsson.com>
>> Sent: Wednesday, December 21, 2011 6:01 PM
>> To: "Harald Judt"<h.judt at gmx.at>
>> Cc:<lm-sensors at lm-sensors.org>
>> Subject: Re: [lm-sensors] NCT6776 global registers 0x1c=0 and 0x24=0x5c
>> onASRock Extreme4
>>
>>> Hi,
>>> On Wed, Dec 21, 2011 at 09:50:31AM -0500, Harald Judt wrote:
>>>> Hi,
>>>>
>>>>> On Tue, 12 Apr 2011 19:02:19 +0200, Ian Dobson wrote:
>>>>>> Hi,
>>>>>>
>>>>>> --------------------------------------------------
>>>>>> From: "Mike Campin"<lm_sensors at ootsa.homelinux.net>
>>>>>> Sent: Sunday, April 10, 2011 6:04 PM
>>>>>> To:<lm-sensors at lm-sensors.org>
>>>>>> Subject: [lm-sensors] NCT6776 global registers 0x1c=0 and 0x24=0x5c
>>>>>> onASRock
>>>>>> Extreme4
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> Only 2 of the 5 fans are showing up on my ASRock P67 Extreme4
>>>>>>> motherboard.
>>>>>>> It due to the NCT6776 global configuration register 0x1c and 0x24
>>>>>>> values.
>>>>>>> The fans work if I modify these registers prior to loading the
>>>>>>> w83627ehf
>>>>>>> driver.
>>>>>>>
>>>>>>> My question is where are these registers initialized? Should I ask
>>>>>>> ASRock
>>>>>>> to fix the BIOS?
>>>>>>>
>>>>>>>   isadump -y -k 0x87,0x87 0x2e 0x2f
>>>>>>>
>>>>>>>           0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
>>>>>>>      00: ff ff 00 ff ff ff ff 02 ff ff ff ff ff ff ff ff
>>>>>>>      10: ff ff ff ff ff ff ff ff ff ff f8 0e 00 00 ff ff
>>>>>>>      20: c3 33 ff 00 5c 00 00 98 00 ff 20 00 80 00 00 01
>>>>>>>      30: 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>>>>>>>
>>>>>>>   isaset -y -f 0x2e 0x87
>>>>>>>   isaset -y -f 0x2e 0x87
>>>>>>>   isaset -y 0x2e 0x2f 0x1c 0x3
>>>>>>>   isaset -y 0x2e 0x2f 0x24 0x1c
>>>>>>>
>>>>>>> Thanks, Mike
>>>>>>>
>>>>>>> --
>>>>>>> Mike Campin
>>>>>>> lm_sensors at ootsa.homelinux.net
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> lm-sensors mailing list
>>>>>>> lm-sensors at lm-sensors.org
>>>>>>> http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
>>>>>>
>>>>>> ASRock designed the board, so they should setup the hardware
>>>>>> monitoring chip
>>>>>> correctly. Allowing users to change the chip configuration is a really
>>>>>> bad
>>>>>> idea, as many of the pins can have different functionality/electrical
>>>>>> spcifications depending on the config. Setting up a pin incorrectly
>>>>>> could
>>>>>> blow the chip (Configuring a pin so that it's a source that's
>>>>>> connected to
>>>>>> an unprotected/limited sink for example).
>>>>>>
>>>>>> So ASRock should fix the BIOS.
>>>>>
>>>>> Seconded. But before flaming Asrock, two things worth checking:
>>>>> * Availability of a BIOS update fixing the issue.
>>>>> * Options in the BIOS to enable/disable the monitoring of specific
>>>>>    fans. I can imagine that the BIOS skips the configuration steps for
>>>>>    fans for which monitoring was disabled (although that would probably
>>>>>    mean more code than just doing it unconditionally...)
>>>>>
>>>>> --
>>>>> Jean Delvare
>>>>
>>>> I own an Asrock P67 Extreme4 too and have the same problem. It can be
>>>> solved by following Mike Campin's instructions, which I successfully
>>>> incorporated into /etc/init.d/lm_sensors. There is no BIOS available
>>>> that fixes this issue, but I noticed that SpeedFan for Windows
>>>> (www.almico.com/speedfan.php) seems to do something similar, otherwise
>>>> it would show only 2 fans too. So maybe we could get that into
>>>> lm_sensors, even if the BIOS is at fault here?
>>>>
>>> See above ... worst case this can result in defective hardware if
>>> misconfigured.
>>>
>>> We could possibly introduce some kind of module parameter, but I don't
>>> feel
>>> too comfortable with that - wrong values may still blow up the hardware.
>>> Any opinions, anyone ?
>>>
>>> Guenter
>>>
>>> _______________________________________________
>>> lm-sensors mailing list
>>> lm-sensors at lm-sensors.org
>>> http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
>>
>> I wouldn't recommend a module parameter, leave the driver as it is.
>> If there is a hack (using isaset) just use that. It's too easy for a user to
>> set a module parameter hoping that it'll fix some random problem, and if the
>> module kills the hardware, then the module is too blame.

I understand and agree with that.

>> Asrock should fix the BIOS, that's the correct option.

Unfortunately, the correct option is not always the most likely to happen.

> I wonder if you could set these register values only on this specific
> motherboard by checking the DMI table to determine the motherboard
> vendor and model number.

This is what I currently do using dmidecode in /etc/init.d/lm_sensors, 
because I too fear to forget about this and accidently wreck a new 
mainboard I'm going to buy in the future:

# We need to do some initialization before loading the module,
# otherwise only 2 of the 5 fans will be shown
init_module_w83627ehf() {
     modprobe -q -r w83627ehf
     # make sure to do this only for the right mainboard
     if /usr/sbin/dmidecode | grep -i 'Base Board Information' -A2 -B1 | 
grep -q 'P67 Extreme4' \
         && /usr/sbin/dmidecode | grep -i 'BIOS Information' -A3 | grep 
-q 'Version: L1.61' && \
         ! lsmod | grep w83627ehf; then
         isaset -y -f 0x2e 0x87 2>/dev/null
         isaset -y -f 0x2e 0x87 2>/dev/null
         isaset -y 0x2e 0x2f 0x1c 0x3 2>/dev/null
         isaset -y 0x2e 0x2f 0x24 0x1c 2>/dev/null
     fi
}

Actually, checking the BIOS version might make no difference, but since 
I can change it very easily and know when I have to do so, I decided to 
include it.

I have asked the author of Speedfan how he did it, maybe he will 
respond. His approach seems to work and be safe. Somehow I don't think 
it will be very different from this solution though.

> At least then you can work around a broken BIOS until the vendor
> provides a fix.
>
> Ira

Harald

-- 
`Experience is the best teacher.'



More information about the lm-sensors mailing list