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?
Thanks, Ward.
Regards, Ronald.