[LinuxBIOS] m57sli-s4 and i2c
Ward Vandewege
ward at gnu.org
Thu Apr 26 22:40:17 CEST 2007
On Wed, Apr 18, 2007 at 11:48:42PM -0400, Ward Vandewege wrote:
> On Thu, Apr 19, 2007 at 05:41:49AM +0200, Peter Stuge wrote:
> > I guess LB doesn't activate the sensors part of the superio?
>
> That was my guess too.
I've managed to activate the 'environmental controller' (EC) on the gigabyte
m57sli-s4's superio.
This now works:
======================================================================
# perl sensors-detect
Some Super I/O chips may also contain sensors. We have to write to
standard I/O ports to probe them. This is usually safe.
Do you want to scan for Super I/O sensors? (YES/no):
Probing for Super-I/O at 0x2e/0x2f
Trying family `National Semiconductor'... No
Trying family `SMSC'... No
Trying family `VIA/Winbond/Fintek'... No
Trying family `ITE'... Yes
Found `ITE IT8716F Super IO Sensors' Success!
(address 0x290, driver `it87')
======================================================================
And I get output with the 'sensors' command:
======================================================================
# sensors
k8temp-pci-00c3
Adapter: PCI adapter
Core0 Temp:
+39°C
Core1 Temp:
+40°C
it8716-isa-0290
Adapter: ISA adapter
VCore: +1.30 V (min = +0.00 V, max = +4.08 V)
VDDR: +1.94 V (min = +0.00 V, max = +4.08 V)
+3.3V: +3.26 V (min = +0.00 V, max = +4.08 V)
+5V: +4.87 V (min = +0.00 V, max = +6.85 V)
+12V: +12.42 V (min = +0.00 V, max = +16.32 V)
in5: +0.54 V (min = +0.00 V, max = +4.08 V)
in6: +1.07 V (min = +0.00 V, max = +4.08 V)
5VSB: +4.87 V (min = +0.00 V, max = +6.85 V)
VBat: +3.09 V
fan1: 1618 RPM (min = 0 RPM)
fan2: 1333 RPM (min = 0 RPM)
fan3: 0 RPM (min = 0 RPM)
temp1: +25°C (low = -1°C, high = +127°C) sensor = thermistor
temp2: +128°C (low = -1°C, high = +127°C) sensor = diode
temp3: +81°C (low = -1°C, high = +127°C) sensor = thermistor
vid: +1.300 V
======================================================================
Most of these values seem ok or at least plausable - fan3 is not connected so
that's correct; the value for temp2 and possibly temp3 is not correct.
This is what sensors tells me under the proprietary BIOS:
======================================================================
# sensors
k8temp-pci-00c3
Adapter: PCI adapter
Core0 Temp:
+26°C
Core1 Temp:
+29°C
it8716-isa-0290
Adapter: ISA adapter
VCore: +1.07 V (min = +0.00 V, max = +4.08 V)
VDDR: +1.94 V (min = +0.00 V, max = +4.08 V)
+3.3V: +3.26 V (min = +0.00 V, max = +4.08 V)
+5V: +4.84 V (min = +0.00 V, max = +6.85 V)
+12V: +12.42 V (min = +0.00 V, max = +16.32 V)
in5: +0.90 V (min = +0.00 V, max = +4.08 V)
in6: +0.66 V (min = +0.00 V, max = +4.08 V)
5VSB: +4.84 V (min = +0.00 V, max = +6.85 V)
VBat: +3.10 V
fan1: 1622 RPM (min = 0 RPM)
fan2: 1336 RPM (min = 0 RPM)
fan3: 0 RPM (min = 0 RPM)
temp1: +25°C (low = +127°C, high = +127°C) sensor = thermistor
temp2: -21°C (low = +127°C, high = +127°C) sensor = thermistor
temp3: +31°C (low = +127°C, high = +127°C) sensor = diode
vid: +1.100 V
======================================================================
Some of these are in agreement with what I get under LinuxBIOS - but the
core0/core1 temperatures are more than 10 degrees off (that's in k8temp);
Vcore is different; in5 and in6 are different; temp2 is *also* wrong (funny
:), and temp3 is different; vid is different.
I guess I'm not quite there yet; this is what's logged when loading the
it8716 module:
[ 14.860000] it87: Found IT8716F chip at 0x290, revision 0
[ 14.864000] it87: in3 is VCC (+5V)
[ 14.868000] it87: in7 is VCCH (+5V Stand-By)
[ 14.872000] i2c_adapter i2c-9191: Driver it87-isa registered
[ 14.872000] i2c_adapter i2c-9191: client [it8716] registered with bus id
9191-0290
[ 14.872000] it87-isa 9191-0290: Detected broken BIOS defaults, disabling
PWM interface
Funnily enough, if I load the it87 module with the following parameter
modprobe it87 fix_pwm_polarity=1
(which is a fix for some broken proprietary BIOS'es out there ;) it seems to
be happier:
[ 797.956000] it87: Found IT8716F chip at 0x290, revision 0
[ 797.960000] it87: in3 is VCC (+5V)
[ 797.964000] it87: in7 is VCCH (+5V Stand-By)
[ 797.968000] i2c_adapter i2c-9191: Driver it87-isa registered
[ 797.968000] i2c_adapter i2c-9191: client [it8716] registered with bus id
9191-0290
[ 797.968000] it87-isa 9191-0290: Reconfiguring PWM to active high polarity
And then I can set the fan speed :)
YH mentioned some initialization might be required for some of these
readouts, so I guess I'll go back to the datasheet to see if I can figure
something out.
In any case, patch attached to get at least this far.
Thanks,
Ward.
--
Ward Vandewege <ward at fsf.org>
Free Software Foundation - Senior System Administrator
-------------- next part --------------
Activate EC for access to fan speeds and temperature sensors.
Signed-off-by: Ward Vandewege <ward at gnu.org>
Index: src/mainboard/gigabyte/m57sli/Config.lb
===================================================================
--- src/mainboard/gigabyte/m57sli/Config.lb (revision 2618)
+++ src/mainboard/gigabyte/m57sli/Config.lb (working copy)
@@ -256,7 +256,10 @@
io 0x60 = 0x378
irq 0x70 = 7
end
- device pnp 2e.4 off # EC
+ device pnp 2e.4 on # EC
+ io 0x60 = 0x290
+ io 0x62 = 0x230
+ irq 0x70 = 9
end
device pnp 2e.5 on # Keyboard
io 0x60 = 0x60
@@ -268,7 +271,7 @@
end
device pnp 2e.8 off # MIDI
io 0x60 = 0x300
- irq 0x70 = 9
+ irq 0x70 = 10
end
device pnp 2e.9 off # GAME
io 0x60 = 0x220
More information about the coreboot
mailing list