[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