acpi thermal problem 'fix' (fwd)
Alexandre "Sunny" Kovalenko
Alex.Kovalenko at verizon.net
Sat Apr 8 15:28:04 UTC 2006
On Wed, 2006-04-05 at 13:29 -0700, George Wood wrote:
> my pc shuts down when cpu temp exceeds 60 C.
>
> since 'hw.acpi.thermal.tz0._CRT' is read only, I can't reset
> the value there.
>
> The advice below, edit & recompile a dumped ASL, doesn't work for
> me because the ASL will not compile.
>
> Do I have any alternative other than completely disabling acpi?
>
> George Wood
>
> I found a discussion of this online where Nate Lawson said this advice
> was correct:
>
> Date: Thu, 23 Jun 2005 14:25:17 -0700
> From: Nate Lawson <nate at root.org>
> Subject: Re: Changing temperature threshold
> (trimmed, full message attached)
>
> 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
> ...
> > 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.
>
> So I did as suggested, dumped th asl and looked for the _CRT method;
> (the full .asl file is attached). Here's what I found:
>
> Method (_CRT, 0, NotSerialized)
> {
> Return (TRPC)
> }
>
>
> the only reference I found to TRPC was:
>
> DefinitionBlock ("DSDT.aml", "DSDT", 1, "KT400 ", "AWRDACPI", 4096)
> {
> ...
> OperationRegion (TEMM, SystemMemory, 0x000FF810, 0x0C)
> Field (TEMM, WordAcc, NoLock, Preserve)
> {
> TP1H, 16,
> TP1L, 16,
> TP2H, 16,
> TP2L, 16,
> TRPC, 16,
> SENF, 16
> }
> ...
> }
>
> so I figured I'd just hard code a corrected temperature into the
> _CRT method, recompile the asl and override (per the handbook).
>
> Before modifying the .asl, I decided to compile the dumped .asl so
> I'd know what the 'normal' warnings were. Sadly, the compiler
> dumped a pile of errors:
>
> ---------------- begin compiler output --------------
>
> Intel ACPI Component Architecture
> ASL Optimizing Compiler / AML Disassembler version 20041119 [Nov 3 2005]
> Copyright (C) 2000 - 2004 Intel Corporation
> Supports ACPI Specification Revision 2.0c
>
> acpidump.asl 427: Method (\_WAK, 1, NotSerialized)
> Warning 2026 - ^ Reserved method must return a value (_WAK)
>
> acpidump.asl 470: Store (Local0, Local0)
> Error 1013 - ^ Method local variable is not initialized (Local0)
>
> acpidump.asl 478: Store (Local0, Local0)
> Error 1013 - ^ Method local variable is not initialized (Local0)
>
> acpidump.asl 2133: Method (STM, 0, Serialized)
> Warning 2019 - ^ Not all control paths return a value (STM_)
>
> acpidump.asl 3836: Store (Local0, Local0)
> Error 1013 - ^ Method local variable is not initialized (Local0)
>
> ASL Input: acpidump.asl - 4331 lines, 128623 bytes, 1697 keywords
> Compilation complete. 3 Errors, 2 Warnings, 0 Remarks, 508 Optimizations
>
I would remove offending "Stores" -- I am not ACPI guru, but storing
local variable into itself does not strike me as something terribly
useful anyway. As far as warnings, I have seen both in my ASL and they
do not seem to do any harm.
HTH,
--
Alexandre "Sunny" Kovalenko (Олександр Коваленко)
More information about the freebsd-acpi
mailing list