root / hw / acpi-dsdt.dsl @ 47dbd1f3
History | View | Annotate | Download (17.9 kB)
1 | 6515b203 | bellard | /* |
---|---|---|---|
2 | 6515b203 | bellard | * QEMU ACPI DSDT ASL definition |
3 | 6515b203 | bellard | * |
4 | 6515b203 | bellard | * Copyright (c) 2006 Fabrice Bellard |
5 | 6515b203 | bellard | * |
6 | 6515b203 | bellard | * This library is free software; you can redistribute it and/or |
7 | 6515b203 | bellard | * modify it under the terms of the GNU Lesser General Public |
8 | 6515b203 | bellard | * License version 2 as published by the Free Software Foundation. |
9 | 6515b203 | bellard | * |
10 | 6515b203 | bellard | * This library is distributed in the hope that it will be useful, |
11 | 6515b203 | bellard | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | 6515b203 | bellard | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
13 | 6515b203 | bellard | * Lesser General Public License for more details. |
14 | 6515b203 | bellard | * |
15 | 6515b203 | bellard | * You should have received a copy of the GNU Lesser General Public |
16 | 6515b203 | bellard | * License along with this library; if not, write to the Free Software |
17 | 6515b203 | bellard | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
18 | 6515b203 | bellard | */ |
19 | 6515b203 | bellard | DefinitionBlock ( |
20 | 6515b203 | bellard | "acpi-dsdt.aml", // Output Filename |
21 | 6515b203 | bellard | "DSDT", // Signature |
22 | 6515b203 | bellard | 0x01, // DSDT Compliance Revision |
23 | 6515b203 | bellard | "QEMU", // OEMID |
24 | 6515b203 | bellard | "QEMUDSDT", // TABLE ID |
25 | 6515b203 | bellard | 0x1 // OEM Revision |
26 | 6515b203 | bellard | ) |
27 | 6515b203 | bellard | { |
28 | 6515b203 | bellard | Scope (\) |
29 | 6515b203 | bellard | { |
30 | 6515b203 | bellard | /* CMOS memory access */ |
31 | 6515b203 | bellard | OperationRegion (CMS, SystemIO, 0x70, 0x02) |
32 | 6515b203 | bellard | Field (CMS, ByteAcc, NoLock, Preserve) |
33 | 6515b203 | bellard | { |
34 | 6515b203 | bellard | CMSI, 8, |
35 | 6515b203 | bellard | CMSD, 8 |
36 | 6515b203 | bellard | } |
37 | 6515b203 | bellard | Method (CMRD, 1, NotSerialized) |
38 | 6515b203 | bellard | { |
39 | 6515b203 | bellard | Store (Arg0, CMSI) |
40 | 6515b203 | bellard | Store (CMSD, Local0) |
41 | 6515b203 | bellard | Return (Local0) |
42 | 6515b203 | bellard | } |
43 | 6515b203 | bellard | |
44 | 6515b203 | bellard | /* Debug Output */ |
45 | 6515b203 | bellard | OperationRegion (DBG, SystemIO, 0xb044, 0x04) |
46 | 6515b203 | bellard | Field (DBG, DWordAcc, NoLock, Preserve) |
47 | 6515b203 | bellard | { |
48 | 6515b203 | bellard | DBGL, 32, |
49 | 6515b203 | bellard | } |
50 | 6515b203 | bellard | } |
51 | 6515b203 | bellard | |
52 | 6515b203 | bellard | |
53 | 6515b203 | bellard | /* PCI Bus definition */ |
54 | 6515b203 | bellard | Scope(\_SB) { |
55 | 6515b203 | bellard | Device(PCI0) { |
56 | 6515b203 | bellard | Name (_HID, EisaId ("PNP0A03")) |
57 | 6515b203 | bellard | Name (_ADR, 0x00) |
58 | 6515b203 | bellard | Name (_UID, 1) |
59 | 6515b203 | bellard | Name(_PRT, Package() { |
60 | 6515b203 | bellard | /* PCI IRQ routing table, example from ACPI 2.0a specification, |
61 | 6515b203 | bellard | section 6.2.8.1 */ |
62 | 6515b203 | bellard | /* Note: we provide the same info as the PCI routing |
63 | 6515b203 | bellard | table of the Bochs BIOS */ |
64 | 6515b203 | bellard | |
65 | 6515b203 | bellard | // PCI Slot 0 |
66 | 6583391f | bellard | Package() {0x0000ffff, 0, LNKD, 0}, |
67 | 6583391f | bellard | Package() {0x0000ffff, 1, LNKA, 0}, |
68 | 6583391f | bellard | Package() {0x0000ffff, 2, LNKB, 0}, |
69 | 6583391f | bellard | Package() {0x0000ffff, 3, LNKC, 0}, |
70 | 6515b203 | bellard | |
71 | 6583391f | bellard | // PCI Slot 1 |
72 | 6583391f | bellard | Package() {0x0001ffff, 0, LNKA, 0}, |
73 | 6583391f | bellard | Package() {0x0001ffff, 1, LNKB, 0}, |
74 | 6583391f | bellard | Package() {0x0001ffff, 2, LNKC, 0}, |
75 | 6583391f | bellard | Package() {0x0001ffff, 3, LNKD, 0}, |
76 | 6583391f | bellard | |
77 | 6515b203 | bellard | // PCI Slot 2 |
78 | 6583391f | bellard | Package() {0x0002ffff, 0, LNKB, 0}, |
79 | 6583391f | bellard | Package() {0x0002ffff, 1, LNKC, 0}, |
80 | 6583391f | bellard | Package() {0x0002ffff, 2, LNKD, 0}, |
81 | 6583391f | bellard | Package() {0x0002ffff, 3, LNKA, 0}, |
82 | 6515b203 | bellard | |
83 | 6515b203 | bellard | // PCI Slot 3 |
84 | 6583391f | bellard | Package() {0x0003ffff, 0, LNKC, 0}, |
85 | 6583391f | bellard | Package() {0x0003ffff, 1, LNKD, 0}, |
86 | 6583391f | bellard | Package() {0x0003ffff, 2, LNKA, 0}, |
87 | 6583391f | bellard | Package() {0x0003ffff, 3, LNKB, 0}, |
88 | 6515b203 | bellard | |
89 | 6515b203 | bellard | // PCI Slot 4 |
90 | 6583391f | bellard | Package() {0x0004ffff, 0, LNKD, 0}, |
91 | 6583391f | bellard | Package() {0x0004ffff, 1, LNKA, 0}, |
92 | 6583391f | bellard | Package() {0x0004ffff, 2, LNKB, 0}, |
93 | 6583391f | bellard | Package() {0x0004ffff, 3, LNKC, 0}, |
94 | 6515b203 | bellard | |
95 | 6515b203 | bellard | // PCI Slot 5 |
96 | 6583391f | bellard | Package() {0x0005ffff, 0, LNKA, 0}, |
97 | 6583391f | bellard | Package() {0x0005ffff, 1, LNKB, 0}, |
98 | 6583391f | bellard | Package() {0x0005ffff, 2, LNKC, 0}, |
99 | 6583391f | bellard | Package() {0x0005ffff, 3, LNKD, 0}, |
100 | 6515b203 | bellard | }) |
101 | 6515b203 | bellard | |
102 | 6515b203 | bellard | Method (_CRS, 0, NotSerialized) |
103 | 6515b203 | bellard | { |
104 | 6515b203 | bellard | Name (MEMP, ResourceTemplate () |
105 | 6515b203 | bellard | { |
106 | 6515b203 | bellard | WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, |
107 | 6515b203 | bellard | 0x0000, // Address Space Granularity |
108 | 6515b203 | bellard | 0x0000, // Address Range Minimum |
109 | 6515b203 | bellard | 0x00FF, // Address Range Maximum |
110 | 6515b203 | bellard | 0x0000, // Address Translation Offset |
111 | 6515b203 | bellard | 0x0100, // Address Length |
112 | 6515b203 | bellard | ,, ) |
113 | 6515b203 | bellard | IO (Decode16, |
114 | 6515b203 | bellard | 0x0CF8, // Address Range Minimum |
115 | 6515b203 | bellard | 0x0CF8, // Address Range Maximum |
116 | 6515b203 | bellard | 0x01, // Address Alignment |
117 | 6515b203 | bellard | 0x08, // Address Length |
118 | 6515b203 | bellard | ) |
119 | 6515b203 | bellard | WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, |
120 | 6515b203 | bellard | 0x0000, // Address Space Granularity |
121 | 6515b203 | bellard | 0x0000, // Address Range Minimum |
122 | 6515b203 | bellard | 0x0CF7, // Address Range Maximum |
123 | 6515b203 | bellard | 0x0000, // Address Translation Offset |
124 | 6515b203 | bellard | 0x0CF8, // Address Length |
125 | 6515b203 | bellard | ,, , TypeStatic) |
126 | 6515b203 | bellard | WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, |
127 | 6515b203 | bellard | 0x0000, // Address Space Granularity |
128 | 6515b203 | bellard | 0x0D00, // Address Range Minimum |
129 | 6515b203 | bellard | 0xFFFF, // Address Range Maximum |
130 | 6515b203 | bellard | 0x0000, // Address Translation Offset |
131 | 6515b203 | bellard | 0xF300, // Address Length |
132 | 6515b203 | bellard | ,, , TypeStatic) |
133 | 6515b203 | bellard | DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, |
134 | 6515b203 | bellard | 0x00000000, // Address Space Granularity |
135 | 6515b203 | bellard | 0x000A0000, // Address Range Minimum |
136 | 6515b203 | bellard | 0x000BFFFF, // Address Range Maximum |
137 | 6515b203 | bellard | 0x00000000, // Address Translation Offset |
138 | 6515b203 | bellard | 0x00020000, // Address Length |
139 | 6515b203 | bellard | ,, , AddressRangeMemory, TypeStatic) |
140 | 6515b203 | bellard | DWordMemory (ResourceProducer, PosDecode, MinNotFixed, MaxFixed, NonCacheable, ReadWrite, |
141 | 6515b203 | bellard | 0x00000000, // Address Space Granularity |
142 | 6515b203 | bellard | 0x00000000, // Address Range Minimum |
143 | 6515b203 | bellard | 0xFEBFFFFF, // Address Range Maximum |
144 | 6515b203 | bellard | 0x00000000, // Address Translation Offset |
145 | 6515b203 | bellard | 0x00000000, // Address Length |
146 | 6515b203 | bellard | ,, MEMF, AddressRangeMemory, TypeStatic) |
147 | 6515b203 | bellard | }) |
148 | 6515b203 | bellard | CreateDWordField (MEMP, \_SB.PCI0._CRS.MEMF._MIN, PMIN) |
149 | 6515b203 | bellard | CreateDWordField (MEMP, \_SB.PCI0._CRS.MEMF._MAX, PMAX) |
150 | 6515b203 | bellard | CreateDWordField (MEMP, \_SB.PCI0._CRS.MEMF._LEN, PLEN) |
151 | 6515b203 | bellard | /* compute available RAM */ |
152 | 6515b203 | bellard | Add(CMRD(0x34), ShiftLeft(CMRD(0x35), 8), Local0) |
153 | 6515b203 | bellard | ShiftLeft(Local0, 16, Local0) |
154 | 6515b203 | bellard | Add(Local0, 0x1000000, Local0) |
155 | 6515b203 | bellard | /* update field of last region */ |
156 | 6515b203 | bellard | Store(Local0, PMIN) |
157 | 6515b203 | bellard | Subtract (PMAX, PMIN, PLEN) |
158 | 6515b203 | bellard | Increment (PLEN) |
159 | 6515b203 | bellard | Return (MEMP) |
160 | 6515b203 | bellard | } |
161 | 6515b203 | bellard | } |
162 | 6515b203 | bellard | } |
163 | 6515b203 | bellard | |
164 | 6515b203 | bellard | Scope(\_SB.PCI0) { |
165 | 1ce549ab | bellard | |
166 | 1ce549ab | bellard | /* PIIX3 ISA bridge */ |
167 | 6515b203 | bellard | Device (ISA) { |
168 | 6515b203 | bellard | Name (_ADR, 0x00010000) |
169 | 6515b203 | bellard | |
170 | 6515b203 | bellard | /* PIIX PCI to ISA irq remapping */ |
171 | 6515b203 | bellard | OperationRegion (P40C, PCI_Config, 0x60, 0x04) |
172 | 6515b203 | bellard | |
173 | 6515b203 | bellard | |
174 | 6515b203 | bellard | /* Keyboard seems to be important for WinXP install */ |
175 | 6515b203 | bellard | Device (KBD) |
176 | 6515b203 | bellard | { |
177 | 6515b203 | bellard | Name (_HID, EisaId ("PNP0303")) |
178 | 6515b203 | bellard | Method (_STA, 0, NotSerialized) |
179 | 6515b203 | bellard | { |
180 | 6515b203 | bellard | Return (0x0f) |
181 | 6515b203 | bellard | } |
182 | 6515b203 | bellard | |
183 | 6515b203 | bellard | Method (_CRS, 0, NotSerialized) |
184 | 6515b203 | bellard | { |
185 | 6515b203 | bellard | Name (TMP, ResourceTemplate () |
186 | 6515b203 | bellard | { |
187 | 6515b203 | bellard | IO (Decode16, |
188 | 6515b203 | bellard | 0x0060, // Address Range Minimum |
189 | 6515b203 | bellard | 0x0060, // Address Range Maximum |
190 | 6515b203 | bellard | 0x01, // Address Alignment |
191 | 6515b203 | bellard | 0x01, // Address Length |
192 | 6515b203 | bellard | ) |
193 | 6515b203 | bellard | IO (Decode16, |
194 | 6515b203 | bellard | 0x0064, // Address Range Minimum |
195 | 6515b203 | bellard | 0x0064, // Address Range Maximum |
196 | 6515b203 | bellard | 0x01, // Address Alignment |
197 | 6515b203 | bellard | 0x01, // Address Length |
198 | 6515b203 | bellard | ) |
199 | 6515b203 | bellard | IRQNoFlags () |
200 | 6515b203 | bellard | {1} |
201 | 6515b203 | bellard | }) |
202 | 6515b203 | bellard | Return (TMP) |
203 | 6515b203 | bellard | } |
204 | 6515b203 | bellard | } |
205 | 6515b203 | bellard | |
206 | 1ce549ab | bellard | /* PS/2 mouse */ |
207 | 6515b203 | bellard | Device (MOU) |
208 | 6515b203 | bellard | { |
209 | 6515b203 | bellard | Name (_HID, EisaId ("PNP0F13")) |
210 | 6515b203 | bellard | Method (_STA, 0, NotSerialized) |
211 | 6515b203 | bellard | { |
212 | 6515b203 | bellard | Return (0x0f) |
213 | 6515b203 | bellard | } |
214 | 6515b203 | bellard | |
215 | 6515b203 | bellard | Method (_CRS, 0, NotSerialized) |
216 | 6515b203 | bellard | { |
217 | 6515b203 | bellard | Name (TMP, ResourceTemplate () |
218 | 6515b203 | bellard | { |
219 | 6515b203 | bellard | IRQNoFlags () {12} |
220 | 6515b203 | bellard | }) |
221 | 6515b203 | bellard | Return (TMP) |
222 | 6515b203 | bellard | } |
223 | 6515b203 | bellard | } |
224 | 1ce549ab | bellard | |
225 | 1ce549ab | bellard | /* PS/2 floppy controller */ |
226 | 1ce549ab | bellard | Device (FDC0) |
227 | 1ce549ab | bellard | { |
228 | 1ce549ab | bellard | Name (_HID, EisaId ("PNP0700")) |
229 | 1ce549ab | bellard | Method (_STA, 0, NotSerialized) |
230 | 1ce549ab | bellard | { |
231 | 1ce549ab | bellard | Return (0x0F) |
232 | 1ce549ab | bellard | } |
233 | 1ce549ab | bellard | Method (_CRS, 0, NotSerialized) |
234 | 1ce549ab | bellard | { |
235 | 1ce549ab | bellard | Name (BUF0, ResourceTemplate () |
236 | 1ce549ab | bellard | { |
237 | 1ce549ab | bellard | IO (Decode16, 0x03F2, 0x03F2, 0x00, 0x04) |
238 | 1ce549ab | bellard | IO (Decode16, 0x03F7, 0x03F7, 0x00, 0x01) |
239 | 1ce549ab | bellard | IRQNoFlags () {6} |
240 | 1ce549ab | bellard | DMA (Compatibility, NotBusMaster, Transfer8) {2} |
241 | 1ce549ab | bellard | }) |
242 | 1ce549ab | bellard | Return (BUF0) |
243 | 1ce549ab | bellard | } |
244 | 1ce549ab | bellard | } |
245 | 1ce549ab | bellard | |
246 | 1ce549ab | bellard | /* Parallel port */ |
247 | 1ce549ab | bellard | Device (LPT) |
248 | 1ce549ab | bellard | { |
249 | 1ce549ab | bellard | Name (_HID, EisaId ("PNP0400")) |
250 | 1ce549ab | bellard | Method (_STA, 0, NotSerialized) |
251 | 1ce549ab | bellard | { |
252 | 1ce549ab | bellard | Store (\_SB.PCI0.PX13.DRSA, Local0) |
253 | 1ce549ab | bellard | And (Local0, 0x80000000, Local0) |
254 | 1ce549ab | bellard | If (LEqual (Local0, 0)) |
255 | 1ce549ab | bellard | { |
256 | 1ce549ab | bellard | Return (0x00) |
257 | 1ce549ab | bellard | } |
258 | 1ce549ab | bellard | Else |
259 | 1ce549ab | bellard | { |
260 | 1ce549ab | bellard | Return (0x0F) |
261 | 1ce549ab | bellard | } |
262 | 1ce549ab | bellard | } |
263 | 1ce549ab | bellard | Method (_CRS, 0, NotSerialized) |
264 | 1ce549ab | bellard | { |
265 | 1ce549ab | bellard | Name (BUF0, ResourceTemplate () |
266 | 1ce549ab | bellard | { |
267 | 1ce549ab | bellard | IO (Decode16, 0x0378, 0x0378, 0x08, 0x08) |
268 | 1ce549ab | bellard | IRQNoFlags () {7} |
269 | 1ce549ab | bellard | }) |
270 | 1ce549ab | bellard | Return (BUF0) |
271 | 1ce549ab | bellard | } |
272 | 1ce549ab | bellard | } |
273 | 1ce549ab | bellard | |
274 | 1ce549ab | bellard | /* Serial Ports */ |
275 | 1ce549ab | bellard | Device (COM1) |
276 | 1ce549ab | bellard | { |
277 | 1ce549ab | bellard | Name (_HID, EisaId ("PNP0501")) |
278 | 1ce549ab | bellard | Name (_UID, 0x01) |
279 | 1ce549ab | bellard | Method (_STA, 0, NotSerialized) |
280 | 1ce549ab | bellard | { |
281 | 1ce549ab | bellard | Store (\_SB.PCI0.PX13.DRSC, Local0) |
282 | 1ce549ab | bellard | And (Local0, 0x08000000, Local0) |
283 | 1ce549ab | bellard | If (LEqual (Local0, 0)) |
284 | 1ce549ab | bellard | { |
285 | 1ce549ab | bellard | Return (0x00) |
286 | 1ce549ab | bellard | } |
287 | 1ce549ab | bellard | Else |
288 | 1ce549ab | bellard | { |
289 | 1ce549ab | bellard | Return (0x0F) |
290 | 1ce549ab | bellard | } |
291 | 1ce549ab | bellard | } |
292 | 1ce549ab | bellard | Method (_CRS, 0, NotSerialized) |
293 | 1ce549ab | bellard | { |
294 | 1ce549ab | bellard | Name (BUF0, ResourceTemplate () |
295 | 1ce549ab | bellard | { |
296 | 1ce549ab | bellard | IO (Decode16, 0x03F8, 0x03F8, 0x00, 0x08) |
297 | 1ce549ab | bellard | IRQNoFlags () {4} |
298 | 1ce549ab | bellard | }) |
299 | 1ce549ab | bellard | Return (BUF0) |
300 | 1ce549ab | bellard | } |
301 | 1ce549ab | bellard | } |
302 | 1ce549ab | bellard | |
303 | 1ce549ab | bellard | Device (COM2) |
304 | 1ce549ab | bellard | { |
305 | 1ce549ab | bellard | Name (_HID, EisaId ("PNP0501")) |
306 | 1ce549ab | bellard | Name (_UID, 0x02) |
307 | 1ce549ab | bellard | Method (_STA, 0, NotSerialized) |
308 | 1ce549ab | bellard | { |
309 | 1ce549ab | bellard | Store (\_SB.PCI0.PX13.DRSC, Local0) |
310 | 1ce549ab | bellard | And (Local0, 0x80000000, Local0) |
311 | 1ce549ab | bellard | If (LEqual (Local0, 0)) |
312 | 1ce549ab | bellard | { |
313 | 1ce549ab | bellard | Return (0x00) |
314 | 1ce549ab | bellard | } |
315 | 1ce549ab | bellard | Else |
316 | 1ce549ab | bellard | { |
317 | 1ce549ab | bellard | Return (0x0F) |
318 | 1ce549ab | bellard | } |
319 | 1ce549ab | bellard | } |
320 | 1ce549ab | bellard | Method (_CRS, 0, NotSerialized) |
321 | 1ce549ab | bellard | { |
322 | 1ce549ab | bellard | Name (BUF0, ResourceTemplate () |
323 | 1ce549ab | bellard | { |
324 | 1ce549ab | bellard | IO (Decode16, 0x02F8, 0x02F8, 0x00, 0x08) |
325 | 1ce549ab | bellard | IRQNoFlags () {3} |
326 | 1ce549ab | bellard | }) |
327 | 1ce549ab | bellard | Return (BUF0) |
328 | 1ce549ab | bellard | } |
329 | 1ce549ab | bellard | } |
330 | 6515b203 | bellard | } |
331 | 1ce549ab | bellard | |
332 | 1ce549ab | bellard | /* PIIX4 PM */ |
333 | 1ce549ab | bellard | Device (PX13) { |
334 | 1ce549ab | bellard | Name (_ADR, 0x00010003) |
335 | 1ce549ab | bellard | |
336 | 1ce549ab | bellard | OperationRegion (P13C, PCI_Config, 0x5c, 0x24) |
337 | 1ce549ab | bellard | Field (P13C, DWordAcc, NoLock, Preserve) |
338 | 1ce549ab | bellard | { |
339 | 1ce549ab | bellard | DRSA, 32, |
340 | 1ce549ab | bellard | DRSB, 32, |
341 | 1ce549ab | bellard | DRSC, 32, |
342 | 1ce549ab | bellard | DRSE, 32, |
343 | 1ce549ab | bellard | DRSF, 32, |
344 | 1ce549ab | bellard | DRSG, 32, |
345 | 1ce549ab | bellard | DRSH, 32, |
346 | 1ce549ab | bellard | DRSI, 32, |
347 | 1ce549ab | bellard | DRSJ, 32 |
348 | 1ce549ab | bellard | } |
349 | 1ce549ab | bellard | } |
350 | 6515b203 | bellard | } |
351 | 6515b203 | bellard | |
352 | 6515b203 | bellard | /* PCI IRQs */ |
353 | 6515b203 | bellard | Scope(\_SB) { |
354 | 6515b203 | bellard | Field (\_SB.PCI0.ISA.P40C, ByteAcc, NoLock, Preserve) |
355 | 6515b203 | bellard | { |
356 | 6515b203 | bellard | PRQ0, 8, |
357 | 6515b203 | bellard | PRQ1, 8, |
358 | 6515b203 | bellard | PRQ2, 8, |
359 | 6515b203 | bellard | PRQ3, 8 |
360 | 6515b203 | bellard | } |
361 | 6515b203 | bellard | |
362 | 6515b203 | bellard | Device(LNKA){ |
363 | 6515b203 | bellard | Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link |
364 | 6515b203 | bellard | Name(_UID, 1) |
365 | 6515b203 | bellard | Name(_PRS, ResourceTemplate(){ |
366 | 6515b203 | bellard | IRQ (Level, ActiveLow, Shared) |
367 | 6515b203 | bellard | {3,4,5,6,7,9,10,11,12} |
368 | 6515b203 | bellard | }) |
369 | 6515b203 | bellard | Method (_STA, 0, NotSerialized) |
370 | 6515b203 | bellard | { |
371 | 6515b203 | bellard | Store (0x0B, Local0) |
372 | 6515b203 | bellard | If (And (0x80, PRQ0, Local1)) |
373 | 6515b203 | bellard | { |
374 | 6515b203 | bellard | Store (0x09, Local0) |
375 | 6515b203 | bellard | } |
376 | 6515b203 | bellard | Return (Local0) |
377 | 6515b203 | bellard | } |
378 | 6515b203 | bellard | Method (_DIS, 0, NotSerialized) |
379 | 6515b203 | bellard | { |
380 | 6515b203 | bellard | Or (PRQ0, 0x80, PRQ0) |
381 | 6515b203 | bellard | } |
382 | 6515b203 | bellard | Method (_CRS, 0, NotSerialized) |
383 | 6515b203 | bellard | { |
384 | 6515b203 | bellard | Name (PRR0, ResourceTemplate () |
385 | 6515b203 | bellard | { |
386 | 6515b203 | bellard | IRQ (Level, ActiveLow, Shared) |
387 | 6515b203 | bellard | {1} |
388 | 6515b203 | bellard | }) |
389 | 6515b203 | bellard | CreateWordField (PRR0, 0x01, TMP) |
390 | 6515b203 | bellard | Store (PRQ0, Local0) |
391 | 6515b203 | bellard | If (LLess (Local0, 0x80)) |
392 | 6515b203 | bellard | { |
393 | 6515b203 | bellard | ShiftLeft (One, Local0, TMP) |
394 | 6515b203 | bellard | } |
395 | 6515b203 | bellard | Else |
396 | 6515b203 | bellard | { |
397 | 6515b203 | bellard | Store (Zero, TMP) |
398 | 6515b203 | bellard | } |
399 | 6515b203 | bellard | Return (PRR0) |
400 | 6515b203 | bellard | } |
401 | 6515b203 | bellard | Method (_SRS, 1, NotSerialized) |
402 | 6515b203 | bellard | { |
403 | 6515b203 | bellard | CreateWordField (Arg0, 0x01, TMP) |
404 | 6515b203 | bellard | FindSetRightBit (TMP, Local0) |
405 | 6515b203 | bellard | Decrement (Local0) |
406 | 6515b203 | bellard | Store (Local0, PRQ0) |
407 | 6515b203 | bellard | } |
408 | 6515b203 | bellard | } |
409 | 6515b203 | bellard | Device(LNKB){ |
410 | 6515b203 | bellard | Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link |
411 | 6515b203 | bellard | Name(_UID, 2) |
412 | 6515b203 | bellard | Name(_PRS, ResourceTemplate(){ |
413 | 6515b203 | bellard | IRQ (Level, ActiveLow, Shared) |
414 | 6515b203 | bellard | {3,4,5,6,7,9,10,11,12} |
415 | 6515b203 | bellard | }) |
416 | 6515b203 | bellard | Method (_STA, 0, NotSerialized) |
417 | 6515b203 | bellard | { |
418 | 6515b203 | bellard | Store (0x0B, Local0) |
419 | 6515b203 | bellard | If (And (0x80, PRQ1, Local1)) |
420 | 6515b203 | bellard | { |
421 | 6515b203 | bellard | Store (0x09, Local0) |
422 | 6515b203 | bellard | } |
423 | 6515b203 | bellard | Return (Local0) |
424 | 6515b203 | bellard | } |
425 | 6515b203 | bellard | Method (_DIS, 0, NotSerialized) |
426 | 6515b203 | bellard | { |
427 | 6515b203 | bellard | Or (PRQ1, 0x80, PRQ1) |
428 | 6515b203 | bellard | } |
429 | 6515b203 | bellard | Method (_CRS, 0, NotSerialized) |
430 | 6515b203 | bellard | { |
431 | 6515b203 | bellard | Name (PRR0, ResourceTemplate () |
432 | 6515b203 | bellard | { |
433 | 6515b203 | bellard | IRQ (Level, ActiveLow, Shared) |
434 | 6515b203 | bellard | {1} |
435 | 6515b203 | bellard | }) |
436 | 6515b203 | bellard | CreateWordField (PRR0, 0x01, TMP) |
437 | 6515b203 | bellard | Store (PRQ1, Local0) |
438 | 6515b203 | bellard | If (LLess (Local0, 0x80)) |
439 | 6515b203 | bellard | { |
440 | 6515b203 | bellard | ShiftLeft (One, Local0, TMP) |
441 | 6515b203 | bellard | } |
442 | 6515b203 | bellard | Else |
443 | 6515b203 | bellard | { |
444 | 6515b203 | bellard | Store (Zero, TMP) |
445 | 6515b203 | bellard | } |
446 | 6515b203 | bellard | Return (PRR0) |
447 | 6515b203 | bellard | } |
448 | 6515b203 | bellard | Method (_SRS, 1, NotSerialized) |
449 | 6515b203 | bellard | { |
450 | 6515b203 | bellard | CreateWordField (Arg0, 0x01, TMP) |
451 | 6515b203 | bellard | FindSetRightBit (TMP, Local0) |
452 | 6515b203 | bellard | Decrement (Local0) |
453 | 6515b203 | bellard | Store (Local0, PRQ1) |
454 | 6515b203 | bellard | } |
455 | 6515b203 | bellard | } |
456 | 6515b203 | bellard | Device(LNKC){ |
457 | 6515b203 | bellard | Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link |
458 | 6515b203 | bellard | Name(_UID, 3) |
459 | 6515b203 | bellard | Name(_PRS, ResourceTemplate(){ |
460 | 6515b203 | bellard | IRQ (Level, ActiveLow, Shared) |
461 | 6515b203 | bellard | {3,4,5,6,7,9,10,11,12} |
462 | 6515b203 | bellard | }) |
463 | 6515b203 | bellard | Method (_STA, 0, NotSerialized) |
464 | 6515b203 | bellard | { |
465 | 6515b203 | bellard | Store (0x0B, Local0) |
466 | 6515b203 | bellard | If (And (0x80, PRQ2, Local1)) |
467 | 6515b203 | bellard | { |
468 | 6515b203 | bellard | Store (0x09, Local0) |
469 | 6515b203 | bellard | } |
470 | 6515b203 | bellard | Return (Local0) |
471 | 6515b203 | bellard | } |
472 | 6515b203 | bellard | Method (_DIS, 0, NotSerialized) |
473 | 6515b203 | bellard | { |
474 | 6515b203 | bellard | Or (PRQ2, 0x80, PRQ2) |
475 | 6515b203 | bellard | } |
476 | 6515b203 | bellard | Method (_CRS, 0, NotSerialized) |
477 | 6515b203 | bellard | { |
478 | 6515b203 | bellard | Name (PRR0, ResourceTemplate () |
479 | 6515b203 | bellard | { |
480 | 6515b203 | bellard | IRQ (Level, ActiveLow, Shared) |
481 | 6515b203 | bellard | {1} |
482 | 6515b203 | bellard | }) |
483 | 6515b203 | bellard | CreateWordField (PRR0, 0x01, TMP) |
484 | 6515b203 | bellard | Store (PRQ2, Local0) |
485 | 6515b203 | bellard | If (LLess (Local0, 0x80)) |
486 | 6515b203 | bellard | { |
487 | 6515b203 | bellard | ShiftLeft (One, Local0, TMP) |
488 | 6515b203 | bellard | } |
489 | 6515b203 | bellard | Else |
490 | 6515b203 | bellard | { |
491 | 6515b203 | bellard | Store (Zero, TMP) |
492 | 6515b203 | bellard | } |
493 | 6515b203 | bellard | Return (PRR0) |
494 | 6515b203 | bellard | } |
495 | 6515b203 | bellard | Method (_SRS, 1, NotSerialized) |
496 | 6515b203 | bellard | { |
497 | 6515b203 | bellard | CreateWordField (Arg0, 0x01, TMP) |
498 | 6515b203 | bellard | FindSetRightBit (TMP, Local0) |
499 | 6515b203 | bellard | Decrement (Local0) |
500 | 6515b203 | bellard | Store (Local0, PRQ2) |
501 | 6515b203 | bellard | } |
502 | 6515b203 | bellard | } |
503 | 6515b203 | bellard | Device(LNKD){ |
504 | 6515b203 | bellard | Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link |
505 | 6515b203 | bellard | Name(_UID, 4) |
506 | 6515b203 | bellard | Name(_PRS, ResourceTemplate(){ |
507 | 6515b203 | bellard | IRQ (Level, ActiveLow, Shared) |
508 | 6515b203 | bellard | {3,4,5,6,7,9,10,11,12} |
509 | 6515b203 | bellard | }) |
510 | 6515b203 | bellard | Method (_STA, 0, NotSerialized) |
511 | 6515b203 | bellard | { |
512 | 6515b203 | bellard | Store (0x0B, Local0) |
513 | 6515b203 | bellard | If (And (0x80, PRQ3, Local1)) |
514 | 6515b203 | bellard | { |
515 | 6515b203 | bellard | Store (0x09, Local0) |
516 | 6515b203 | bellard | } |
517 | 6515b203 | bellard | Return (Local0) |
518 | 6515b203 | bellard | } |
519 | 6515b203 | bellard | Method (_DIS, 0, NotSerialized) |
520 | 6515b203 | bellard | { |
521 | 6515b203 | bellard | Or (PRQ3, 0x80, PRQ3) |
522 | 6515b203 | bellard | } |
523 | 6515b203 | bellard | Method (_CRS, 0, NotSerialized) |
524 | 6515b203 | bellard | { |
525 | 6515b203 | bellard | Name (PRR0, ResourceTemplate () |
526 | 6515b203 | bellard | { |
527 | 6515b203 | bellard | IRQ (Level, ActiveLow, Shared) |
528 | 6515b203 | bellard | {1} |
529 | 6515b203 | bellard | }) |
530 | 6515b203 | bellard | CreateWordField (PRR0, 0x01, TMP) |
531 | 6515b203 | bellard | Store (PRQ3, Local0) |
532 | 6515b203 | bellard | If (LLess (Local0, 0x80)) |
533 | 6515b203 | bellard | { |
534 | 6515b203 | bellard | ShiftLeft (One, Local0, TMP) |
535 | 6515b203 | bellard | } |
536 | 6515b203 | bellard | Else |
537 | 6515b203 | bellard | { |
538 | 6515b203 | bellard | Store (Zero, TMP) |
539 | 6515b203 | bellard | } |
540 | 6515b203 | bellard | Return (PRR0) |
541 | 6515b203 | bellard | } |
542 | 6515b203 | bellard | Method (_SRS, 1, NotSerialized) |
543 | 6515b203 | bellard | { |
544 | 6515b203 | bellard | CreateWordField (Arg0, 0x01, TMP) |
545 | 6515b203 | bellard | FindSetRightBit (TMP, Local0) |
546 | 6515b203 | bellard | Decrement (Local0) |
547 | 6515b203 | bellard | Store (Local0, PRQ3) |
548 | 6515b203 | bellard | } |
549 | 6515b203 | bellard | } |
550 | 6515b203 | bellard | } |
551 | 6515b203 | bellard | |
552 | 6515b203 | bellard | /* S5 = power off state */ |
553 | 6515b203 | bellard | Name (_S5, Package (4) { |
554 | 6515b203 | bellard | 0x00, // PM1a_CNT.SLP_TYP |
555 | 6515b203 | bellard | 0x00, // PM2a_CNT.SLP_TYP |
556 | 6515b203 | bellard | 0x00, // reserved |
557 | 6515b203 | bellard | 0x00, // reserved |
558 | 6515b203 | bellard | }) |
559 | 6515b203 | bellard | } |