Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Jun 2005 14:25:17 -0700
From:      Nate Lawson <nate@root.org>
To:        "Alexandre \"Sunny\" Kovalenko" <Alex.Kovalenko@verizon.net>
Cc:        freebsd-acpi@freebsd.org, Matthew Flanagan <flanagan.matt@gmail.com>
Subject:   Re: Changing temperature threshold
Message-ID:  <42BB28BD.5080202@root.org>
In-Reply-To: <1130426516.777.7.camel@RabbitsDen>
References:  <7cd06a2d05062205331d03372c@mail.gmail.com>	<7cd06a2d050623073452e3c3f9@mail.gmail.com> <1130426516.777.7.camel@RabbitsDen>

next in thread | previous in thread | raw e-mail | index | archive | help
Alexandre "Sunny" Kovalenko wrote:
>>When I try to raise hw.acpi.thermal.tz0._CRT to 85C (which is the 
>>threshold in the BIOS setup) it doesn't work:
>>
>>bell# sysctl hw.acpi.thermal.tz0._CRT=3580  # 3580 tenths of Kelvin=85C
>>sysctl: oid 'hw.acpi.thermal.tz0._CRT' is read only
>>
>>Now, my question is: how do I change this value? I've read several
>>manpages (acpi(4), acpi_thermal(4), acpiconf(8), loader(8), and many
>>others) and checked the handbook, to no avail. Can anyone point me
>>to the right direction?
> 
> One of the ways to deal with that would be to dump your ASL (see
> Handbook for guidance), find lines which look like:
>                         Method (_CRT, 0, NotSerialized)
>                         {
>                             Return (KELV (0x5d))
>                         }
> modify them to your liking, compile ASL and override it during boot
> (instructions on how to compile and override are in Handbook as well).
> Please, note that actual value returned is in the 1/10th of the degree
> of Kelvin. Function KELV above has following ASL code associated with
> it:
>                         Method (KELV, 1, NotSerialized)
>                         {
>                             Store (Arg0, Local1)
>                             Multiply (0x0A, Local1, Local1)
>                             Add (Local1, 0x0AAC, Local1)
>                             Return (Local1)
>                         }
> Thermal management chapter of the ACPI specification should provide you
> with ample explanation of what this is all about.

This explanation is correct.  The reason why the sysctl is read-only is 
because the values are supplied by the BIOS and are what the OEM thinks 
are critical temperatures.  However, we need a way to allow override in 
the case of obviously wrong values like this.  I'll probably change it 
to allow overriding from the loader but be read-only in sysctl to avoid 
accidental changes from users experimenting.

-- 
Nate



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?42BB28BD.5080202>