1/**************************************************************************; 2;* *; 3;* *; 4;* Intel Corporation - ACPI Reference Code for the Baytrail *; 5;* Family of Customer Reference Boards. *; 6;* *; 7;* *; 8;* Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved *; 9; 10; This program and the accompanying materials are licensed and made available under 11; the terms and conditions of the BSD License that accompanies this distribution. 12; The full text of the license may be found at 13; http://opensource.org/licenses/bsd-license.php. 14; 15; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 16; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 17; 18;* *; 19;* *; 20;**************************************************************************/ 21 22 23// THERMAL.ASL represents a Thermal Zone to be used for testing on the 24// Customer Reference Boards. 25 26External(\_SB.DPTF.CTOK, MethodObj) 27 28Scope(\_TZ) 29{ 30 31 // Thermal Zone 1 = DTS Thermal Zone. 32 33 ThermalZone(TZ01) 34 { 35 // Return the temperature at which the OS must perform a Critcal 36 // Shutdown. 37 38 Method(_CRT,0,Serialized) 39 { 40 Return(Add(2732,Multiply(CRTT,10))) 41 } 42 43 // Notifies ASL Code the current cooling mode. 44 // 0 - Active cooling 45 // 1 - Passive cooling 46 47 Method(_SCP,1,Serialized) 48 { 49 Store(Arg0,CTYP) 50 } 51 52 // _TMP (Temperature) 53 // 54 // Return the highest of the CPU temperatures to the OS. 55 // 56 // Arguments: (0) 57 // None 58 // Return Value: 59 // An Integer containing the current temperature of the thermal zone (in tenths of degrees Kelvin) 60 // 61 Method(_TMP,0,Serialized) 62 { 63 If(DTSE) 64 { 65 If(LGreater(DTS2, DTS1)) 66 { 67 Store(DTS2,Local0) 68 } else 69 { 70 Store(DTS1,Local0) 71 } 72 Return(Add(2732,Multiply(Local0,10))) 73 // 74 // Else return a static value if both EC and DTS are unavailable. 75 // 76 } Else 77 { 78 Return(3000) // (3000-2732)/10 = 26.8 degree C 79 } 80 } 81 82 // Return the Processor(s) used for Passive Cooling. 83 84 Method(_PSL,0,Serialized) 85 { 86 If(LEqual(MPEN, 4)) 87 { 88 // CMP - Throttling controls all four logical CPUs. 89 Return(Package() {\_PR.CPU0,\_PR.CPU1,\_PR.CPU2,\_PR.CPU3}) 90 } 91 92 If(MPEN) 93 { 94 // CMP - Throttling controls both CPUs. 95 96 Return(Package() {\_PR.CPU0,\_PR.CPU1}) 97 } 98 99 Return(Package() {\_PR.CPU0}) 100 } 101 102 // Returns the temperature at which the OS initiates CPU throttling. 103 104 Method(_PSV,0,Serialized) 105 { 106 Return(Add(2732,Multiply(PSVT,10))) 107 } 108 109 // Returns TC1 value used in the passive cooling formula. 110 111 Method(_TC1,0,Serialized) 112 { 113 Return(TC1V) 114 } 115 116 // Returns TC2 value used in the passive cooling formula. 117 118 Method(_TC2,0,Serialized) 119 { 120 Return(TC2V) 121 } 122 123 // Returns the sampling period used in the passive cooling formula. 124 125 Method(_TSP,0,Serialized) 126 { 127 Return(TSPV) 128 } 129 130 // Returns Hot Temperature 131 132 Method(_HOT,0,Serialized) 133 { 134 Subtract(CRTT, 5, Local0) 135 Return(Add(2732,Multiply(Local0,10))) 136 } 137 } 138} 139