VirtualBox

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

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

Implemented in-place disable of ACPI devices, added disabled by default record
for HPET and SMC into ACPI file.

  • Property svn:eol-style set to LF
  • Property svn:keywords set to Id
File size: 38.5 KB
Line 
1// $Id: vbox.dsl 16005 2009-01-16 21:48:26Z 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// Scope (\_PR)
126// {
127// Processor (CPU1, 0x01, 0x00000000, 0x00) {}
128// }
129
130 Scope (\_SB)
131 {
132 OperationRegion (SYSI, SystemIO, 0x4048, 0x8)
133 Field (SYSI, DwordAcc, NoLock, Preserve)
134 {
135 IDX0, 32,
136 DAT0, 32,
137 }
138
139 IndexField (IDX0, DAT0, DwordAcc, NoLock, Preserve)
140 {
141 MEML, 32,
142 UIOA, 32,
143 UHPT, 32,
144 USMC, 32,
145 UFDC, 32,
146 Offset (0x80),
147 ININ, 32,
148 Offset (0x200),
149 VAIN, 32,
150 }
151
152 Method (_INI, 0, NotSerialized)
153 {
154 Store (0xbadc0de, VAIN)
155 DBG ("MEML: ")
156 HEX4 (MEML)
157 DBG ("UIOA: ")
158 HEX4 (UIOA)
159 DBG ("UHPT: ")
160 HEX4 (UHPT)
161 DBG ("USMC: ")
162 HEX4 (USMC)
163 DBG ("UFDC: ")
164 HEX4 (UFDC)
165 }
166
167 // PCI PIC IRQ Routing table
168 // Must match pci.c:pci_slot_get_pirq
169 Name (PR00, Package ()
170 {
171 Package (0x04) {0x0002FFFF, 0x00, LNKB, 0x00,},
172 Package (0x04) {0x0002FFFF, 0x01, LNKC, 0x00,},
173 Package (0x04) {0x0002FFFF, 0x02, LNKD, 0x00,},
174 Package (0x04) {0x0002FFFF, 0x03, LNKA, 0x00,},
175
176 Package (0x04) {0x0003FFFF, 0x00, LNKC, 0x00,},
177 Package (0x04) {0x0003FFFF, 0x01, LNKD, 0x00,},
178 Package (0x04) {0x0003FFFF, 0x02, LNKA, 0x00,},
179 Package (0x04) {0x0003FFFF, 0x03, LNKB, 0x00,},
180
181 Package (0x04) {0x0004FFFF, 0x00, LNKD, 0x00,},
182 Package (0x04) {0x0004FFFF, 0x01, LNKA, 0x00,},
183 Package (0x04) {0x0004FFFF, 0x02, LNKB, 0x00,},
184 Package (0x04) {0x0004FFFF, 0x03, LNKC, 0x00,},
185
186 Package (0x04) {0x0005FFFF, 0x00, LNKA, 0x00,},
187 Package (0x04) {0x0005FFFF, 0x01, LNKB, 0x00,},
188 Package (0x04) {0x0005FFFF, 0x02, LNKC, 0x00,},
189 Package (0x04) {0x0005FFFF, 0x03, LNKD, 0x00,},
190
191 Package (0x04) {0x0006FFFF, 0x00, LNKB, 0x00,},
192 Package (0x04) {0x0006FFFF, 0x01, LNKC, 0x00,},
193 Package (0x04) {0x0006FFFF, 0x02, LNKD, 0x00,},
194 Package (0x04) {0x0006FFFF, 0x03, LNKA, 0x00,},
195
196 Package (0x04) {0x0007FFFF, 0x00, LNKC, 0x00,},
197 Package (0x04) {0x0007FFFF, 0x01, LNKD, 0x00,},
198 Package (0x04) {0x0007FFFF, 0x02, LNKA, 0x00,},
199 Package (0x04) {0x0007FFFF, 0x03, LNKB, 0x00,},
200
201 Package (0x04) {0x0008FFFF, 0x00, LNKD, 0x00,},
202 Package (0x04) {0x0008FFFF, 0x01, LNKA, 0x00,},
203 Package (0x04) {0x0008FFFF, 0x02, LNKB, 0x00,},
204 Package (0x04) {0x0008FFFF, 0x03, LNKC, 0x00,},
205
206 Package (0x04) {0x0009FFFF, 0x00, LNKA, 0x00,},
207 Package (0x04) {0x0009FFFF, 0x01, LNKB, 0x00,},
208 Package (0x04) {0x0009FFFF, 0x02, LNKC, 0x00,},
209 Package (0x04) {0x0009FFFF, 0x03, LNKD, 0x00,},
210
211 Package (0x04) {0x000AFFFF, 0x00, LNKB, 0x00,},
212 Package (0x04) {0x000AFFFF, 0x01, LNKC, 0x00,},
213 Package (0x04) {0x000AFFFF, 0x02, LNKD, 0x00,},
214 Package (0x04) {0x000AFFFF, 0x03, LNKA, 0x00,},
215
216 Package (0x04) {0x000BFFFF, 0x00, LNKC, 0x00,},
217 Package (0x04) {0x000BFFFF, 0x01, LNKD, 0x00,},
218 Package (0x04) {0x000BFFFF, 0x02, LNKA, 0x00,},
219 Package (0x04) {0x000BFFFF, 0x03, LNKB, 0x00,},
220
221 Package (0x04) {0x000CFFFF, 0x00, LNKD, 0x00,},
222 Package (0x04) {0x000CFFFF, 0x01, LNKA, 0x00,},
223 Package (0x04) {0x000CFFFF, 0x02, LNKB, 0x00,},
224 Package (0x04) {0x000CFFFF, 0x03, LNKC, 0x00,},
225
226 Package (0x04) {0x000DFFFF, 0x00, LNKA, 0x00,},
227 Package (0x04) {0x000DFFFF, 0x01, LNKB, 0x00,},
228 Package (0x04) {0x000DFFFF, 0x02, LNKC, 0x00,},
229 Package (0x04) {0x000DFFFF, 0x03, LNKD, 0x00,},
230
231 Package (0x04) {0x000EFFFF, 0x00, LNKB, 0x00,},
232 Package (0x04) {0x000EFFFF, 0x01, LNKC, 0x00,},
233 Package (0x04) {0x000EFFFF, 0x02, LNKD, 0x00,},
234 Package (0x04) {0x000EFFFF, 0x03, LNKA, 0x00,},
235
236 Package (0x04) {0x000FFFFF, 0x00, LNKC, 0x00,},
237 Package (0x04) {0x000FFFFF, 0x01, LNKD, 0x00,},
238 Package (0x04) {0x000FFFFF, 0x02, LNKA, 0x00,},
239 Package (0x04) {0x000FFFFF, 0x03, LNKB, 0x00,},
240
241 Package (0x04) {0x0010FFFF, 0x00, LNKD, 0x00,},
242 Package (0x04) {0x0010FFFF, 0x01, LNKA, 0x00,},
243 Package (0x04) {0x0010FFFF, 0x02, LNKB, 0x00,},
244 Package (0x04) {0x0010FFFF, 0x03, LNKC, 0x00,},
245
246 Package (0x04) {0x0011FFFF, 0x00, LNKA, 0x00,},
247 Package (0x04) {0x0011FFFF, 0x01, LNKB, 0x00,},
248 Package (0x04) {0x0011FFFF, 0x02, LNKC, 0x00,},
249 Package (0x04) {0x0011FFFF, 0x03, LNKD, 0x00,},
250
251 Package (0x04) {0x0012FFFF, 0x00, LNKB, 0x00,},
252 Package (0x04) {0x0012FFFF, 0x01, LNKC, 0x00,},
253 Package (0x04) {0x0012FFFF, 0x02, LNKD, 0x00,},
254 Package (0x04) {0x0012FFFF, 0x03, LNKA, 0x00,},
255
256 Package (0x04) {0x0013FFFF, 0x00, LNKC, 0x00,},
257 Package (0x04) {0x0013FFFF, 0x01, LNKD, 0x00,},
258 Package (0x04) {0x0013FFFF, 0x02, LNKA, 0x00,},
259 Package (0x04) {0x0013FFFF, 0x03, LNKB, 0x00,},
260
261 Package (0x04) {0x0014FFFF, 0x00, LNKD, 0x00,},
262 Package (0x04) {0x0014FFFF, 0x01, LNKA, 0x00,},
263 Package (0x04) {0x0014FFFF, 0x02, LNKB, 0x00,},
264 Package (0x04) {0x0014FFFF, 0x03, LNKC, 0x00,},
265
266 Package (0x04) {0x0015FFFF, 0x00, LNKA, 0x00,},
267 Package (0x04) {0x0015FFFF, 0x01, LNKB, 0x00,},
268 Package (0x04) {0x0015FFFF, 0x02, LNKC, 0x00,},
269 Package (0x04) {0x0015FFFF, 0x03, LNKD, 0x00,},
270
271 Package (0x04) {0x0016FFFF, 0x00, LNKB, 0x00,},
272 Package (0x04) {0x0016FFFF, 0x01, LNKC, 0x00,},
273 Package (0x04) {0x0016FFFF, 0x02, LNKD, 0x00,},
274 Package (0x04) {0x0016FFFF, 0x03, LNKA, 0x00,},
275
276 Package (0x04) {0x0017FFFF, 0x00, LNKC, 0x00,},
277 Package (0x04) {0x0017FFFF, 0x01, LNKD, 0x00,},
278 Package (0x04) {0x0017FFFF, 0x02, LNKA, 0x00,},
279 Package (0x04) {0x0017FFFF, 0x03, LNKB, 0x00,},
280
281 Package (0x04) {0x0018FFFF, 0x00, LNKD, 0x00,},
282 Package (0x04) {0x0018FFFF, 0x01, LNKA, 0x00,},
283 Package (0x04) {0x0018FFFF, 0x02, LNKB, 0x00,},
284 Package (0x04) {0x0018FFFF, 0x03, LNKC, 0x00,},
285
286 Package (0x04) {0x0019FFFF, 0x00, LNKA, 0x00,},
287 Package (0x04) {0x0019FFFF, 0x01, LNKB, 0x00,},
288 Package (0x04) {0x0019FFFF, 0x02, LNKC, 0x00,},
289 Package (0x04) {0x0019FFFF, 0x03, LNKD, 0x00,},
290
291 Package (0x04) {0x001AFFFF, 0x00, LNKB, 0x00,},
292 Package (0x04) {0x001AFFFF, 0x01, LNKC, 0x00,},
293 Package (0x04) {0x001AFFFF, 0x02, LNKD, 0x00,},
294 Package (0x04) {0x001AFFFF, 0x03, LNKA, 0x00,},
295
296 Package (0x04) {0x001BFFFF, 0x00, LNKC, 0x00,},
297 Package (0x04) {0x001BFFFF, 0x01, LNKD, 0x00,},
298 Package (0x04) {0x001BFFFF, 0x02, LNKA, 0x00,},
299 Package (0x04) {0x001BFFFF, 0x03, LNKB, 0x00,},
300
301 Package (0x04) {0x001CFFFF, 0x00, LNKD, 0x00,},
302 Package (0x04) {0x001CFFFF, 0x01, LNKA, 0x00,},
303 Package (0x04) {0x001CFFFF, 0x02, LNKB, 0x00,},
304 Package (0x04) {0x001CFFFF, 0x03, LNKC, 0x00,},
305
306 Package (0x04) {0x001DFFFF, 0x00, LNKA, 0x00,},
307 Package (0x04) {0x001DFFFF, 0x01, LNKB, 0x00,},
308 Package (0x04) {0x001DFFFF, 0x02, LNKC, 0x00,},
309 Package (0x04) {0x001DFFFF, 0x03, LNKD, 0x00,},
310
311 Package (0x04) {0x001EFFFF, 0x00, LNKB, 0x00,},
312 Package (0x04) {0x001EFFFF, 0x01, LNKC, 0x00,},
313 Package (0x04) {0x001EFFFF, 0x02, LNKD, 0x00,},
314 Package (0x04) {0x001EFFFF, 0x03, LNKA, 0x00,},
315
316 Package (0x04) {0x001FFFFF, 0x00, LNKC, 0x00,},
317 Package (0x04) {0x001FFFFF, 0x01, LNKD, 0x00,},
318 Package (0x04) {0x001FFFFF, 0x02, LNKA, 0x00,},
319 Package (0x04) {0x001FFFFF, 0x03, LNKB, 0x00,}
320 })
321
322 // PCI I/O APIC IRQ Routing table
323 // Must match pci.c:pci_slot_get_acpi_pirq
324 Name (PR01, Package ()
325 {
326 Package (0x04) {0x0002FFFF, 0x00, 0x00, 0x12,},
327 Package (0x04) {0x0002FFFF, 0x01, 0x00, 0x13,},
328 Package (0x04) {0x0002FFFF, 0x02, 0x00, 0x14,},
329 Package (0x04) {0x0002FFFF, 0x03, 0x00, 0x15,},
330
331 Package (0x04) {0x0003FFFF, 0x00, 0x00, 0x13,},
332 Package (0x04) {0x0003FFFF, 0x01, 0x00, 0x14,},
333 Package (0x04) {0x0003FFFF, 0x02, 0x00, 0x15,},
334 Package (0x04) {0x0003FFFF, 0x03, 0x00, 0x16,},
335
336 Package (0x04) {0x0004FFFF, 0x00, 0x00, 0x14,},
337 Package (0x04) {0x0004FFFF, 0x01, 0x00, 0x15,},
338 Package (0x04) {0x0004FFFF, 0x02, 0x00, 0x16,},
339 Package (0x04) {0x0004FFFF, 0x03, 0x00, 0x17,},
340
341 Package (0x04) {0x0005FFFF, 0x00, 0x00, 0x15,},
342 Package (0x04) {0x0005FFFF, 0x01, 0x00, 0x16,},
343 Package (0x04) {0x0005FFFF, 0x02, 0x00, 0x17,},
344 Package (0x04) {0x0005FFFF, 0x03, 0x00, 0x10,},
345
346 Package (0x04) {0x0006FFFF, 0x00, 0x00, 0x16,},
347 Package (0x04) {0x0006FFFF, 0x01, 0x00, 0x17,},
348 Package (0x04) {0x0006FFFF, 0x02, 0x00, 0x10,},
349 Package (0x04) {0x0006FFFF, 0x03, 0x00, 0x11,},
350
351 Package (0x04) {0x0007FFFF, 0x00, 0x00, 0x17,},
352 Package (0x04) {0x0007FFFF, 0x01, 0x00, 0x10,},
353 Package (0x04) {0x0007FFFF, 0x02, 0x00, 0x11,},
354 Package (0x04) {0x0007FFFF, 0x03, 0x00, 0x12,},
355
356 Package (0x04) {0x0008FFFF, 0x00, 0x00, 0x10,},
357 Package (0x04) {0x0008FFFF, 0x01, 0x00, 0x11,},
358 Package (0x04) {0x0008FFFF, 0x02, 0x00, 0x12,},
359 Package (0x04) {0x0008FFFF, 0x03, 0x00, 0x13,},
360
361 Package (0x04) {0x0009FFFF, 0x00, 0x00, 0x11,},
362 Package (0x04) {0x0009FFFF, 0x01, 0x00, 0x12,},
363 Package (0x04) {0x0009FFFF, 0x02, 0x00, 0x13,},
364 Package (0x04) {0x0009FFFF, 0x03, 0x00, 0x14,},
365
366 Package (0x04) {0x000AFFFF, 0x00, 0x00, 0x12,},
367 Package (0x04) {0x000AFFFF, 0x01, 0x00, 0x13,},
368 Package (0x04) {0x000AFFFF, 0x02, 0x00, 0x14,},
369 Package (0x04) {0x000AFFFF, 0x03, 0x00, 0x15,},
370
371 Package (0x04) {0x000BFFFF, 0x00, 0x00, 0x13,},
372 Package (0x04) {0x000BFFFF, 0x01, 0x00, 0x14,},
373 Package (0x04) {0x000BFFFF, 0x02, 0x00, 0x15,},
374 Package (0x04) {0x000BFFFF, 0x03, 0x00, 0x16,},
375
376 Package (0x04) {0x000CFFFF, 0x00, 0x00, 0x14,},
377 Package (0x04) {0x000CFFFF, 0x01, 0x00, 0x15,},
378 Package (0x04) {0x000CFFFF, 0x02, 0x00, 0x16,},
379 Package (0x04) {0x000CFFFF, 0x03, 0x00, 0x17,},
380
381 Package (0x04) {0x000DFFFF, 0x00, 0x00, 0x15,},
382 Package (0x04) {0x000DFFFF, 0x01, 0x00, 0x16,},
383 Package (0x04) {0x000DFFFF, 0x02, 0x00, 0x17,},
384 Package (0x04) {0x000DFFFF, 0x03, 0x00, 0x10,},
385
386 Package (0x04) {0x000EFFFF, 0x00, 0x00, 0x16,},
387 Package (0x04) {0x000EFFFF, 0x01, 0x00, 0x17,},
388 Package (0x04) {0x000EFFFF, 0x02, 0x00, 0x10,},
389 Package (0x04) {0x000EFFFF, 0x03, 0x00, 0x11,},
390
391 Package (0x04) {0x000FFFFF, 0x00, 0x00, 0x17,},
392 Package (0x04) {0x000FFFFF, 0x01, 0x00, 0x10,},
393 Package (0x04) {0x000FFFFF, 0x02, 0x00, 0x11,},
394 Package (0x04) {0x000FFFFF, 0x03, 0x00, 0x12,},
395
396 Package (0x04) {0x0010FFFF, 0x00, 0x00, 0x10,},
397 Package (0x04) {0x0010FFFF, 0x01, 0x00, 0x11,},
398 Package (0x04) {0x0010FFFF, 0x02, 0x00, 0x12,},
399 Package (0x04) {0x0010FFFF, 0x03, 0x00, 0x13,},
400
401 Package (0x04) {0x0011FFFF, 0x00, 0x00, 0x11,},
402 Package (0x04) {0x0011FFFF, 0x01, 0x00, 0x12,},
403 Package (0x04) {0x0011FFFF, 0x02, 0x00, 0x13,},
404 Package (0x04) {0x0011FFFF, 0x03, 0x00, 0x14,},
405
406 Package (0x04) {0x0012FFFF, 0x00, 0x00, 0x12,},
407 Package (0x04) {0x0012FFFF, 0x01, 0x00, 0x13,},
408 Package (0x04) {0x0012FFFF, 0x02, 0x00, 0x14,},
409 Package (0x04) {0x0012FFFF, 0x03, 0x00, 0x15,},
410
411 Package (0x04) {0x0013FFFF, 0x00, 0x00, 0x13,},
412 Package (0x04) {0x0013FFFF, 0x01, 0x00, 0x14,},
413 Package (0x04) {0x0013FFFF, 0x02, 0x00, 0x15,},
414 Package (0x04) {0x0013FFFF, 0x03, 0x00, 0x16,},
415
416 Package (0x04) {0x0014FFFF, 0x00, 0x00, 0x14,},
417 Package (0x04) {0x0014FFFF, 0x01, 0x00, 0x15,},
418 Package (0x04) {0x0014FFFF, 0x02, 0x00, 0x16,},
419 Package (0x04) {0x0014FFFF, 0x03, 0x00, 0x17,},
420
421 Package (0x04) {0x0015FFFF, 0x00, 0x00, 0x15,},
422 Package (0x04) {0x0015FFFF, 0x01, 0x00, 0x16,},
423 Package (0x04) {0x0015FFFF, 0x02, 0x00, 0x17,},
424 Package (0x04) {0x0015FFFF, 0x03, 0x00, 0x10,},
425
426 Package (0x04) {0x0016FFFF, 0x00, 0x00, 0x16,},
427 Package (0x04) {0x0016FFFF, 0x01, 0x00, 0x17,},
428 Package (0x04) {0x0016FFFF, 0x02, 0x00, 0x10,},
429 Package (0x04) {0x0016FFFF, 0x03, 0x00, 0x11,},
430
431 Package (0x04) {0x0017FFFF, 0x00, 0x00, 0x17,},
432 Package (0x04) {0x0017FFFF, 0x01, 0x00, 0x10,},
433 Package (0x04) {0x0017FFFF, 0x02, 0x00, 0x11,},
434 Package (0x04) {0x0017FFFF, 0x03, 0x00, 0x12,},
435
436 Package (0x04) {0x0018FFFF, 0x00, 0x00, 0x10,},
437 Package (0x04) {0x0018FFFF, 0x01, 0x00, 0x11,},
438 Package (0x04) {0x0018FFFF, 0x02, 0x00, 0x12,},
439 Package (0x04) {0x0018FFFF, 0x03, 0x00, 0x13,},
440
441 Package (0x04) {0x0019FFFF, 0x00, 0x00, 0x11,},
442 Package (0x04) {0x0019FFFF, 0x01, 0x00, 0x12,},
443 Package (0x04) {0x0019FFFF, 0x02, 0x00, 0x13,},
444 Package (0x04) {0x0019FFFF, 0x03, 0x00, 0x14,},
445
446 Package (0x04) {0x001AFFFF, 0x00, 0x00, 0x12,},
447 Package (0x04) {0x001AFFFF, 0x01, 0x00, 0x13,},
448 Package (0x04) {0x001AFFFF, 0x02, 0x00, 0x14,},
449 Package (0x04) {0x001AFFFF, 0x03, 0x00, 0x15,},
450
451 Package (0x04) {0x001BFFFF, 0x00, 0x00, 0x13,},
452 Package (0x04) {0x001BFFFF, 0x01, 0x00, 0x14,},
453 Package (0x04) {0x001BFFFF, 0x02, 0x00, 0x15,},
454 Package (0x04) {0x001BFFFF, 0x03, 0x00, 0x16,},
455
456 Package (0x04) {0x001CFFFF, 0x00, 0x00, 0x14,},
457 Package (0x04) {0x001CFFFF, 0x01, 0x00, 0x15,},
458 Package (0x04) {0x001CFFFF, 0x02, 0x00, 0x16,},
459 Package (0x04) {0x001CFFFF, 0x03, 0x00, 0x17,},
460
461 Package (0x04) {0x001DFFFF, 0x00, 0x00, 0x15,},
462 Package (0x04) {0x001DFFFF, 0x01, 0x00, 0x16,},
463 Package (0x04) {0x001DFFFF, 0x02, 0x00, 0x17,},
464 Package (0x04) {0x001DFFFF, 0x03, 0x00, 0x10,},
465
466 Package (0x04) {0x001EFFFF, 0x00, 0x00, 0x16,},
467 Package (0x04) {0x001EFFFF, 0x01, 0x00, 0x17,},
468 Package (0x04) {0x001EFFFF, 0x02, 0x00, 0x10,},
469 Package (0x04) {0x001EFFFF, 0x03, 0x00, 0x11,},
470
471 Package (0x04) {0x001FFFFF, 0x00, 0x00, 0x17,},
472 Package (0x04) {0x001FFFFF, 0x01, 0x00, 0x10,},
473 Package (0x04) {0x001FFFFF, 0x02, 0x00, 0x11,},
474 Package (0x04) {0x001FFFFF, 0x03, 0x00, 0x12,}
475 })
476
477 // Possible resource settings for PCI link A
478 Name (PRSA, ResourceTemplate ()
479 {
480 IRQ (Level, ActiveLow, Shared) {5,9,10,11}
481 })
482
483 // Possible resource settings for PCI link B
484 Name (PRSB, ResourceTemplate ()
485 {
486 IRQ (Level, ActiveLow, Shared) {5,9,10,11}
487 })
488
489 // Possible resource settings for PCI link C
490 Name (PRSC, ResourceTemplate ()
491 {
492 IRQ (Level, ActiveLow, Shared) {5,9,10,11}
493 })
494
495 // Possible resource settings for PCI link D
496 Name (PRSD, ResourceTemplate ()
497 {
498 IRQ (Level, ActiveLow, Shared) {5,9,10,11}
499 })
500
501 // High Precision Event Timer
502 Device (HPET)
503 {
504 Name (_HID, EisaId ("PNP0103"))
505 Name (_CID, 0x010CD041)
506 Name (BUF0, ResourceTemplate ()
507 {
508 IRQNoFlags ()
509 {2}
510 IRQNoFlags ()
511 {8}
512 Memory32Fixed (ReadOnly,
513 0xFED00000, // Address Base
514 0x00000400, // Address Length
515 _Y16)
516 })
517 Method (_STA, 0, NotSerialized)
518 {
519 Return (UHPT)
520 }
521 Method (_CRS, 0, Serialized)
522 {
523 Return (BUF0)
524 }
525 }
526
527 // System Management Controller
528 Device (SMC)
529 {
530 Name (_HID, EisaId ("APP0001"))
531 Name (_CID, "smc-napa")
532
533 Method (_STA, 0, NotSerialized)
534 {
535 Return (USMC)
536 }
537 Name (_CRS, ResourceTemplate ()
538 {
539 IO (Decode16,
540 0x0300, // Range Minimum
541 0x0300, // Range Maximum
542 0x01, // Alignment
543 0x20, // Length
544 )
545 IRQNoFlags ()
546 {6}
547 })
548 }
549
550
551 // PCI bus 0
552 Device (PCI0)
553 {
554 Name (_HID, EisaId ("PNP0A03"))
555 Name (_ADR, 0x00) // address
556 Name (_BBN, 0x00) // base bus adddress
557 Name (_UID, 0x00)
558
559 // Method that returns routing table
560 Method (_PRT, 0, NotSerialized)
561 {
562 if (LEqual (LAnd (PICM, UIOA), Zero)) {
563 DBG ("RETURNING PIC\n")
564 Store (0x00, \_SB.PCI0.SBRG.APDE)
565 Store (0x00, \_SB.PCI0.SBRG.APAD)
566 Return (PR00)
567 }
568 else {
569 DBG ("RETURNING APIC\n")
570 Store (0xbe, \_SB.PCI0.SBRG.APDE)
571 Store (0xef, \_SB.PCI0.SBRG.APAD)
572 Return (PR01)
573 }
574 }
575
576 Device (SBRG)
577 {
578 // Address of the PIIX3 (device 1 function 0)
579 Name (_ADR, 0x00010000)
580 OperationRegion (PCIC, PCI_Config, 0x00, 0xff)
581
582 Field (PCIC, ByteAcc, NoLock, Preserve)
583 {
584 Offset (0xad),
585 APAD, 8,
586 Offset (0xde),
587 APDE, 8,
588 }
589
590 // Keyboard device
591 Device (PS2K)
592 {
593 Name (_HID, EisaId ("PNP0303"))
594 Method (_STA, 0, NotSerialized)
595 {
596 Return (0x0F)
597 }
598
599 Name (_CRS, ResourceTemplate ()
600 {
601 IO (Decode16, 0x0060, 0x0060, 0x00, 0x01)
602 IO (Decode16, 0x0064, 0x0064, 0x00, 0x01)
603 IRQNoFlags () {1}
604 })
605 }
606
607 // DMA Controller
608 Device (DMAC)
609 {
610 Name (_HID, EisaId ("PNP0200"))
611 Name (_CRS, ResourceTemplate ()
612 {
613 IO (Decode16, 0x0000, 0x0000, 0x01, 0x10)
614 IO (Decode16, 0x0080, 0x0080, 0x01, 0x10)
615 IO (Decode16, 0x00C0, 0x00C0, 0x01, 0x20)
616 DMA (Compatibility, BusMaster, Transfer8_16) {4}
617 })
618 }
619
620 // Floppy disk controller
621 Device (FDC0)
622 {
623 Name (_HID, EisaId ("PNP0700"))
624
625 Method (_STA, 0, NotSerialized)
626 {
627 Return (UFDC)
628 }
629 // Current resource settings
630 Name (_CRS, ResourceTemplate ()
631 {
632 IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
633 IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
634 IRQNoFlags () {6}
635 DMA (Compatibility, NotBusMaster, Transfer8) {2}
636 })
637
638 // Possible resource settings
639 Name (_PRS, ResourceTemplate ()
640 {
641 IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
642 IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
643 IRQNoFlags () {6}
644 DMA (Compatibility, NotBusMaster, Transfer8) {2}
645 })
646
647 }
648
649 // Mouse device
650 Device (PS2M)
651 {
652 Name (_HID, EisaId ("PNP0F03"))
653 Method (_STA, 0, NotSerialized)
654 {
655 Return (0x0F)
656 }
657
658 Name (_CRS, ResourceTemplate ()
659 {
660 IO (Decode16, 0x0060, 0x0060, 0x00, 0x01)
661 IO (Decode16, 0x0064, 0x0064, 0x00, 0x01)
662 IRQNoFlags () {12}
663 })
664 }
665
666 // Parallel port
667 Device (LPT)
668 {
669 Name (_HID, EisaId ("PNP0400"))
670 Method (_STA, 0, NotSerialized)
671 {
672 Return (0x0F)
673 }
674 Name (_CRS, ResourceTemplate ()
675 {
676 IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
677 IO (Decode16, 0x0778, 0x0778, 0x08, 0x08)
678 IRQNoFlags () {7}
679 })
680 }
681 }
682
683 // Control method battery
684 Device (BAT0)
685 {
686 Name (_HID, EisaId ("PNP0C0A"))
687 Name (_UID, 0x00)
688
689 Scope (\_GPE)
690 {
691 // GPE bit 0 handler
692 // GPE.0 must be set and SCI raised when
693 // battery info changed and _BIF must be
694 // re-evaluated
695 Method (_L00, 0, NotSerialized)
696 {
697 Notify (\_SB.PCI0.BAT0, 0x81)
698 }
699 }
700
701 OperationRegion (CBAT, SystemIO, 0x4040, 0x08)
702 Field (CBAT, DwordAcc, NoLock, Preserve)
703 {
704 IDX0, 32,
705 DAT0, 32,
706 }
707
708 IndexField (IDX0, DAT0, DwordAcc, NoLock, Preserve)
709 {
710 STAT, 32,
711 PRAT, 32,
712 RCAP, 32,
713 PVOL, 32,
714
715 UNIT, 32,
716 DCAP, 32,
717 LFCP, 32,
718 BTEC, 32,
719 DVOL, 32,
720 DWRN, 32,
721 DLOW, 32,
722 GRN1, 32,
723 GRN2, 32,
724
725 BSTA, 32,
726 APSR, 32,
727 }
728
729 Method (_STA, 0, NotSerialized)
730 {
731 return (BSTA)
732 }
733
734 Name (PBIF, Package ()
735 {
736 0x01, // Power unit, 1 - mA
737 0x7fffffff, // Design capacity
738 0x7fffffff, // Last full charge capacity
739 0x00, // Battery technology
740 0xffffffff, // Design voltage
741 0x00, // Design capacity of Warning
742 0x00, // Design capacity of Low
743 0x04, // Battery capacity granularity 1
744 0x04, // Battery capacity granularity 2
745 "1", // Model number
746 "0", // Serial number
747 "VBOX", // Battery type
748 "innotek" // OEM Information
749 })
750
751 Name (PBST, Package () {
752 0, // Battery state
753 0x7fffffff, // Battery present rate
754 0x7fffffff, // Battery remaining capacity
755 0x7fffffff // Battery present voltage
756 })
757
758 // Battery information
759 Method (_BIF, 0, NotSerialized)
760 {
761 Store (UNIT, Index (PBIF, 0,))
762 Store (DCAP, Index (PBIF, 1,))
763 Store (LFCP, Index (PBIF, 2,))
764 Store (BTEC, Index (PBIF, 3,))
765 Store (DVOL, Index (PBIF, 4,))
766 Store (DWRN, Index (PBIF, 5,))
767 Store (DLOW, Index (PBIF, 6,))
768 Store (GRN1, Index (PBIF, 7,))
769 Store (GRN2, Index (PBIF, 8,))
770
771 DBG ("_BIF:\n")
772 HEX4 (DerefOf (Index (PBIF, 0,)))
773 HEX4 (DerefOf (Index (PBIF, 1,)))
774 HEX4 (DerefOf (Index (PBIF, 2,)))
775 HEX4 (DerefOf (Index (PBIF, 3,)))
776 HEX4 (DerefOf (Index (PBIF, 4,)))
777 HEX4 (DerefOf (Index (PBIF, 5,)))
778 HEX4 (DerefOf (Index (PBIF, 6,)))
779 HEX4 (DerefOf (Index (PBIF, 7,)))
780 HEX4 (DerefOf (Index (PBIF, 8,)))
781
782 return (PBIF)
783 }
784
785 // Battery status
786 Method (_BST, 0, NotSerialized)
787 {
788 Store (STAT, Index (PBST, 0,))
789 Store (PRAT, Index (PBST, 1,))
790 Store (RCAP, Index (PBST, 2,))
791 Store (PVOL, Index (PBST, 3,))
792/*
793 DBG ("_BST:\n")
794 HEX4 (DerefOf (Index (PBST, 0,)))
795 HEX4 (DerefOf (Index (PBST, 1,)))
796 HEX4 (DerefOf (Index (PBST, 2,)))
797 HEX4 (DerefOf (Index (PBST, 3,)))
798*/
799 return (PBST)
800 }
801 }
802
803 Device (AC)
804 {
805 Name (_HID, "ACPI0003")
806 Name (_UID, 0x00)
807 Name (_PCL, Package (0x01)
808 {
809 \_SB
810 })
811
812 Method (_PSR, 0, NotSerialized)
813 {
814 // DBG ("_PSR:\n")
815 // HEX4 (\_SB.PCI0.BAT0.APSR)
816 return (\_SB.PCI0.BAT0.APSR)
817 }
818
819 Method (_STA, 0, NotSerialized)
820 {
821 return (0x0f)
822 }
823 }
824 }
825 }
826
827 Scope (\_SB)
828 {
829 Scope (PCI0)
830 {
831 // PCI0 current resource settings
832 Name (CRS, ResourceTemplate ()
833 {
834 WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
835 0x0000,
836 0x0000,
837 0x00FF,
838 0x0000,
839 0x0100)
840 IO (Decode16, 0x0CF8, 0x0CF8, 0x01, 0x08)
841 WordIO (ResourceProducer, MinFixed, MaxFixed,
842 PosDecode, EntireRange,
843 0x0000,
844 0x0000,
845 0x0CF7,
846 0x0000,
847 0x0CF8)
848 WordIO (ResourceProducer, MinFixed, MaxFixed,
849 PosDecode, EntireRange,
850 0x0000,
851 0x0D00,
852 0xFFFF,
853 0x0000,
854 0xF300)
855
856 /* Taken from ACPI faq (with some modifications) */
857 DwordMemory( // descriptor for video RAM behind ISA bus
858 ResourceProducer, // bit 0 of general flags is 0
859 PosDecode,
860 MinFixed, // Range is fixed
861 MaxFixed, // Range is Fixed
862 Cacheable,
863 ReadWrite,
864 0x00000000, // Granularity
865 0x000a0000, // Min
866 0x000bffff, // Max
867 0x00000000, // Translation
868 0x00020000 // Range Length
869 )
870
871 DwordMemory( // Consumed-and-produced resource
872 // (all of memory space)
873 ResourceProducer, // bit 0 of general flags is 0
874 PosDecode, // positive Decode
875 MinFixed, // Range is fixed
876 MaxFixed, // Range is fixed
877 Cacheable,
878 ReadWrite,
879 0x00000000, // Granularity
880 0x00000000, // Min (calculated dynamically)
881
882 0xffdfffff, // Max = 4GB - 2MB
883 0x00000000, // Translation
884 0xdfdfffff, // Range Length (calculated
885 // dynamically)
886 , // Optional field left blank
887 , // Optional field left blank
888 MEM3 // Name declaration for this
889 // descriptor
890 )
891 })
892
893 Method (_CRS, 0, NotSerialized)
894 {
895 CreateDwordField (CRS, \_SB.PCI0.MEM3._MIN, RAMT)
896 CreateDwordField (CRS, \_SB.PCI0.MEM3._LEN, RAMR)
897 Store (MEML, RAMT)
898 Subtract (0xffe00000, RAMT, RAMR)
899 Return (CRS)
900 }
901 }
902 }
903
904 Scope (\_SB)
905 {
906 // Fields within PIIX3 configuration[0x60..0x63] with
907 // IRQ mappings
908 Field (\_SB.PCI0.SBRG.PCIC, ByteAcc, NoLock, Preserve)
909 {
910 Offset (0x60),
911 PIRA, 8,
912 PIRB, 8,
913 PIRC, 8,
914 PIRD, 8
915 }
916
917 Name (BUFA, ResourceTemplate ()
918 {
919 IRQ (Level, ActiveLow, Shared) {15}
920 })
921 CreateWordField (BUFA, 0x01, ICRS)
922
923 // Generic status of IRQ routing entry
924 Method (LSTA, 1, NotSerialized)
925 {
926 And (Arg0, 0x80, Local0)
927// DBG ("LSTA: ")
928// HEX (Arg0)
929 If (Local0)
930 {
931 Return (0x09)
932 }
933 Else
934 {
935 Return (0x0B)
936 }
937 }
938
939 // Generic "current resource settings" for routing entry
940 Method (LCRS, 1, NotSerialized)
941 {
942 And (Arg0, 0x0F, Local0)
943 ShiftLeft (0x01, Local0, ICRS)
944// DBG ("LCRS: ")
945// HEX (ICRS)
946 Return (BUFA)
947 }
948
949 // Generic "set resource settings" for routing entry
950 Method (LSRS, 1, NotSerialized)
951 {
952 CreateWordField (Arg0, 0x01, ISRS)
953 FindSetRightBit (ISRS, Local0)
954 Return (Decrement (Local0))
955 }
956
957 // Generic "disable" for routing entry
958 Method (LDIS, 1, NotSerialized)
959 {
960 Return (Or (Arg0, 0x80))
961 }
962
963 // Link A
964 Device (LNKA)
965 {
966 Name (_HID, EisaId ("PNP0C0F"))
967 Name (_UID, 0x01)
968
969 // Status
970 Method (_STA, 0, NotSerialized)
971 {
972 DBG ("LNKA._STA\n")
973 Return (LSTA (PIRA))
974 }
975
976 // Possible resource settings
977 Method (_PRS, 0, NotSerialized)
978 {
979 DBG ("LNKA._PRS\n")
980 Return (PRSA)
981 }
982
983 // Disable
984 Method (_DIS, 0, NotSerialized)
985 {
986 DBG ("LNKA._DIS\n")
987 Store (LDIS (PIRA), PIRA)
988 }
989
990 // Current resource settings
991 Method (_CRS, 0, NotSerialized)
992 {
993 DBG ("LNKA._CRS\n")
994 Return (LCRS (PIRA))
995 }
996
997 // Set resource settings
998 Method (_SRS, 1, NotSerialized)
999 {
1000 DBG ("LNKA._SRS: ")
1001 HEX (LSRS (Arg0))
1002 Store (LSRS (Arg0), PIRA)
1003 }
1004 }
1005
1006 // Link B
1007 Device (LNKB)
1008 {
1009 Name (_HID, EisaId ("PNP0C0F"))
1010 Name (_UID, 0x02)
1011 Method (_STA, 0, NotSerialized)
1012 {
1013 // DBG ("LNKB._STA\n")
1014 Return (LSTA (PIRB))
1015 }
1016
1017 Method (_PRS, 0, NotSerialized)
1018 {
1019 // DBG ("LNKB._PRS\n")
1020 Return (PRSB)
1021 }
1022
1023 Method (_DIS, 0, NotSerialized)
1024 {
1025 // DBG ("LNKB._DIS\n")
1026 Store (LDIS (PIRB), PIRB)
1027 }
1028
1029 Method (_CRS, 0, NotSerialized)
1030 {
1031 // DBG ("LNKB._CRS\n")
1032 Return (LCRS (PIRB))
1033 }
1034
1035 Method (_SRS, 1, NotSerialized)
1036 {
1037 DBG ("LNKB._SRS: ")
1038 HEX (LSRS (Arg0))
1039 Store (LSRS (Arg0), PIRB)
1040 }
1041 }
1042
1043 // Link C
1044 Device (LNKC)
1045 {
1046 Name (_HID, EisaId ("PNP0C0F"))
1047 Name (_UID, 0x03)
1048 Method (_STA, 0, NotSerialized)
1049 {
1050 // DBG ("LNKC._STA\n")
1051 Return (LSTA (PIRC))
1052 }
1053
1054 Method (_PRS, 0, NotSerialized)
1055 {
1056 // DBG ("LNKC._PRS\n")
1057 Return (PRSC)
1058 }
1059
1060 Method (_DIS, 0, NotSerialized)
1061 {
1062 // DBG ("LNKC._DIS\n")
1063 Store (LDIS (PIRC), PIRC)
1064 }
1065
1066 Method (_CRS, 0, NotSerialized)
1067 {
1068 // DBG ("LNKC._CRS\n")
1069 Return (LCRS (PIRC))
1070 }
1071
1072 Method (_SRS, 1, NotSerialized)
1073 {
1074 DBG ("LNKC._SRS: ")
1075 HEX (LSRS (Arg0))
1076 Store (LSRS (Arg0), PIRC)
1077 }
1078 }
1079
1080 // Link D
1081 Device (LNKD)
1082 {
1083 Name (_HID, EisaId ("PNP0C0F"))
1084 Name (_UID, 0x04)
1085 Method (_STA, 0, NotSerialized)
1086 {
1087 // DBG ("LNKD._STA\n")
1088 Return (LSTA (PIRD))
1089 }
1090
1091 Method (_PRS, 0, NotSerialized)
1092 {
1093 // DBG ("LNKD._PRS\n")
1094 Return (PRSD)
1095 }
1096
1097 Method (_DIS, 0, NotSerialized)
1098 {
1099 // DBG ("LNKD._DIS\n")
1100 Store (LDIS (PIRA), PIRD)
1101 }
1102
1103 Method (_CRS, 0, NotSerialized)
1104 {
1105 // DBG ("LNKD._CRS\n")
1106 Return (LCRS (PIRD))
1107 }
1108
1109 Method (_SRS, 1, NotSerialized)
1110 {
1111 DBG ("LNKD._SRS: ")
1112 HEX (LSRS (Arg0))
1113 Store (LSRS (Arg0), PIRD)
1114 }
1115 }
1116 }
1117
1118 // Sx states
1119 Name (_S0, Package (2) {
1120 0x00,
1121 0x00,
1122 })
1123
1124 Name (_S5, Package (2) {
1125 0x05,
1126 0x05,
1127 })
1128
1129 Method (_PTS, 1, NotSerialized)
1130 {
1131 DBG ("Prepare to sleep: ")
1132 HEX (Arg0)
1133 }
1134}
1135
1136/*
1137 * Local Variables:
1138 * comment-start: "//"
1139 * End:
1140 */
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