| /**************************************************************************; | |
| ;* *; | |
| ;* *; | |
| ;* Intel Corporation - ACPI Reference Code for the Baytrail *; | |
| ;* Family of Customer Reference Boards. *; | |
| ;* *; | |
| ;* *; | |
| ;* Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved *; | |
| ; | |
| ; This program and the accompanying materials are licensed and made available under | |
| ; the terms and conditions of the BSD License that accompanies this distribution. | |
| ; The full text of the license may be found at | |
| ; http://opensource.org/licenses/bsd-license.php. | |
| ; | |
| ; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
| ; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
| ; | |
| ;* *; | |
| ;* *; | |
| ;**************************************************************************/ | |
| // THERMAL.ASL represents a Thermal Zone to be used for testing on the | |
| // Customer Reference Boards. | |
| External(\_SB.DPTF.CTOK, MethodObj) | |
| Scope(\_TZ) | |
| { | |
| // Thermal Zone 1 = DTS Thermal Zone. | |
| ThermalZone(TZ01) | |
| { | |
| // Return the temperature at which the OS must perform a Critcal | |
| // Shutdown. | |
| Method(_CRT,0,Serialized) | |
| { | |
| Return(Add(2732,Multiply(CRTT,10))) | |
| } | |
| // Notifies ASL Code the current cooling mode. | |
| // 0 - Active cooling | |
| // 1 - Passive cooling | |
| Method(_SCP,1,Serialized) | |
| { | |
| Store(Arg0,CTYP) | |
| } | |
| // _TMP (Temperature) | |
| // | |
| // Return the highest of the CPU temperatures to the OS. | |
| // | |
| // Arguments: (0) | |
| // None | |
| // Return Value: | |
| // An Integer containing the current temperature of the thermal zone (in tenths of degrees Kelvin) | |
| // | |
| Method(_TMP,0,Serialized) | |
| { | |
| If(DTSE) | |
| { | |
| If(LGreater(DTS2, DTS1)) | |
| { | |
| Store(DTS2,Local0) | |
| } else | |
| { | |
| Store(DTS1,Local0) | |
| } | |
| Return(Add(2732,Multiply(Local0,10))) | |
| // | |
| // Else return a static value if both EC and DTS are unavailable. | |
| // | |
| } Else | |
| { | |
| Return(3000) // (3000-2732)/10 = 26.8 degree C | |
| } | |
| } | |
| // Return the Processor(s) used for Passive Cooling. | |
| Method(_PSL,0,Serialized) | |
| { | |
| If(LEqual(MPEN, 4)) | |
| { | |
| // CMP - Throttling controls all four logical CPUs. | |
| Return(Package() {\_PR.CPU0,\_PR.CPU1,\_PR.CPU2,\_PR.CPU3}) | |
| } | |
| If(MPEN) | |
| { | |
| // CMP - Throttling controls both CPUs. | |
| Return(Package() {\_PR.CPU0,\_PR.CPU1}) | |
| } | |
| Return(Package() {\_PR.CPU0}) | |
| } | |
| // Returns the temperature at which the OS initiates CPU throttling. | |
| Method(_PSV,0,Serialized) | |
| { | |
| Return(Add(2732,Multiply(PSVT,10))) | |
| } | |
| // Returns TC1 value used in the passive cooling formula. | |
| Method(_TC1,0,Serialized) | |
| { | |
| Return(TC1V) | |
| } | |
| // Returns TC2 value used in the passive cooling formula. | |
| Method(_TC2,0,Serialized) | |
| { | |
| Return(TC2V) | |
| } | |
| // Returns the sampling period used in the passive cooling formula. | |
| Method(_TSP,0,Serialized) | |
| { | |
| Return(TSPV) | |
| } | |
| // Returns Hot Temperature | |
| Method(_HOT,0,Serialized) | |
| { | |
| Subtract(CRTT, 5, Local0) | |
| Return(Add(2732,Multiply(Local0,10))) | |
| } | |
| } | |
| } |