VirtualBox

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

Last change on this file since 27031 was 26939, checked in by vboxsync, 15 years ago

ACPI, APIC, HPET: emulate typical configuration wrt ISA interrupt routing

  • Property svn:eol-style set to LF
  • Property svn:keywords set to Id
File size: 44.0 KB
Line 
1// $Id: vbox.dsl 26939 2010-03-02 12:13:40Z 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
518 Method (_PRT, 0, NotSerialized)
519 {
520 if (LEqual (LAnd (PICM, UIOA), Zero)) {
521 DBG ("RETURNING PIC\n")
522 Store (0x00, \_SB.PCI0.SBRG.APDE)
523 Store (0x00, \_SB.PCI0.SBRG.APAD)
524 Return (PR00)
525 }
526 else {
527 DBG ("RETURNING APIC\n")
528 Store (0xbe, \_SB.PCI0.SBRG.APDE)
529 Store (0xef, \_SB.PCI0.SBRG.APAD)
530 Return (PR01)
531 }
532 }
533
534 Device (SBRG)
535 {
536 // Address of the PIIX3 (device 1 function 0)
537 Name (_ADR, 0x00010000)
538 OperationRegion (PCIC, PCI_Config, 0x00, 0xff)
539
540 Field (PCIC, ByteAcc, NoLock, Preserve)
541 {
542 Offset (0xad),
543 APAD, 8,
544 Offset (0xde),
545 APDE, 8,
546 }
547
548 // Keyboard device
549 Device (PS2K)
550 {
551 Name (_HID, EisaId ("PNP0303"))
552 Method (_STA, 0, NotSerialized)
553 {
554 Return (0x0F)
555 }
556
557 Name (_CRS, ResourceTemplate ()
558 {
559 IO (Decode16, 0x0060, 0x0060, 0x00, 0x01)
560 IO (Decode16, 0x0064, 0x0064, 0x00, 0x01)
561 IRQNoFlags () {1}
562 })
563 }
564
565 // DMA Controller
566 Device (DMAC)
567 {
568 Name (_HID, EisaId ("PNP0200"))
569 Name (_CRS, ResourceTemplate ()
570 {
571 IO (Decode16, 0x0000, 0x0000, 0x01, 0x10)
572 IO (Decode16, 0x0080, 0x0080, 0x01, 0x10)
573 IO (Decode16, 0x00C0, 0x00C0, 0x01, 0x20)
574 DMA (Compatibility, BusMaster, Transfer8_16) {4}
575 })
576 }
577
578 // Floppy disk controller
579 Device (FDC0)
580 {
581 Name (_HID, EisaId ("PNP0700"))
582
583 Method (_STA, 0, NotSerialized)
584 {
585 Return (UFDC)
586 }
587
588 // Current resource settings
589 Name (_CRS, ResourceTemplate ()
590 {
591 IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
592 IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
593 IRQNoFlags () {6}
594 DMA (Compatibility, NotBusMaster, Transfer8) {2}
595 })
596
597 // Possible resource settings
598 Name (_PRS, ResourceTemplate ()
599 {
600 IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
601 IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
602 IRQNoFlags () {6}
603 DMA (Compatibility, NotBusMaster, Transfer8) {2}
604 })
605
606 }
607
608 // Mouse device
609 Device (PS2M)
610 {
611 Name (_HID, EisaId ("PNP0F03"))
612 Method (_STA, 0, NotSerialized)
613 {
614 Return (0x0F)
615 }
616
617 Name (_CRS, ResourceTemplate ()
618 {
619 IRQNoFlags () {12}
620 })
621 }
622
623 // Parallel port
624 Device (LPT)
625 {
626 Name (_HID, EisaId ("PNP0400"))
627 Method (_STA, 0, NotSerialized)
628 {
629 Return (0x0F)
630 }
631 Name (_CRS, ResourceTemplate ()
632 {
633 IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
634 IO (Decode16, 0x0778, 0x0778, 0x08, 0x08)
635 IRQNoFlags () {7}
636 })
637 }
638
639 // Programmable Interval Timer (i8254)
640 Device (TIMR)
641 {
642 Name (_HID, EisaId ("PNP0100"))
643 Name (_CRS, ResourceTemplate ()
644 {
645 IO (Decode16,
646 0x0040, // Range Minimum
647 0x0040, // Range Maximum
648 0x00, // Alignment
649 0x04, // Length
650 )
651 IO (Decode16,
652 0x0050, // Range Minimum
653 0x0050, // Range Maximum
654 0x10, // Alignment
655 0x04, // Length
656 )
657 })
658 }
659
660 // Programmable Interrupt Controller (i8259)
661 Device (PIC)
662 {
663 Name (_HID, EisaId ("PNP0000"))
664 Name (_CRS, ResourceTemplate ()
665 {
666 IO (Decode16,
667 0x0020, // Range Minimum
668 0x0020, // Range Maximum
669 0x00, // Alignment
670 0x02, // Length
671 )
672 IO (Decode16,
673 0x00A0, // Range Minimum
674 0x00A0, // Range Maximum
675 0x00, // Alignment
676 0x02, // Length
677 )
678 // because in APIC configs PIC connected to pin 0,
679 // and ISA IRQ0 rerouted to pin 2
680 IRQNoFlags ()
681 {2}
682 })
683 }
684
685
686 // Real Time Clock and CMOS (MC146818)
687 Device (RTC)
688 {
689 Name (_HID, EisaId ("PNP0B00"))
690 Name (_CRS, ResourceTemplate ()
691 {
692 IO (Decode16,
693 0x0070, // Range Minimum
694 0x0070, // Range Maximum
695 0x01, // Alignment
696 0x02, // Length
697 )
698 })
699 Method (_STA, 0, NotSerialized)
700 {
701 Return (0x0f)
702 }
703 }
704
705 // High Precision Event Timer
706 Device(HPET)
707 {
708 Name (_HID, EISAID("PNP0103"))
709 Name (_CID, EISAID("PNP0C01"))
710 Name(_UID, 0)
711
712 Method (_STA, 0, NotSerialized)
713 {
714 Return(UHPT)
715 }
716
717 Name(CRS, ResourceTemplate()
718 {
719 IRQNoFlags ()
720 {0}
721 IRQNoFlags ()
722 {8}
723 Memory32Fixed (ReadWrite,
724 0xFED00000, // Address Base
725 0x00000400 // Address Length
726 )
727 })
728
729 Method (_CRS, 0, NotSerialized)
730 {
731 Return (CRS)
732 }
733 }
734
735 // System Management Controller
736 Device (SMC)
737 {
738 Name (_HID, EisaId ("APP0001"))
739 Name (_CID, "smc-napa")
740
741 Method (_STA, 0, NotSerialized)
742 {
743 Return (USMC)
744 }
745 Name (CRS, ResourceTemplate ()
746 {
747 IO (Decode16,
748 0x0300, // Range Minimum
749 0x0300, // Range Maximum
750 0x01, // Alignment
751 0x20) // Length
752 IRQNoFlags ()
753 {6}
754
755 })
756 Method (_CRS, 0, NotSerialized)
757 {
758 Return (CRS)
759 }
760 }
761 }
762
763 // Control method battery
764 Device (BAT0)
765 {
766 Name (_HID, EisaId ("PNP0C0A"))
767 Name (_UID, 0x00)
768
769 Scope (\_GPE)
770 {
771 // GPE bit 0 handler
772 // GPE.0 must be set and SCI raised when
773 // battery info changed and _BIF must be
774 // re-evaluated
775 Method (_L00, 0, NotSerialized)
776 {
777 Notify (\_SB.PCI0.BAT0, 0x81)
778 }
779 }
780
781 OperationRegion (CBAT, SystemIO, 0x4040, 0x08)
782 Field (CBAT, DwordAcc, NoLock, Preserve)
783 {
784 IDX0, 32,
785 DAT0, 32,
786 }
787
788 IndexField (IDX0, DAT0, DwordAcc, NoLock, Preserve)
789 {
790 STAT, 32,
791 PRAT, 32,
792 RCAP, 32,
793 PVOL, 32,
794
795 UNIT, 32,
796 DCAP, 32,
797 LFCP, 32,
798 BTEC, 32,
799 DVOL, 32,
800 DWRN, 32,
801 DLOW, 32,
802 GRN1, 32,
803 GRN2, 32,
804
805 BSTA, 32,
806 APSR, 32,
807 }
808
809 Method (_STA, 0, NotSerialized)
810 {
811 return (BSTA)
812 }
813
814 Name (PBIF, Package ()
815 {
816 0x01, // Power unit, 1 - mA
817 0x7fffffff, // Design capacity
818 0x7fffffff, // Last full charge capacity
819 0x00, // Battery technology
820 0xffffffff, // Design voltage
821 0x00, // Design capacity of Warning
822 0x00, // Design capacity of Low
823 0x04, // Battery capacity granularity 1
824 0x04, // Battery capacity granularity 2
825 "1", // Model number
826 "0", // Serial number
827 "VBOX", // Battery type
828 "innotek" // OEM Information
829 })
830
831 Name (PBST, Package () {
832 0, // Battery state
833 0x7fffffff, // Battery present rate
834 0x7fffffff, // Battery remaining capacity
835 0x7fffffff // Battery present voltage
836 })
837
838 // Battery information
839 Method (_BIF, 0, NotSerialized)
840 {
841 Store (UNIT, Index (PBIF, 0,))
842 Store (DCAP, Index (PBIF, 1,))
843 Store (LFCP, Index (PBIF, 2,))
844 Store (BTEC, Index (PBIF, 3,))
845 Store (DVOL, Index (PBIF, 4,))
846 Store (DWRN, Index (PBIF, 5,))
847 Store (DLOW, Index (PBIF, 6,))
848 Store (GRN1, Index (PBIF, 7,))
849 Store (GRN2, Index (PBIF, 8,))
850
851 DBG ("_BIF:\n")
852 HEX4 (DerefOf (Index (PBIF, 0,)))
853 HEX4 (DerefOf (Index (PBIF, 1,)))
854 HEX4 (DerefOf (Index (PBIF, 2,)))
855 HEX4 (DerefOf (Index (PBIF, 3,)))
856 HEX4 (DerefOf (Index (PBIF, 4,)))
857 HEX4 (DerefOf (Index (PBIF, 5,)))
858 HEX4 (DerefOf (Index (PBIF, 6,)))
859 HEX4 (DerefOf (Index (PBIF, 7,)))
860 HEX4 (DerefOf (Index (PBIF, 8,)))
861
862 return (PBIF)
863 }
864
865 // Battery status
866 Method (_BST, 0, NotSerialized)
867 {
868 Store (STAT, Index (PBST, 0,))
869 Store (PRAT, Index (PBST, 1,))
870 Store (RCAP, Index (PBST, 2,))
871 Store (PVOL, Index (PBST, 3,))
872/*
873 DBG ("_BST:\n")
874 HEX4 (DerefOf (Index (PBST, 0,)))
875 HEX4 (DerefOf (Index (PBST, 1,)))
876 HEX4 (DerefOf (Index (PBST, 2,)))
877 HEX4 (DerefOf (Index (PBST, 3,)))
878*/
879 return (PBST)
880 }
881 }
882
883 Device (AC)
884 {
885 Name (_HID, "ACPI0003")
886 Name (_UID, 0x00)
887 Name (_PCL, Package (0x01)
888 {
889 \_SB
890 })
891
892 Method (_PSR, 0, NotSerialized)
893 {
894 // DBG ("_PSR:\n")
895 // HEX4 (\_SB.PCI0.BAT0.APSR)
896 return (\_SB.PCI0.BAT0.APSR)
897 }
898
899 Method (_STA, 0, NotSerialized)
900 {
901 return (0x0f)
902 }
903 }
904 }
905 }
906
907 Scope (\_SB)
908 {
909 Scope (PCI0)
910 {
911 // PCI0 current resource settings
912 Name (CRS, ResourceTemplate ()
913 {
914 WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
915 0x0000,
916 0x0000,
917 0x00FF,
918 0x0000,
919 0x0100)
920 IO (Decode16, 0x0CF8, 0x0CF8, 0x01, 0x08)
921 WordIO (ResourceProducer, MinFixed, MaxFixed,
922 PosDecode, EntireRange,
923 0x0000,
924 0x0000,
925 0x0CF7,
926 0x0000,
927 0x0CF8)
928 WordIO (ResourceProducer, MinFixed, MaxFixed,
929 PosDecode, EntireRange,
930 0x0000,
931 0x0D00,
932 0xFFFF,
933 0x0000,
934 0xF300)
935
936 /* Taken from ACPI faq (with some modifications) */
937 DwordMemory( // descriptor for video RAM behind ISA bus
938 ResourceProducer, // bit 0 of general flags is 0
939 PosDecode,
940 MinFixed, // Range is fixed
941 MaxFixed, // Range is Fixed
942 Cacheable,
943 ReadWrite,
944 0x00000000, // Granularity
945 0x000a0000, // Min
946 0x000bffff, // Max
947 0x00000000, // Translation
948 0x00020000 // Range Length
949 )
950
951 DwordMemory( // Consumed-and-produced resource
952 // (all of low memory space)
953 ResourceProducer, // bit 0 of general flags is 0
954 PosDecode, // positive Decode
955 MinFixed, // Range is fixed
956 MaxFixed, // Range is fixed
957 Cacheable,
958 ReadWrite,
959 0x00000000, // Granularity
960 0x00000000, // Min (calculated dynamically)
961
962 0xffdfffff, // Max = 4GB - 2MB
963 0x00000000, // Translation
964 0xdfdfffff, // Range Length (calculated
965 // dynamically)
966 , // Optional field left blank
967 , // Optional field left blank
968 MEM3 // Name declaration for this
969 // descriptor
970 )
971 })
972
973// Name (TOM, ResourceTemplate () // Memory above 4GB (aka high), appended when needed.
974// {
975// QWORDMemory(
976// ResourceProducer, // bit 0 of general flags is 0
977// PosDecode, // positive Decode
978// MinFixed, // Range is fixed
979// MaxFixed, // Range is fixed
980// Cacheable,
981// ReadWrite,
982// 0x0000000000000000, // _GRA: Granularity.
983// 0 /*0x0000000100000000*/, // _MIN: Min address, 4GB.
984// 0 /*0x00000fffffffffff*/, // _MAX: Max possible address, 16TB.
985// 0x0000000000000000, // _TRA: Translation
986// 0x0000000000000000, // _LEN: Range length (calculated dynamically)
987// , // ResourceSourceIndex: Optional field left blank
988// , // ResourceSource: Optional field left blank
989// MEM4 // Name declaration for this descriptor.
990// )
991// })
992
993 Method (_CRS, 0, NotSerialized)
994 {
995 CreateDwordField (CRS, \_SB.PCI0.MEM3._MIN, RAMT)
996 CreateDwordField (CRS, \_SB.PCI0.MEM3._LEN, RAMR)
997// CreateQwordField (TOM, \_SB.PCI0.MEM4._LEN, TM4L)
998// CreateQwordField (TOM, \_SB.PCI0.MEM4._LEN, TM4N)
999// CreateQwordField (TOM, \_SB.PCI0.MEM4._LEN, TM4X)
1000
1001 Store (MEML, RAMT)
1002 Subtract (0xffe00000, RAMT, RAMR)
1003
1004// If (LNotEqual (MEMH, 0x00000000))
1005// {
1006// //
1007// // Update the TOM resource template and append it to CRS.
1008// // This way old < 4GB guest doesn't see anything different.
1009// // (MEMH is the memory above 4GB specified in 64KB units.)
1010// //
1011// // Note: ACPI v2 doesn't do 32-bit integers. IASL may fail on
1012// // seeing 64-bit constants and the code probably wont work.
1013// //
1014// Store (1, TM4N)
1015// ShiftLeft (TM4N, 32, TM4N)
1016//
1017// Store (0x00000fff, TM4X)
1018// ShiftLeft (TM4X, 32, TM4X)
1019// Or (TM4X, 0xffffffff, TM4X)
1020//
1021// Store (MEMH, TM4L)
1022// ShiftLeft (TM4L, 16, TM4L)
1023//
1024// ConcatenateResTemplate (CRS, TOM, Local2)
1025// Return (Local2)
1026// }
1027
1028 Return (CRS)
1029 }
1030 }
1031 }
1032
1033 Scope (\_SB)
1034 {
1035 // Fields within PIIX3 configuration[0x60..0x63] with
1036 // IRQ mappings
1037 Field (\_SB.PCI0.SBRG.PCIC, ByteAcc, NoLock, Preserve)
1038 {
1039 Offset (0x60),
1040 PIRA, 8,
1041 PIRB, 8,
1042 PIRC, 8,
1043 PIRD, 8
1044 }
1045
1046 Name (BUFA, ResourceTemplate ()
1047 {
1048 IRQ (Level, ActiveLow, Shared) {15}
1049 })
1050 CreateWordField (BUFA, 0x01, ICRS)
1051
1052 // Generic status of IRQ routing entry
1053 Method (LSTA, 1, NotSerialized)
1054 {
1055 And (Arg0, 0x80, Local0)
1056// DBG ("LSTA: ")
1057// HEX (Arg0)
1058 If (Local0)
1059 {
1060 Return (0x09)
1061 }
1062 Else
1063 {
1064 Return (0x0B)
1065 }
1066 }
1067
1068 // Generic "current resource settings" for routing entry
1069 Method (LCRS, 1, NotSerialized)
1070 {
1071 And (Arg0, 0x0F, Local0)
1072 ShiftLeft (0x01, Local0, ICRS)
1073// DBG ("LCRS: ")
1074// HEX (ICRS)
1075 Return (BUFA)
1076 }
1077
1078 // Generic "set resource settings" for routing entry
1079 Method (LSRS, 1, NotSerialized)
1080 {
1081 CreateWordField (Arg0, 0x01, ISRS)
1082 FindSetRightBit (ISRS, Local0)
1083 Return (Decrement (Local0))
1084 }
1085
1086 // Generic "disable" for routing entry
1087 Method (LDIS, 1, NotSerialized)
1088 {
1089 Return (Or (Arg0, 0x80))
1090 }
1091
1092 // Link A
1093 Device (LNKA)
1094 {
1095 Name (_HID, EisaId ("PNP0C0F"))
1096 Name (_UID, 0x01)
1097
1098 // Status
1099 Method (_STA, 0, NotSerialized)
1100 {
1101 DBG ("LNKA._STA\n")
1102 Return (LSTA (PIRA))
1103 }
1104
1105 // Possible resource settings
1106 Method (_PRS, 0, NotSerialized)
1107 {
1108 DBG ("LNKA._PRS\n")
1109 Return (PRSA)
1110 }
1111
1112 // Disable
1113 Method (_DIS, 0, NotSerialized)
1114 {
1115 DBG ("LNKA._DIS\n")
1116 Store (LDIS (PIRA), PIRA)
1117 }
1118
1119 // Current resource settings
1120 Method (_CRS, 0, NotSerialized)
1121 {
1122 DBG ("LNKA._CRS\n")
1123 Return (LCRS (PIRA))
1124 }
1125
1126 // Set resource settings
1127 Method (_SRS, 1, NotSerialized)
1128 {
1129 DBG ("LNKA._SRS: ")
1130 HEX (LSRS (Arg0))
1131 Store (LSRS (Arg0), PIRA)
1132 }
1133 }
1134
1135 // Link B
1136 Device (LNKB)
1137 {
1138 Name (_HID, EisaId ("PNP0C0F"))
1139 Name (_UID, 0x02)
1140 Method (_STA, 0, NotSerialized)
1141 {
1142 // DBG ("LNKB._STA\n")
1143 Return (LSTA (PIRB))
1144 }
1145
1146 Method (_PRS, 0, NotSerialized)
1147 {
1148 // DBG ("LNKB._PRS\n")
1149 Return (PRSB)
1150 }
1151
1152 Method (_DIS, 0, NotSerialized)
1153 {
1154 // DBG ("LNKB._DIS\n")
1155 Store (LDIS (PIRB), PIRB)
1156 }
1157
1158 Method (_CRS, 0, NotSerialized)
1159 {
1160 // DBG ("LNKB._CRS\n")
1161 Return (LCRS (PIRB))
1162 }
1163
1164 Method (_SRS, 1, NotSerialized)
1165 {
1166 DBG ("LNKB._SRS: ")
1167 HEX (LSRS (Arg0))
1168 Store (LSRS (Arg0), PIRB)
1169 }
1170 }
1171
1172 // Link C
1173 Device (LNKC)
1174 {
1175 Name (_HID, EisaId ("PNP0C0F"))
1176 Name (_UID, 0x03)
1177 Method (_STA, 0, NotSerialized)
1178 {
1179 // DBG ("LNKC._STA\n")
1180 Return (LSTA (PIRC))
1181 }
1182
1183 Method (_PRS, 0, NotSerialized)
1184 {
1185 // DBG ("LNKC._PRS\n")
1186 Return (PRSC)
1187 }
1188
1189 Method (_DIS, 0, NotSerialized)
1190 {
1191 // DBG ("LNKC._DIS\n")
1192 Store (LDIS (PIRC), PIRC)
1193 }
1194
1195 Method (_CRS, 0, NotSerialized)
1196 {
1197 // DBG ("LNKC._CRS\n")
1198 Return (LCRS (PIRC))
1199 }
1200
1201 Method (_SRS, 1, NotSerialized)
1202 {
1203 DBG ("LNKC._SRS: ")
1204 HEX (LSRS (Arg0))
1205 Store (LSRS (Arg0), PIRC)
1206 }
1207 }
1208
1209 // Link D
1210 Device (LNKD)
1211 {
1212 Name (_HID, EisaId ("PNP0C0F"))
1213 Name (_UID, 0x04)
1214 Method (_STA, 0, NotSerialized)
1215 {
1216 // DBG ("LNKD._STA\n")
1217 Return (LSTA (PIRD))
1218 }
1219
1220 Method (_PRS, 0, NotSerialized)
1221 {
1222 // DBG ("LNKD._PRS\n")
1223 Return (PRSD)
1224 }
1225
1226 Method (_DIS, 0, NotSerialized)
1227 {
1228 // DBG ("LNKD._DIS\n")
1229 Store (LDIS (PIRA), PIRD)
1230 }
1231
1232 Method (_CRS, 0, NotSerialized)
1233 {
1234 // DBG ("LNKD._CRS\n")
1235 Return (LCRS (PIRD))
1236 }
1237
1238 Method (_SRS, 1, NotSerialized)
1239 {
1240 DBG ("LNKD._SRS: ")
1241 HEX (LSRS (Arg0))
1242 Store (LSRS (Arg0), PIRD)
1243 }
1244 }
1245 }
1246
1247 // Sx states
1248 Name (_S0, Package (2) {
1249 0x00,
1250 0x00,
1251 })
1252
1253 Name (_S5, Package (2) {
1254 0x05,
1255 0x05,
1256 })
1257
1258 Method (_PTS, 1, NotSerialized)
1259 {
1260 DBG ("Prepare to sleep: ")
1261 HEX (Arg0)
1262 }
1263}
1264
1265/*
1266 * Local Variables:
1267 * comment-start: "//"
1268 * End:
1269 */
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