]> git.proxmox.com Git - mirror_edk2.git/blob - QuarkPlatformPkg/Acpi/AcpiTables/Cpu0Ist/Cpu0Ist.asl
QuarkPlatformPkg: Add new package for Galileo boards
[mirror_edk2.git] / QuarkPlatformPkg / Acpi / AcpiTables / Cpu0Ist / Cpu0Ist.asl
1 /** @file
2 CPU EIST control methods
3
4 Copyright (c) 2013-2015 Intel Corporation.
5
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
10
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.
13
14 **/
15
16 DefinitionBlock (
17 "CPU0IST.aml",
18 "SSDT",
19 0x01,
20 "SsgPmm",
21 "Cpu0Ist",
22 0x0012
23 )
24 {
25 External (PDC0, IntObj)
26 External (CFGD, FieldUnitObj)
27 External(\_PR.CPU0, DeviceObj)
28
29 Scope(\_PR.CPU0)
30 {
31 Method(_PPC,0)
32 {
33 Return(ZERO) // Return All States Available.
34 }
35
36 Method(_PCT,0)
37 {
38 //
39 // If GV3 is supported and OSPM is capable of direct access to
40 // performance state MSR, we use MSR method
41 //
42 //
43 // PDCx[0] = Indicates whether OSPM is capable of direct access to
44 // performance state MSR.
45 //
46 If(LAnd(And(CFGD,0x0001), And(PDC0,0x0001)))
47 {
48 Return(Package() // MSR Method
49 {
50 ResourceTemplate(){Register(FFixedHW, 0, 0, 0)},
51 ResourceTemplate(){Register(FFixedHW, 0, 0, 0)}
52 })
53
54 }
55
56 //
57 // Otherwise, we use smi method
58 //
59 Return(Package() // SMI Method
60 {
61 ResourceTemplate(){Register(SystemIO,16,0,0xB2)},
62 ResourceTemplate(){Register(SystemIO, 8,0,0xB3)}
63 })
64 }
65
66 Method(_PSS,0)
67 {
68 //
69 // If OSPM is capable of direct access to performance state MSR,
70 // we report NPSS, otherwise, we report SPSS.
71 If (And(PDC0,0x0001))
72 {
73 Return(NPSS)
74 }
75
76 Return(SPSS)
77 }
78
79 Name(SPSS,Package()
80 {
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}
93 })
94
95 Name(NPSS,Package()
96 {
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}
109 })
110
111 Method(_PSD,0)
112 {
113 //
114 // If CMP is suppored, we report the dependency with two processors
115 //
116 If(And(CFGD,0x1000000))
117 {
118 //
119 // If OSPM is capable of hardware coordination of P-states, we report
120 // the dependency with hardware coordination.
121 //
122 // PDCx[11] = Indicates whether OSPM is capable of hardware coordination of P-states
123 //
124 If(And(PDC0,0x0800))
125 {
126 Return(Package(){
127 Package(){
128 5, // # entries.
129 0, // Revision.
130 0, // Domain #.
131 0xFE, // Coord Type- HW_ALL.
132 2 // # processors.
133 }
134 })
135 }
136
137 //
138 // Otherwise, the dependency with OSPM coordination
139 //
140 Return(Package(){
141 Package(){
142 5, // # entries.
143 0, // Revision.
144 0, // Domain #.
145 0xFC, // Coord Type- SW_ALL.
146 2 // # processors.
147 }
148 })
149 }
150
151 //
152 // Otherwise, we report the dependency with one processor
153 //
154 Return(Package(){
155 Package(){
156 5, // # entries.
157 0, // Revision.
158 0, // Domain #.
159 0xFC, // Coord Type- SW_ALL.
160 1 // # processors.
161 }
162 })
163 }
164 }
165 }