2 CPU EIST control methods
4 Copyright (c) 2013-2015 Intel Corporation.
6 This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
25 External (PDC0, IntObj)
26 External (CFGD, FieldUnitObj)
27 External(\_PR.CPU0, DeviceObj)
33 Return(ZERO) // Return All States Available.
39 // If GV3 is supported and OSPM is capable of direct access to
40 // performance state MSR, we use MSR method
43 // PDCx[0] = Indicates whether OSPM is capable of direct access to
44 // performance state MSR.
46 If(LAnd(And(CFGD,0x0001), And(PDC0,0x0001)))
48 Return(Package() // MSR Method
50 ResourceTemplate(){Register(FFixedHW, 0, 0, 0)},
51 ResourceTemplate(){Register(FFixedHW, 0, 0, 0)}
57 // Otherwise, we use smi method
59 Return(Package() // SMI Method
61 ResourceTemplate(){Register(SystemIO,16,0,0xB2)},
62 ResourceTemplate(){Register(SystemIO, 8,0,0xB3)}
69 // If OSPM is capable of direct access to performance state MSR,
70 // we report NPSS, otherwise, we report SPSS.
81 Package(){0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000},
82 Package(){0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000},
83 Package(){0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000},
84 Package(){0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000},
85 Package(){0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000},
86 Package(){0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000},
87 Package(){0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000},
88 Package(){0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000},
89 Package(){0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000},
90 Package(){0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000},
91 Package(){0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000},
92 Package(){0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
97 Package(){0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000},
98 Package(){0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000},
99 Package(){0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000},
100 Package(){0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000},
101 Package(){0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000},
102 Package(){0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000},
103 Package(){0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000},
104 Package(){0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000},
105 Package(){0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000},
106 Package(){0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000},
107 Package(){0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000},
108 Package(){0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000}
114 // If CMP is suppored, we report the dependency with two processors
116 If(And(CFGD,0x1000000))
119 // If OSPM is capable of hardware coordination of P-states, we report
120 // the dependency with hardware coordination.
122 // PDCx[11] = Indicates whether OSPM is capable of hardware coordination of P-states
131 0xFE, // Coord Type- HW_ALL.
138 // Otherwise, the dependency with OSPM coordination
145 0xFC, // Coord Type- SW_ALL.
152 // Otherwise, we report the dependency with one processor
159 0xFC, // Coord Type- SW_ALL.