1/** @file 2CPU power management control methods 3 4Copyright (c) 2013-2015 Intel Corporation. 5 6This program and the accompanying materials 7are licensed and made available under the terms and conditions of the BSD License 8which accompanies this distribution. The full text of the license may be found at 9http://opensource.org/licenses/bsd-license.php 10 11THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 14**/ 15 16DefinitionBlock ( 17 "CPUPM.aml", 18 "SSDT", 19 0x01, 20 "SsgPmm", 21 "CpuPm", 22 0x0010 23 ) 24{ 25 External(\_PR.CPU0, DeviceObj) 26 External(CFGD, FieldUnitObj) 27 28 Scope(\) 29 { 30 // Config DWord, modified during POST 31 // Bit definitions are the same as PPMFlags: 32 // CFGD[0] = PPM_GV3 = GV3 33 // CFGD[1] = PPM_TURBO = Turbo Mode 34 // CFGD[2] = PPM_SUPER_LFM = N/2 Ratio 35 // CFGD[4] = PPM_C1 = C1 Capable, Enabled 36 // CFGD[5] = PPM_C2 = C2 Capable, Enabled 37 // CFGD[6] = PPM_C3 = C3 Capable, Enabled 38 // CFGD[7] = PPM_C4 = C4 Capable, Enabled 39 // CFGD[8] = PPM_C5 = C5/Deep C4 Capable, Enabled 40 // CFGD[9] = PPM_C6 = C6 Capable, Enabled 41 // CFGD[10] = PPM_C1E = C1E Enabled 42 // CFGD[11] = PPM_C2E = C2E Enabled 43 // CFGD[12] = PPM_C3E = C3E Enabled 44 // CFGD[13] = PPM_C4E = C4E Enabled 45 // CFGD[14] = PPM_HARD_C4E = Hard C4E Capable, Enabled 46 // CFGD[16] = PPM_TM1 = Thermal Monitor 1 47 // CFGD[17] = PPM_TM2 = Thermal Monitor 2 48 // CFGD[19] = PPM_PHOT = Bi-directional ProcHot 49 // CFGD[21] = PPM_MWAIT_EXT = MWAIT extensions supported 50 // CFGD[24] = PPM_CMP = CMP supported, Enabled 51 // CFGD[28] = PPM_TSTATE = CPU T states supported 52 // 53 // Name(CFGD, 0x80000000) 54 // External Defined in GNVS 55 56 Name(PDC0,0x80000000) // CPU0 _PDC Flags. 57 58 // We load it in AcpiPlatform 59 //Name(SSDT,Package() 60 //{ 61 // "CPU0IST ", 0x80000000, 0x80000000, 62 // "CPU1IST ", 0x80000000, 0x80000000, 63 // "CPU0CST ", 0x80000000, 0x80000000, 64 // "CPU1CST ", 0x80000000, 0x80000000, 65 //}) 66 } 67 Scope(\_PR.CPU0) 68 { 69 Method(_PDC, 1) 70 { 71 // 72 // Store result of PDC. 73 // 74 CreateDWordField(Arg0,8,CAP0) // Point to 3rd DWORD. 75 Store(CAP0,PDC0) // Store It in PDC0. 76 } 77 } 78 79} 80