Re: NCT6776 global registers 0x1c=0 and 0x24=0x5c onASRock Extreme4

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

 



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@xxxxxxxxxxxx>
Sent: Wednesday, December 21, 2011 6:01 PM
To: "Harald Judt"<h.judt@xxxxxx>
Cc:<lm-sensors@xxxxxxxxxxxxxx>
Subject: Re:  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:  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@xxxxxxxxxxxxxx
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.'

_______________________________________________
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