[coreboot] m57sli FAN control [was: GeForce 8600GT with coreboot]
Carl-Daniel Hailfinger
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?
>
Ronald,
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.
Regards,
Carl-Daniel
--
http://www.hailfinger.org/
More information about the coreboot
mailing list