[coreboot] m57sli FAN control [was: GeForce 8600GT with coreboot]
c-d.hailfinger.devel.2006 at gmx.net
Sat Feb 23 00:10:48 CET 2008
On 22.02.2008 23:52, Ronald Hoogenboom wrote:
> On Mon, 2008-02-18 at 15:29 -0500, Ward Vandewege wrote:
>> On Mon, Feb 18, 2008 at 09:18:12PM +0100, Ronald Hoogenboom wrote:
>>> Something else I noticed is that the CPU fan speed isn't regulated with
>>> coreboot. The K8-temp goes over 90 C and the fan is still reving slow at
>>> 800 RPM (nice and quiet, but not so good for my athlons health).
>> I submitted some code a long time ago (r2620) to set the fans to automatic
>> control on the it8716f superio. That was of course based on a PLCC version of
>> the board. Check src/superio/ite/it8716f/superio.c.
>> Perhaps there's a bug there - or maybe something has changed on the SOIC
>> version of the m57sli.
> Now with the patched superiotool, I have been able to spot all the
> differences for the auto fan control. If I put the following in the
> superio.c (init_ec()) file after your code:
> /* set the correct sensor types 1,2 thermistor; 3 diode */
> pnp_write_index(base, 0x51, 0x1c);
> /* set the 'zero' voltage for diode type sensor */
> pnp_write_index(base, 0x5c, 0x80);
> pnp_write_index(base, 0x56, 0xe5);
> pnp_write_index(base, 0x57, 0xe5);
> pnp_write_index(base, 0x59, 0xe5);
> pnp_write_index(base, 0x5c, 0x00);
> /* fan1 (controlled by temp3) control parameters */
> /* fan off limit */
> pnp_write_index(base, 0x60, 0xff);
> /* fan start limit */
> pnp_write_index(base, 0x61, 0x14);
> /* ???? */
> pnp_write_index(base, 0x62, 0x00);
> /* start PWM */
> pnp_write_index(base, 0x63, 0x27);
> /* smooth and slope PWM */
> pnp_write_index(base, 0x64, 0x90);
> /* direct-down and interval */
> pnp_write_index(base, 0x65, 0x03);
> /* fan1 auto controlled by temp3 */
> pnp_write_index(base, 0x15, 0x82);
> /* fan2 soft controlled, max speed */
> pnp_write_index(base, 0x16, 0x7f);
> /* fan3 soft controlled, 75% speed */
> pnp_write_index(base, 0x17, 0x60);
> /* all fans enable, fan1 ctl smart */
> pnp_write_index(base, 0x13, 0x71);
> Then the fan is properly controlled. BUT this stuff is far too mainboard
> specific (as opposed to superio specific) to be in this file. It should
> be in a file in the mainboard/gigabyte/m57sli directory (probably even
> V2.0 specific). But I wouldn't know how to link it in so it gets called
> in the ec_init routine. Do you have some suggestions?
> Maybe there is a way to put it in the Config.lb file?
you did great work tracking this down. Congratulations!
We have to make sure we can handle such settings in v3 easily.
There is another possible problem with fan settings: Do they belong to
(in the sense of copyright) the mainboard vendor or the BIOS vendor? I
don't want to get nasty letters from anyone.
More information about the coreboot