VirtualBox

source: vbox/trunk/src/VBox/Devices/PC/vbox.dsl@ 19646

Last change on this file since 19646 was 19646, checked in by vboxsync, 16 years ago

Backed out r47181; win2k regression

  • Property svn:eol-style set to LF
  • Property svn:keywords set to Id
File size: 43.1 KB
Line 
1// $Id: vbox.dsl 19646 2009-05-13 07:38:28Z vboxsync $
2/// @file
3//
4// VirtualBox ACPI
5//
6// Copyright (C) 2006-2007 Sun Microsystems, Inc.
7//
8// This file is part of VirtualBox Open Source Edition (OSE), as
9// available from http://www.virtualbox.org. This file is free software;
10// you can redistribute it and/or modify it under the terms of the GNU
11// General Public License as published by the Free Software Foundation,
12// in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
13// distribution. VirtualBox OSE is distributed in the hope that it will
14// be useful, but WITHOUT ANY WARRANTY of any kind.
15//
16
17DefinitionBlock ("DSDT.aml", "DSDT", 1, "VBOX ", "VBOXBIOS", 2)
18{
19 // Declare debugging ports withing SystemIO
20 OperationRegion(DBG0, SystemIO, 0x3000, 4)
21
22 // Writes to this field Will dump hex char
23 Field (DBG0, ByteAcc, NoLock, Preserve)
24 {
25 DHE1, 8,
26 }
27
28 // Writes to this field Will dump hex word
29 Field (DBG0, WordAcc, NoLock, Preserve)
30 {
31 DHE2, 16,
32 }
33
34 // Writes to this field Will dump hex double word
35 Field (DBG0, DWordAcc, NoLock, Preserve)
36 {
37 DHE4, 32,
38 }
39
40 // Writes to this field will dump ascii char
41 Field (DBG0, ByteAcc, NoLock, Preserve)
42 {
43 Offset (1),
44 DCHR, 8
45 }
46
47 // Shortcuts
48 Method(HEX, 1)
49 {
50 Store (Arg0, DHE1)
51 }
52
53 Method(HEX2, 1)
54 {
55 Store (Arg0, DHE2)
56 }
57
58 Method(HEX4, 1)
59 {
60 Store (Arg0, DHE4)
61 }
62
63 // Code from Microsoft sample
64 // http://www.microsoft.com/whdc/system/pnppwr/powermgmt/_OSI-method.mspx
65
66 //
67 // SLEN(Str) - Returns the length of Str (excluding NULL).
68 //
69 Method(SLEN, 1)
70 {
71 //
72 // Note: The caller must make sure that the argument is a string object.
73 //
74 Store(Arg0, Local0)
75 Return(Sizeof(Local0))
76 }
77
78 Method(S2BF, 1)
79 {
80 //
81 // Note: The caller must make sure that the argument is a string object.
82 //
83 // Local0 contains length of string + NULL.
84 //
85 Store(Arg0, Local0)
86 Add(SLEN(Local0), One, Local0)
87 //
88 // Convert the string object into a buffer object.
89 //
90 Name(BUFF, Buffer(Local0) {})
91 Store(Arg0, BUFF)
92 Return(BUFF)
93 }
94
95 // Convert ASCII string to buffer and store it's contents (char by
96 // char) into DCHR (thus possibly writing the string to console)
97 Method (\DBG, 1, NotSerialized)
98 {
99 Store(Arg0, Local0)
100 Store(S2BF (Local0), Local1)
101 Store(SizeOf (Local1), Local0)
102 Decrement (Local0)
103 Store(Zero, Local2)
104 While (Local0)
105 {
106 Decrement (Local0)
107 Store (DerefOf (Index (Local1, Local2)), DCHR)
108 Increment (Local2)
109 }
110 }
111
112 Name(PICM, 0)
113 Method(_PIC, 1)
114 {
115 DBG ("Pic mode: ")
116 HEX4 (Arg0)
117 Store (Arg0, PICM)
118 }
119
120 // Processor object
121 // #1463: Showing the CPU can make the guest do bad things on it like SpeedStep.
122 // In this case, XP SP2 contains this buggy Intelppm.sys driver which wants to mess
123 // with SpeedStep if it finds a CPU object and when it finds out that it can't, it
124 // tries to unload and crashes (MS probably never tested this code path).
125 // So we enable this ACPI object only for certain guests, which do need it,
126 // if by accident Windows guest seen enabled CPU object, just boot from latest
127 // known good configuration, as it remembers state, even if ACPI object gets disabled.
128 Scope (\_PR)
129 {
130 Processor (CPU0, /* Name */
131 0x00, /* Id */
132 0x0, /* Processor IO ports range start */
133 0x0 /* Processor IO ports range length */
134 )
135 {
136 Method (_STA) { Return(\_SB.UCP0) }
137 }
138 Processor (CPU1, /* Name */
139 0x01, /* Id */
140 0x0, /* Processor IO ports range start */
141 0x0 /* Processor IO ports range length */
142 )
143 {
144 Method (_STA) { Return(\_SB.UCP1) }
145 }
146 Processor (CPU2, /* Name */
147 0x02, /* Id */
148 0x0, /* Processor IO ports range start */
149 0x0 /* Processor IO ports range length */
150 )
151 {
152 Method (_STA) { Return(\_SB.UCP2) }
153 }
154 Processor (CPU3, /* Name */
155 0x03, /* Id */
156 0x0, /* Processor IO ports range start */
157 0x0 /* Processor IO ports range length */
158 )
159 {
160 Method (_STA) { Return(\_SB.UCP3) }
161 }
162 }
163
164 Scope (\_SB)
165 {
166 OperationRegion (SYSI, SystemIO, 0x4048, 0x08)
167 Field (SYSI, DwordAcc, NoLock, Preserve)
168 {
169 IDX0, 32,
170 DAT0, 32,
171 }
172
173 IndexField (IDX0, DAT0, DwordAcc, NoLock, Preserve)
174 {
175 MEML, 32,
176 UIOA, 32,
177 UHPT, 32,
178 USMC, 32,
179 UFDC, 32,
180 // @todo: maybe make it bitmask instead?
181 UCP0, 32,
182 UCP1, 32,
183 UCP2, 32,
184 UCP3, 32,
185 MEMH, 32,
186 URTC, 32,
187 Offset (0x80),
188 ININ, 32,
189 Offset (0x200),
190 VAIN, 32,
191 }
192
193 Method (_INI, 0, NotSerialized)
194 {
195 Store (0xbadc0de, VAIN)
196 DBG ("MEML: ")
197 HEX4 (MEML)
198 DBG ("UIOA: ")
199 HEX4 (UIOA)
200 DBG ("UHPT: ")
201 HEX4 (UHPT)
202 DBG ("USMC: ")
203 HEX4 (USMC)
204 DBG ("UFDC: ")
205 HEX4 (UFDC)
206 DBG ("UCP0: ")
207 HEX4 (UCP0)
208 DBG ("MEMH: ")
209 HEX4 (MEMH)
210 }
211
212 // PCI PIC IRQ Routing table
213 // Must match pci.c:pci_slot_get_pirq
214 Name (PR00, Package ()
215 {
216 Package (0x04) {0x0002FFFF, 0x00, LNKB, 0x00,},
217 Package (0x04) {0x0002FFFF, 0x01, LNKC, 0x00,},
218 Package (0x04) {0x0002FFFF, 0x02, LNKD, 0x00,},
219 Package (0x04) {0x0002FFFF, 0x03, LNKA, 0x00,},
220
221 Package (0x04) {0x0003FFFF, 0x00, LNKC, 0x00,},
222 Package (0x04) {0x0003FFFF, 0x01, LNKD, 0x00,},
223 Package (0x04) {0x0003FFFF, 0x02, LNKA, 0x00,},
224 Package (0x04) {0x0003FFFF, 0x03, LNKB, 0x00,},
225
226 Package (0x04) {0x0004FFFF, 0x00, LNKD, 0x00,},
227 Package (0x04) {0x0004FFFF, 0x01, LNKA, 0x00,},
228 Package (0x04) {0x0004FFFF, 0x02, LNKB, 0x00,},
229 Package (0x04) {0x0004FFFF, 0x03, LNKC, 0x00,},
230
231 Package (0x04) {0x0005FFFF, 0x00, LNKA, 0x00,},
232 Package (0x04) {0x0005FFFF, 0x01, LNKB, 0x00,},
233 Package (0x04) {0x0005FFFF, 0x02, LNKC, 0x00,},
234 Package (0x04) {0x0005FFFF, 0x03, LNKD, 0x00,},
235
236 Package (0x04) {0x0006FFFF, 0x00, LNKB, 0x00,},
237 Package (0x04) {0x0006FFFF, 0x01, LNKC, 0x00,},
238 Package (0x04) {0x0006FFFF, 0x02, LNKD, 0x00,},
239 Package (0x04) {0x0006FFFF, 0x03, LNKA, 0x00,},
240
241 Package (0x04) {0x0007FFFF, 0x00, LNKC, 0x00,},
242 Package (0x04) {0x0007FFFF, 0x01, LNKD, 0x00,},
243 Package (0x04) {0x0007FFFF, 0x02, LNKA, 0x00,},
244 Package (0x04) {0x0007FFFF, 0x03, LNKB, 0x00,},
245
246 Package (0x04) {0x0008FFFF, 0x00, LNKD, 0x00,},
247 Package (0x04) {0x0008FFFF, 0x01, LNKA, 0x00,},
248 Package (0x04) {0x0008FFFF, 0x02, LNKB, 0x00,},
249 Package (0x04) {0x0008FFFF, 0x03, LNKC, 0x00,},
250
251 Package (0x04) {0x0009FFFF, 0x00, LNKA, 0x00,},
252 Package (0x04) {0x0009FFFF, 0x01, LNKB, 0x00,},
253 Package (0x04) {0x0009FFFF, 0x02, LNKC, 0x00,},
254 Package (0x04) {0x0009FFFF, 0x03, LNKD, 0x00,},
255
256 Package (0x04) {0x000AFFFF, 0x00, LNKB, 0x00,},
257 Package (0x04) {0x000AFFFF, 0x01, LNKC, 0x00,},
258 Package (0x04) {0x000AFFFF, 0x02, LNKD, 0x00,},
259 Package (0x04) {0x000AFFFF, 0x03, LNKA, 0x00,},
260
261 Package (0x04) {0x000BFFFF, 0x00, LNKC, 0x00,},
262 Package (0x04) {0x000BFFFF, 0x01, LNKD, 0x00,},
263 Package (0x04) {0x000BFFFF, 0x02, LNKA, 0x00,},
264 Package (0x04) {0x000BFFFF, 0x03, LNKB, 0x00,},
265
266 Package (0x04) {0x000CFFFF, 0x00, LNKD, 0x00,},
267 Package (0x04) {0x000CFFFF, 0x01, LNKA, 0x00,},
268 Package (0x04) {0x000CFFFF, 0x02, LNKB, 0x00,},
269 Package (0x04) {0x000CFFFF, 0x03, LNKC, 0x00,},
270
271 Package (0x04) {0x000DFFFF, 0x00, LNKA, 0x00,},
272 Package (0x04) {0x000DFFFF, 0x01, LNKB, 0x00,},
273 Package (0x04) {0x000DFFFF, 0x02, LNKC, 0x00,},
274 Package (0x04) {0x000DFFFF, 0x03, LNKD, 0x00,},
275
276 Package (0x04) {0x000EFFFF, 0x00, LNKB, 0x00,},
277 Package (0x04) {0x000EFFFF, 0x01, LNKC, 0x00,},
278 Package (0x04) {0x000EFFFF, 0x02, LNKD, 0x00,},
279 Package (0x04) {0x000EFFFF, 0x03, LNKA, 0x00,},
280
281 Package (0x04) {0x000FFFFF, 0x00, LNKC, 0x00,},
282 Package (0x04) {0x000FFFFF, 0x01, LNKD, 0x00,},
283 Package (0x04) {0x000FFFFF, 0x02, LNKA, 0x00,},
284 Package (0x04) {0x000FFFFF, 0x03, LNKB, 0x00,},
285
286 Package (0x04) {0x0010FFFF, 0x00, LNKD, 0x00,},
287 Package (0x04) {0x0010FFFF, 0x01, LNKA, 0x00,},
288 Package (0x04) {0x0010FFFF, 0x02, LNKB, 0x00,},
289 Package (0x04) {0x0010FFFF, 0x03, LNKC, 0x00,},
290
291 Package (0x04) {0x0011FFFF, 0x00, LNKA, 0x00,},
292 Package (0x04) {0x0011FFFF, 0x01, LNKB, 0x00,},
293 Package (0x04) {0x0011FFFF, 0x02, LNKC, 0x00,},
294 Package (0x04) {0x0011FFFF, 0x03, LNKD, 0x00,},
295
296 Package (0x04) {0x0012FFFF, 0x00, LNKB, 0x00,},
297 Package (0x04) {0x0012FFFF, 0x01, LNKC, 0x00,},
298 Package (0x04) {0x0012FFFF, 0x02, LNKD, 0x00,},
299 Package (0x04) {0x0012FFFF, 0x03, LNKA, 0x00,},
300
301 Package (0x04) {0x0013FFFF, 0x00, LNKC, 0x00,},
302 Package (0x04) {0x0013FFFF, 0x01, LNKD, 0x00,},
303 Package (0x04) {0x0013FFFF, 0x02, LNKA, 0x00,},
304 Package (0x04) {0x0013FFFF, 0x03, LNKB, 0x00,},
305
306 Package (0x04) {0x0014FFFF, 0x00, LNKD, 0x00,},
307 Package (0x04) {0x0014FFFF, 0x01, LNKA, 0x00,},
308 Package (0x04) {0x0014FFFF, 0x02, LNKB, 0x00,},
309 Package (0x04) {0x0014FFFF, 0x03, LNKC, 0x00,},
310
311 Package (0x04) {0x0015FFFF, 0x00, LNKA, 0x00,},
312 Package (0x04) {0x0015FFFF, 0x01, LNKB, 0x00,},
313 Package (0x04) {0x0015FFFF, 0x02, LNKC, 0x00,},
314 Package (0x04) {0x0015FFFF, 0x03, LNKD, 0x00,},
315
316 Package (0x04) {0x0016FFFF, 0x00, LNKB, 0x00,},
317 Package (0x04) {0x0016FFFF, 0x01, LNKC, 0x00,},
318 Package (0x04) {0x0016FFFF, 0x02, LNKD, 0x00,},
319 Package (0x04) {0x0016FFFF, 0x03, LNKA, 0x00,},
320
321 Package (0x04) {0x0017FFFF, 0x00, LNKC, 0x00,},
322 Package (0x04) {0x0017FFFF, 0x01, LNKD, 0x00,},
323 Package (0x04) {0x0017FFFF, 0x02, LNKA, 0x00,},
324 Package (0x04) {0x0017FFFF, 0x03, LNKB, 0x00,},
325
326 Package (0x04) {0x0018FFFF, 0x00, LNKD, 0x00,},
327 Package (0x04) {0x0018FFFF, 0x01, LNKA, 0x00,},
328 Package (0x04) {0x0018FFFF, 0x02, LNKB, 0x00,},
329 Package (0x04) {0x0018FFFF, 0x03, LNKC, 0x00,},
330
331 Package (0x04) {0x0019FFFF, 0x00, LNKA, 0x00,},
332 Package (0x04) {0x0019FFFF, 0x01, LNKB, 0x00,},
333 Package (0x04) {0x0019FFFF, 0x02, LNKC, 0x00,},
334 Package (0x04) {0x0019FFFF, 0x03, LNKD, 0x00,},
335
336 Package (0x04) {0x001AFFFF, 0x00, LNKB, 0x00,},
337 Package (0x04) {0x001AFFFF, 0x01, LNKC, 0x00,},
338 Package (0x04) {0x001AFFFF, 0x02, LNKD, 0x00,},
339 Package (0x04) {0x001AFFFF, 0x03, LNKA, 0x00,},
340
341 Package (0x04) {0x001BFFFF, 0x00, LNKC, 0x00,},
342 Package (0x04) {0x001BFFFF, 0x01, LNKD, 0x00,},
343 Package (0x04) {0x001BFFFF, 0x02, LNKA, 0x00,},
344 Package (0x04) {0x001BFFFF, 0x03, LNKB, 0x00,},
345
346 Package (0x04) {0x001CFFFF, 0x00, LNKD, 0x00,},
347 Package (0x04) {0x001CFFFF, 0x01, LNKA, 0x00,},
348 Package (0x04) {0x001CFFFF, 0x02, LNKB, 0x00,},
349 Package (0x04) {0x001CFFFF, 0x03, LNKC, 0x00,},
350
351 Package (0x04) {0x001DFFFF, 0x00, LNKA, 0x00,},
352 Package (0x04) {0x001DFFFF, 0x01, LNKB, 0x00,},
353 Package (0x04) {0x001DFFFF, 0x02, LNKC, 0x00,},
354 Package (0x04) {0x001DFFFF, 0x03, LNKD, 0x00,},
355
356 Package (0x04) {0x001EFFFF, 0x00, LNKB, 0x00,},
357 Package (0x04) {0x001EFFFF, 0x01, LNKC, 0x00,},
358 Package (0x04) {0x001EFFFF, 0x02, LNKD, 0x00,},
359 Package (0x04) {0x001EFFFF, 0x03, LNKA, 0x00,},
360
361 Package (0x04) {0x001FFFFF, 0x00, LNKC, 0x00,},
362 Package (0x04) {0x001FFFFF, 0x01, LNKD, 0x00,},
363 Package (0x04) {0x001FFFFF, 0x02, LNKA, 0x00,},
364 Package (0x04) {0x001FFFFF, 0x03, LNKB, 0x00,}
365 })
366
367 // PCI I/O APIC IRQ Routing table
368 // Must match pci.c:pci_slot_get_acpi_pirq
369 Name (PR01, Package ()
370 {
371 Package (0x04) {0x0002FFFF, 0x00, 0x00, 0x12,},
372 Package (0x04) {0x0002FFFF, 0x01, 0x00, 0x13,},
373 Package (0x04) {0x0002FFFF, 0x02, 0x00, 0x14,},
374 Package (0x04) {0x0002FFFF, 0x03, 0x00, 0x15,},
375
376 Package (0x04) {0x0003FFFF, 0x00, 0x00, 0x13,},
377 Package (0x04) {0x0003FFFF, 0x01, 0x00, 0x14,},
378 Package (0x04) {0x0003FFFF, 0x02, 0x00, 0x15,},
379 Package (0x04) {0x0003FFFF, 0x03, 0x00, 0x16,},
380
381 Package (0x04) {0x0004FFFF, 0x00, 0x00, 0x14,},
382 Package (0x04) {0x0004FFFF, 0x01, 0x00, 0x15,},
383 Package (0x04) {0x0004FFFF, 0x02, 0x00, 0x16,},
384 Package (0x04) {0x0004FFFF, 0x03, 0x00, 0x17,},
385
386 Package (0x04) {0x0005FFFF, 0x00, 0x00, 0x15,},
387 Package (0x04) {0x0005FFFF, 0x01, 0x00, 0x16,},
388 Package (0x04) {0x0005FFFF, 0x02, 0x00, 0x17,},
389 Package (0x04) {0x0005FFFF, 0x03, 0x00, 0x10,},
390
391 Package (0x04) {0x0006FFFF, 0x00, 0x00, 0x16,},
392 Package (0x04) {0x0006FFFF, 0x01, 0x00, 0x17,},
393 Package (0x04) {0x0006FFFF, 0x02, 0x00, 0x10,},
394 Package (0x04) {0x0006FFFF, 0x03, 0x00, 0x11,},
395
396 Package (0x04) {0x0007FFFF, 0x00, 0x00, 0x17,},
397 Package (0x04) {0x0007FFFF, 0x01, 0x00, 0x10,},
398 Package (0x04) {0x0007FFFF, 0x02, 0x00, 0x11,},
399 Package (0x04) {0x0007FFFF, 0x03, 0x00, 0x12,},
400
401 Package (0x04) {0x0008FFFF, 0x00, 0x00, 0x10,},
402 Package (0x04) {0x0008FFFF, 0x01, 0x00, 0x11,},
403 Package (0x04) {0x0008FFFF, 0x02, 0x00, 0x12,},
404 Package (0x04) {0x0008FFFF, 0x03, 0x00, 0x13,},
405
406 Package (0x04) {0x0009FFFF, 0x00, 0x00, 0x11,},
407 Package (0x04) {0x0009FFFF, 0x01, 0x00, 0x12,},
408 Package (0x04) {0x0009FFFF, 0x02, 0x00, 0x13,},
409 Package (0x04) {0x0009FFFF, 0x03, 0x00, 0x14,},
410
411 Package (0x04) {0x000AFFFF, 0x00, 0x00, 0x12,},
412 Package (0x04) {0x000AFFFF, 0x01, 0x00, 0x13,},
413 Package (0x04) {0x000AFFFF, 0x02, 0x00, 0x14,},
414 Package (0x04) {0x000AFFFF, 0x03, 0x00, 0x15,},
415
416 Package (0x04) {0x000BFFFF, 0x00, 0x00, 0x13,},
417 Package (0x04) {0x000BFFFF, 0x01, 0x00, 0x14,},
418 Package (0x04) {0x000BFFFF, 0x02, 0x00, 0x15,},
419 Package (0x04) {0x000BFFFF, 0x03, 0x00, 0x16,},
420
421 Package (0x04) {0x000CFFFF, 0x00, 0x00, 0x14,},
422 Package (0x04) {0x000CFFFF, 0x01, 0x00, 0x15,},
423 Package (0x04) {0x000CFFFF, 0x02, 0x00, 0x16,},
424 Package (0x04) {0x000CFFFF, 0x03, 0x00, 0x17,},
425
426 Package (0x04) {0x000DFFFF, 0x00, 0x00, 0x15,},
427 Package (0x04) {0x000DFFFF, 0x01, 0x00, 0x16,},
428 Package (0x04) {0x000DFFFF, 0x02, 0x00, 0x17,},
429 Package (0x04) {0x000DFFFF, 0x03, 0x00, 0x10,},
430
431 Package (0x04) {0x000EFFFF, 0x00, 0x00, 0x16,},
432 Package (0x04) {0x000EFFFF, 0x01, 0x00, 0x17,},
433 Package (0x04) {0x000EFFFF, 0x02, 0x00, 0x10,},
434 Package (0x04) {0x000EFFFF, 0x03, 0x00, 0x11,},
435
436 Package (0x04) {0x000FFFFF, 0x00, 0x00, 0x17,},
437 Package (0x04) {0x000FFFFF, 0x01, 0x00, 0x10,},
438 Package (0x04) {0x000FFFFF, 0x02, 0x00, 0x11,},
439 Package (0x04) {0x000FFFFF, 0x03, 0x00, 0x12,},
440
441 Package (0x04) {0x0010FFFF, 0x00, 0x00, 0x10,},
442 Package (0x04) {0x0010FFFF, 0x01, 0x00, 0x11,},
443 Package (0x04) {0x0010FFFF, 0x02, 0x00, 0x12,},
444 Package (0x04) {0x0010FFFF, 0x03, 0x00, 0x13,},
445
446 Package (0x04) {0x0011FFFF, 0x00, 0x00, 0x11,},
447 Package (0x04) {0x0011FFFF, 0x01, 0x00, 0x12,},
448 Package (0x04) {0x0011FFFF, 0x02, 0x00, 0x13,},
449 Package (0x04) {0x0011FFFF, 0x03, 0x00, 0x14,},
450
451 Package (0x04) {0x0012FFFF, 0x00, 0x00, 0x12,},
452 Package (0x04) {0x0012FFFF, 0x01, 0x00, 0x13,},
453 Package (0x04) {0x0012FFFF, 0x02, 0x00, 0x14,},
454 Package (0x04) {0x0012FFFF, 0x03, 0x00, 0x15,},
455
456 Package (0x04) {0x0013FFFF, 0x00, 0x00, 0x13,},
457 Package (0x04) {0x0013FFFF, 0x01, 0x00, 0x14,},
458 Package (0x04) {0x0013FFFF, 0x02, 0x00, 0x15,},
459 Package (0x04) {0x0013FFFF, 0x03, 0x00, 0x16,},
460
461 Package (0x04) {0x0014FFFF, 0x00, 0x00, 0x14,},
462 Package (0x04) {0x0014FFFF, 0x01, 0x00, 0x15,},
463 Package (0x04) {0x0014FFFF, 0x02, 0x00, 0x16,},
464 Package (0x04) {0x0014FFFF, 0x03, 0x00, 0x17,},
465
466 Package (0x04) {0x0015FFFF, 0x00, 0x00, 0x15,},
467 Package (0x04) {0x0015FFFF, 0x01, 0x00, 0x16,},
468 Package (0x04) {0x0015FFFF, 0x02, 0x00, 0x17,},
469 Package (0x04) {0x0015FFFF, 0x03, 0x00, 0x10,},
470
471 Package (0x04) {0x0016FFFF, 0x00, 0x00, 0x16,},
472 Package (0x04) {0x0016FFFF, 0x01, 0x00, 0x17,},
473 Package (0x04) {0x0016FFFF, 0x02, 0x00, 0x10,},
474 Package (0x04) {0x0016FFFF, 0x03, 0x00, 0x11,},
475
476 Package (0x04) {0x0017FFFF, 0x00, 0x00, 0x17,},
477 Package (0x04) {0x0017FFFF, 0x01, 0x00, 0x10,},
478 Package (0x04) {0x0017FFFF, 0x02, 0x00, 0x11,},
479 Package (0x04) {0x0017FFFF, 0x03, 0x00, 0x12,},
480
481 Package (0x04) {0x0018FFFF, 0x00, 0x00, 0x10,},
482 Package (0x04) {0x0018FFFF, 0x01, 0x00, 0x11,},
483 Package (0x04) {0x0018FFFF, 0x02, 0x00, 0x12,},
484 Package (0x04) {0x0018FFFF, 0x03, 0x00, 0x13,},
485
486 Package (0x04) {0x0019FFFF, 0x00, 0x00, 0x11,},
487 Package (0x04) {0x0019FFFF, 0x01, 0x00, 0x12,},
488 Package (0x04) {0x0019FFFF, 0x02, 0x00, 0x13,},
489 Package (0x04) {0x0019FFFF, 0x03, 0x00, 0x14,},
490
491 Package (0x04) {0x001AFFFF, 0x00, 0x00, 0x12,},
492 Package (0x04) {0x001AFFFF, 0x01, 0x00, 0x13,},
493 Package (0x04) {0x001AFFFF, 0x02, 0x00, 0x14,},
494 Package (0x04) {0x001AFFFF, 0x03, 0x00, 0x15,},
495
496 Package (0x04) {0x001BFFFF, 0x00, 0x00, 0x13,},
497 Package (0x04) {0x001BFFFF, 0x01, 0x00, 0x14,},
498 Package (0x04) {0x001BFFFF, 0x02, 0x00, 0x15,},
499 Package (0x04) {0x001BFFFF, 0x03, 0x00, 0x16,},
500
501 Package (0x04) {0x001CFFFF, 0x00, 0x00, 0x14,},
502 Package (0x04) {0x001CFFFF, 0x01, 0x00, 0x15,},
503 Package (0x04) {0x001CFFFF, 0x02, 0x00, 0x16,},
504 Package (0x04) {0x001CFFFF, 0x03, 0x00, 0x17,},
505
506 Package (0x04) {0x001DFFFF, 0x00, 0x00, 0x15,},
507 Package (0x04) {0x001DFFFF, 0x01, 0x00, 0x16,},
508 Package (0x04) {0x001DFFFF, 0x02, 0x00, 0x17,},
509 Package (0x04) {0x001DFFFF, 0x03, 0x00, 0x10,},
510
511 Package (0x04) {0x001EFFFF, 0x00, 0x00, 0x16,},
512 Package (0x04) {0x001EFFFF, 0x01, 0x00, 0x17,},
513 Package (0x04) {0x001EFFFF, 0x02, 0x00, 0x10,},
514 Package (0x04) {0x001EFFFF, 0x03, 0x00, 0x11,},
515
516 Package (0x04) {0x001FFFFF, 0x00, 0x00, 0x17,},
517 Package (0x04) {0x001FFFFF, 0x01, 0x00, 0x10,},
518 Package (0x04) {0x001FFFFF, 0x02, 0x00, 0x11,},
519 Package (0x04) {0x001FFFFF, 0x03, 0x00, 0x12,}
520 })
521
522 // Possible resource settings for PCI link A
523 Name (PRSA, ResourceTemplate ()
524 {
525 IRQ (Level, ActiveLow, Shared) {5,9,10,11}
526 })
527
528 // Possible resource settings for PCI link B
529 Name (PRSB, ResourceTemplate ()
530 {
531 IRQ (Level, ActiveLow, Shared) {5,9,10,11}
532 })
533
534 // Possible resource settings for PCI link C
535 Name (PRSC, ResourceTemplate ()
536 {
537 IRQ (Level, ActiveLow, Shared) {5,9,10,11}
538 })
539
540 // Possible resource settings for PCI link D
541 Name (PRSD, ResourceTemplate ()
542 {
543 IRQ (Level, ActiveLow, Shared) {5,9,10,11}
544 })
545
546 // PCI bus 0
547 Device (PCI0)
548 {
549 Name (_HID, EisaId ("PNP0A03"))
550 Name (_ADR, 0x00) // address
551 Name (_BBN, 0x00) // base bus adddress
552 Name (_UID, 0x00)
553
554 // Method that returns routing table
555 Method (_PRT, 0, NotSerialized)
556 {
557 if (LEqual (LAnd (PICM, UIOA), Zero)) {
558 DBG ("RETURNING PIC\n")
559 Store (0x00, \_SB.PCI0.SBRG.APDE)
560 Store (0x00, \_SB.PCI0.SBRG.APAD)
561 Return (PR00)
562 }
563 else {
564 DBG ("RETURNING APIC\n")
565 Store (0xbe, \_SB.PCI0.SBRG.APDE)
566 Store (0xef, \_SB.PCI0.SBRG.APAD)
567 Return (PR01)
568 }
569 }
570
571 Device (SBRG)
572 {
573 // Address of the PIIX3 (device 1 function 0)
574 Name (_ADR, 0x00010000)
575 OperationRegion (PCIC, PCI_Config, 0x00, 0xff)
576
577 Field (PCIC, ByteAcc, NoLock, Preserve)
578 {
579 Offset (0xad),
580 APAD, 8,
581 Offset (0xde),
582 APDE, 8,
583 }
584
585 // Keyboard device
586 Device (PS2K)
587 {
588 Name (_HID, EisaId ("PNP0303"))
589 Method (_STA, 0, NotSerialized)
590 {
591 Return (0x0F)
592 }
593
594 Name (_CRS, ResourceTemplate ()
595 {
596 IO (Decode16, 0x0060, 0x0060, 0x00, 0x01)
597 IO (Decode16, 0x0064, 0x0064, 0x00, 0x01)
598 IRQNoFlags () {1}
599 })
600 }
601
602 // DMA Controller
603 Device (DMAC)
604 {
605 Name (_HID, EisaId ("PNP0200"))
606 Name (_CRS, ResourceTemplate ()
607 {
608 IO (Decode16, 0x0000, 0x0000, 0x01, 0x10)
609 IO (Decode16, 0x0080, 0x0080, 0x01, 0x10)
610 IO (Decode16, 0x00C0, 0x00C0, 0x01, 0x20)
611 DMA (Compatibility, BusMaster, Transfer8_16) {4}
612 })
613 }
614
615 // Floppy disk controller
616 Device (FDC0)
617 {
618 Name (_HID, EisaId ("PNP0700"))
619
620 Method (_STA, 0, NotSerialized)
621 {
622 Return (UFDC)
623 }
624
625 // Current resource settings
626 Name (_CRS, ResourceTemplate ()
627 {
628 IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
629 IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
630 IRQNoFlags () {6}
631 DMA (Compatibility, NotBusMaster, Transfer8) {2}
632 })
633
634 // Possible resource settings
635 Name (_PRS, ResourceTemplate ()
636 {
637 IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
638 IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
639 IRQNoFlags () {6}
640 DMA (Compatibility, NotBusMaster, Transfer8) {2}
641 })
642
643 }
644
645 // Mouse device
646 Device (PS2M)
647 {
648 Name (_HID, EisaId ("PNP0F03"))
649 Method (_STA, 0, NotSerialized)
650 {
651 Return (0x0F)
652 }
653
654 Name (_CRS, ResourceTemplate ()
655 {
656 IO (Decode16, 0x0060, 0x0060, 0x00, 0x01)
657 IO (Decode16, 0x0064, 0x0064, 0x00, 0x01)
658 IRQNoFlags () {12}
659 })
660 }
661
662 // Parallel port
663 Device (LPT)
664 {
665 Name (_HID, EisaId ("PNP0400"))
666 Method (_STA, 0, NotSerialized)
667 {
668 Return (0x0F)
669 }
670 Name (_CRS, ResourceTemplate ()
671 {
672 IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
673 IO (Decode16, 0x0778, 0x0778, 0x08, 0x08)
674 IRQNoFlags () {7}
675 })
676 }
677 }
678
679 // Control method battery
680 Device (BAT0)
681 {
682 Name (_HID, EisaId ("PNP0C0A"))
683 Name (_UID, 0x00)
684
685 Scope (\_GPE)
686 {
687 // GPE bit 0 handler
688 // GPE.0 must be set and SCI raised when
689 // battery info changed and _BIF must be
690 // re-evaluated
691 Method (_L00, 0, NotSerialized)
692 {
693 Notify (\_SB.PCI0.BAT0, 0x81)
694 }
695 }
696
697 OperationRegion (CBAT, SystemIO, 0x4040, 0x08)
698 Field (CBAT, DwordAcc, NoLock, Preserve)
699 {
700 IDX0, 32,
701 DAT0, 32,
702 }
703
704 IndexField (IDX0, DAT0, DwordAcc, NoLock, Preserve)
705 {
706 STAT, 32,
707 PRAT, 32,
708 RCAP, 32,
709 PVOL, 32,
710
711 UNIT, 32,
712 DCAP, 32,
713 LFCP, 32,
714 BTEC, 32,
715 DVOL, 32,
716 DWRN, 32,
717 DLOW, 32,
718 GRN1, 32,
719 GRN2, 32,
720
721 BSTA, 32,
722 APSR, 32,
723 }
724
725 Method (_STA, 0, NotSerialized)
726 {
727 return (BSTA)
728 }
729
730 Name (PBIF, Package ()
731 {
732 0x01, // Power unit, 1 - mA
733 0x7fffffff, // Design capacity
734 0x7fffffff, // Last full charge capacity
735 0x00, // Battery technology
736 0xffffffff, // Design voltage
737 0x00, // Design capacity of Warning
738 0x00, // Design capacity of Low
739 0x04, // Battery capacity granularity 1
740 0x04, // Battery capacity granularity 2
741 "1", // Model number
742 "0", // Serial number
743 "VBOX", // Battery type
744 "innotek" // OEM Information
745 })
746
747 Name (PBST, Package () {
748 0, // Battery state
749 0x7fffffff, // Battery present rate
750 0x7fffffff, // Battery remaining capacity
751 0x7fffffff // Battery present voltage
752 })
753
754 // Battery information
755 Method (_BIF, 0, NotSerialized)
756 {
757 Store (UNIT, Index (PBIF, 0,))
758 Store (DCAP, Index (PBIF, 1,))
759 Store (LFCP, Index (PBIF, 2,))
760 Store (BTEC, Index (PBIF, 3,))
761 Store (DVOL, Index (PBIF, 4,))
762 Store (DWRN, Index (PBIF, 5,))
763 Store (DLOW, Index (PBIF, 6,))
764 Store (GRN1, Index (PBIF, 7,))
765 Store (GRN2, Index (PBIF, 8,))
766
767 DBG ("_BIF:\n")
768 HEX4 (DerefOf (Index (PBIF, 0,)))
769 HEX4 (DerefOf (Index (PBIF, 1,)))
770 HEX4 (DerefOf (Index (PBIF, 2,)))
771 HEX4 (DerefOf (Index (PBIF, 3,)))
772 HEX4 (DerefOf (Index (PBIF, 4,)))
773 HEX4 (DerefOf (Index (PBIF, 5,)))
774 HEX4 (DerefOf (Index (PBIF, 6,)))
775 HEX4 (DerefOf (Index (PBIF, 7,)))
776 HEX4 (DerefOf (Index (PBIF, 8,)))
777
778 return (PBIF)
779 }
780
781 // Battery status
782 Method (_BST, 0, NotSerialized)
783 {
784 Store (STAT, Index (PBST, 0,))
785 Store (PRAT, Index (PBST, 1,))
786 Store (RCAP, Index (PBST, 2,))
787 Store (PVOL, Index (PBST, 3,))
788/*
789 DBG ("_BST:\n")
790 HEX4 (DerefOf (Index (PBST, 0,)))
791 HEX4 (DerefOf (Index (PBST, 1,)))
792 HEX4 (DerefOf (Index (PBST, 2,)))
793 HEX4 (DerefOf (Index (PBST, 3,)))
794*/
795 return (PBST)
796 }
797 }
798
799 Device (AC)
800 {
801 Name (_HID, "ACPI0003")
802 Name (_UID, 0x00)
803 Name (_PCL, Package (0x01)
804 {
805 \_SB
806 })
807
808 Method (_PSR, 0, NotSerialized)
809 {
810 // DBG ("_PSR:\n")
811 // HEX4 (\_SB.PCI0.BAT0.APSR)
812 return (\_SB.PCI0.BAT0.APSR)
813 }
814
815 Method (_STA, 0, NotSerialized)
816 {
817 return (0x0f)
818 }
819 }
820 }
821 }
822
823 Scope (\_SB)
824 {
825 Scope (PCI0)
826 {
827 // PCI0 current resource settings
828 Name (CRS, ResourceTemplate ()
829 {
830 WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
831 0x0000,
832 0x0000,
833 0x00FF,
834 0x0000,
835 0x0100)
836 IO (Decode16, 0x0CF8, 0x0CF8, 0x01, 0x08)
837 WordIO (ResourceProducer, MinFixed, MaxFixed,
838 PosDecode, EntireRange,
839 0x0000,
840 0x0000,
841 0x0CF7,
842 0x0000,
843 0x0CF8)
844 WordIO (ResourceProducer, MinFixed, MaxFixed,
845 PosDecode, EntireRange,
846 0x0000,
847 0x0D00,
848 0xFFFF,
849 0x0000,
850 0xF300)
851
852 /* Taken from ACPI faq (with some modifications) */
853 DwordMemory( // descriptor for video RAM behind ISA bus
854 ResourceProducer, // bit 0 of general flags is 0
855 PosDecode,
856 MinFixed, // Range is fixed
857 MaxFixed, // Range is Fixed
858 Cacheable,
859 ReadWrite,
860 0x00000000, // Granularity
861 0x000a0000, // Min
862 0x000bffff, // Max
863 0x00000000, // Translation
864 0x00020000 // Range Length
865 )
866
867 DwordMemory( // Consumed-and-produced resource
868 // (all of low memory space)
869 ResourceProducer, // bit 0 of general flags is 0
870 PosDecode, // positive Decode
871 MinFixed, // Range is fixed
872 MaxFixed, // Range is fixed
873 Cacheable,
874 ReadWrite,
875 0x00000000, // Granularity
876 0x00000000, // Min (calculated dynamically)
877
878 0xffdfffff, // Max = 4GB - 2MB
879 0x00000000, // Translation
880 0xdfdfffff, // Range Length (calculated
881 // dynamically)
882 , // Optional field left blank
883 , // Optional field left blank
884 MEM3 // Name declaration for this
885 // descriptor
886 )
887 })
888
889// Name (TOM, ResourceTemplate () // Memory above 4GB (aka high), appended when needed.
890// {
891// QWORDMemory(
892// ResourceProducer, // bit 0 of general flags is 0
893// PosDecode, // positive Decode
894// MinFixed, // Range is fixed
895// MaxFixed, // Range is fixed
896// Cacheable,
897// ReadWrite,
898// 0x0000000000000000, // _GRA: Granularity.
899// 0 /*0x0000000100000000*/, // _MIN: Min address, 4GB.
900// 0 /*0x00000fffffffffff*/, // _MAX: Max possible address, 16TB.
901// 0x0000000000000000, // _TRA: Translation
902// 0x0000000000000000, // _LEN: Range length (calculated dynamically)
903// , // ResourceSourceIndex: Optional field left blank
904// , // ResourceSource: Optional field left blank
905// MEM4 // Name declaration for this descriptor.
906// )
907// })
908
909 Method (_CRS, 0, NotSerialized)
910 {
911 CreateDwordField (CRS, \_SB.PCI0.MEM3._MIN, RAMT)
912 CreateDwordField (CRS, \_SB.PCI0.MEM3._LEN, RAMR)
913// CreateQwordField (TOM, \_SB.PCI0.MEM4._LEN, TM4L)
914// CreateQwordField (TOM, \_SB.PCI0.MEM4._LEN, TM4N)
915// CreateQwordField (TOM, \_SB.PCI0.MEM4._LEN, TM4X)
916
917 Store (MEML, RAMT)
918 Subtract (0xffe00000, RAMT, RAMR)
919
920// If (LNotEqual (MEMH, 0x00000000))
921// {
922// //
923// // Update the TOM resource template and append it to CRS.
924// // This way old < 4GB guest doesn't see anything different.
925// // (MEMH is the memory above 4GB specified in 64KB units.)
926// //
927// // Note: ACPI v2 doesn't do 32-bit integers. IASL may fail on
928// // seeing 64-bit constants and the code probably wont work.
929// //
930// Store (1, TM4N)
931// ShiftLeft (TM4N, 32, TM4N)
932//
933// Store (0x00000fff, TM4X)
934// ShiftLeft (TM4X, 32, TM4X)
935// Or (TM4X, 0xffffffff, TM4X)
936//
937// Store (MEMH, TM4L)
938// ShiftLeft (TM4L, 16, TM4L)
939//
940// ConcatenateResTemplate (CRS, TOM, Local2)
941// Return (Local2)
942// }
943
944 Return (CRS)
945 }
946 }
947 }
948
949 Scope (\_SB)
950 {
951 // High Precision Event Timer
952 Device(HPET) {
953 Name(_HID, EISAID("PNP0103"))
954 Name (_CID, 0x010CD041)
955 Name(_UID, 0)
956 Method (_STA, 0, NotSerialized) {
957 Return(UHPT)
958 }
959 Name(_CRS, ResourceTemplate() {
960 DWordMemory(
961 ResourceConsumer, PosDecode, MinFixed, MaxFixed,
962 NonCacheable, ReadWrite,
963 0x00000000,
964 0xFED00000,
965 0xFED003FF,
966 0x00000000,
967 0x00000400 /* 1K memory: FED00000 - FED003FF */
968 )
969 })
970 }
971
972 // Conditionally enabled, as lead to hang of Windows 7 and Vista guests
973 Device (RTC) {
974 Name (_HID, EisaId ("PNP0B00"))
975 Name (_CRS, ResourceTemplate ()
976 {
977 IO (Decode16,
978 0x0070, // Range Minimum
979 0x0070, // Range Maximum
980 0x01, // Alignment
981 0x08, // Length
982 )
983 })
984 Method (_STA, 0, NotSerialized)
985 {
986 Return (URTC)
987 }
988 }
989
990 // System Management Controller
991 Device (SMC)
992 {
993 Name (_HID, EisaId ("APP0001"))
994 Name (_CID, "smc-napa")
995
996 Method (_STA, 0, NotSerialized)
997 {
998 Return (USMC)
999 }
1000 Name (_CRS, ResourceTemplate ()
1001 {
1002 IO (Decode16,
1003 0x0300, // Range Minimum
1004 0x0300, // Range Maximum
1005 0x01, // Alignment
1006 0x20, // Length
1007 )
1008 // This line seriously confuses Windows ACPI driver, so not even try to
1009 // enable SMC for Windows guests
1010 IRQNoFlags () {8}
1011 })
1012 }
1013
1014 // Fields within PIIX3 configuration[0x60..0x63] with
1015 // IRQ mappings
1016 Field (\_SB.PCI0.SBRG.PCIC, ByteAcc, NoLock, Preserve)
1017 {
1018 Offset (0x60),
1019 PIRA, 8,
1020 PIRB, 8,
1021 PIRC, 8,
1022 PIRD, 8
1023 }
1024
1025 Name (BUFA, ResourceTemplate ()
1026 {
1027 IRQ (Level, ActiveLow, Shared) {15}
1028 })
1029 CreateWordField (BUFA, 0x01, ICRS)
1030
1031 // Generic status of IRQ routing entry
1032 Method (LSTA, 1, NotSerialized)
1033 {
1034 And (Arg0, 0x80, Local0)
1035// DBG ("LSTA: ")
1036// HEX (Arg0)
1037 If (Local0)
1038 {
1039 Return (0x09)
1040 }
1041 Else
1042 {
1043 Return (0x0B)
1044 }
1045 }
1046
1047 // Generic "current resource settings" for routing entry
1048 Method (LCRS, 1, NotSerialized)
1049 {
1050 And (Arg0, 0x0F, Local0)
1051 ShiftLeft (0x01, Local0, ICRS)
1052// DBG ("LCRS: ")
1053// HEX (ICRS)
1054 Return (BUFA)
1055 }
1056
1057 // Generic "set resource settings" for routing entry
1058 Method (LSRS, 1, NotSerialized)
1059 {
1060 CreateWordField (Arg0, 0x01, ISRS)
1061 FindSetRightBit (ISRS, Local0)
1062 Return (Decrement (Local0))
1063 }
1064
1065 // Generic "disable" for routing entry
1066 Method (LDIS, 1, NotSerialized)
1067 {
1068 Return (Or (Arg0, 0x80))
1069 }
1070
1071 // Link A
1072 Device (LNKA)
1073 {
1074 Name (_HID, EisaId ("PNP0C0F"))
1075 Name (_UID, 0x01)
1076
1077 // Status
1078 Method (_STA, 0, NotSerialized)
1079 {
1080 DBG ("LNKA._STA\n")
1081 Return (LSTA (PIRA))
1082 }
1083
1084 // Possible resource settings
1085 Method (_PRS, 0, NotSerialized)
1086 {
1087 DBG ("LNKA._PRS\n")
1088 Return (PRSA)
1089 }
1090
1091 // Disable
1092 Method (_DIS, 0, NotSerialized)
1093 {
1094 DBG ("LNKA._DIS\n")
1095 Store (LDIS (PIRA), PIRA)
1096 }
1097
1098 // Current resource settings
1099 Method (_CRS, 0, NotSerialized)
1100 {
1101 DBG ("LNKA._CRS\n")
1102 Return (LCRS (PIRA))
1103 }
1104
1105 // Set resource settings
1106 Method (_SRS, 1, NotSerialized)
1107 {
1108 DBG ("LNKA._SRS: ")
1109 HEX (LSRS (Arg0))
1110 Store (LSRS (Arg0), PIRA)
1111 }
1112 }
1113
1114 // Link B
1115 Device (LNKB)
1116 {
1117 Name (_HID, EisaId ("PNP0C0F"))
1118 Name (_UID, 0x02)
1119 Method (_STA, 0, NotSerialized)
1120 {
1121 // DBG ("LNKB._STA\n")
1122 Return (LSTA (PIRB))
1123 }
1124
1125 Method (_PRS, 0, NotSerialized)
1126 {
1127 // DBG ("LNKB._PRS\n")
1128 Return (PRSB)
1129 }
1130
1131 Method (_DIS, 0, NotSerialized)
1132 {
1133 // DBG ("LNKB._DIS\n")
1134 Store (LDIS (PIRB), PIRB)
1135 }
1136
1137 Method (_CRS, 0, NotSerialized)
1138 {
1139 // DBG ("LNKB._CRS\n")
1140 Return (LCRS (PIRB))
1141 }
1142
1143 Method (_SRS, 1, NotSerialized)
1144 {
1145 DBG ("LNKB._SRS: ")
1146 HEX (LSRS (Arg0))
1147 Store (LSRS (Arg0), PIRB)
1148 }
1149 }
1150
1151 // Link C
1152 Device (LNKC)
1153 {
1154 Name (_HID, EisaId ("PNP0C0F"))
1155 Name (_UID, 0x03)
1156 Method (_STA, 0, NotSerialized)
1157 {
1158 // DBG ("LNKC._STA\n")
1159 Return (LSTA (PIRC))
1160 }
1161
1162 Method (_PRS, 0, NotSerialized)
1163 {
1164 // DBG ("LNKC._PRS\n")
1165 Return (PRSC)
1166 }
1167
1168 Method (_DIS, 0, NotSerialized)
1169 {
1170 // DBG ("LNKC._DIS\n")
1171 Store (LDIS (PIRC), PIRC)
1172 }
1173
1174 Method (_CRS, 0, NotSerialized)
1175 {
1176 // DBG ("LNKC._CRS\n")
1177 Return (LCRS (PIRC))
1178 }
1179
1180 Method (_SRS, 1, NotSerialized)
1181 {
1182 DBG ("LNKC._SRS: ")
1183 HEX (LSRS (Arg0))
1184 Store (LSRS (Arg0), PIRC)
1185 }
1186 }
1187
1188 // Link D
1189 Device (LNKD)
1190 {
1191 Name (_HID, EisaId ("PNP0C0F"))
1192 Name (_UID, 0x04)
1193 Method (_STA, 0, NotSerialized)
1194 {
1195 // DBG ("LNKD._STA\n")
1196 Return (LSTA (PIRD))
1197 }
1198
1199 Method (_PRS, 0, NotSerialized)
1200 {
1201 // DBG ("LNKD._PRS\n")
1202 Return (PRSD)
1203 }
1204
1205 Method (_DIS, 0, NotSerialized)
1206 {
1207 // DBG ("LNKD._DIS\n")
1208 Store (LDIS (PIRA), PIRD)
1209 }
1210
1211 Method (_CRS, 0, NotSerialized)
1212 {
1213 // DBG ("LNKD._CRS\n")
1214 Return (LCRS (PIRD))
1215 }
1216
1217 Method (_SRS, 1, NotSerialized)
1218 {
1219 DBG ("LNKD._SRS: ")
1220 HEX (LSRS (Arg0))
1221 Store (LSRS (Arg0), PIRD)
1222 }
1223 }
1224 }
1225
1226 // Sx states
1227 Name (_S0, Package (2) {
1228 0x00,
1229 0x00,
1230 })
1231
1232 Name (_S5, Package (2) {
1233 0x05,
1234 0x05,
1235 })
1236
1237 Method (_PTS, 1, NotSerialized)
1238 {
1239 DBG ("Prepare to sleep: ")
1240 HEX (Arg0)
1241 }
1242}
1243
1244/*
1245 * Local Variables:
1246 * comment-start: "//"
1247 * End:
1248 */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette