VirtualBox

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

Last change on this file since 27298 was 27079, checked in by vboxsync, 15 years ago

Added comments about PCI/ACPI/IOAPIC interrupt routing backdoor.

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

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