2 * Bochs/QEMU ACPI DSDT ASL definition
4 * Copyright (c) 2006 Fabrice Bellard
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License version 2 as published by the Free Software Foundation.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 "acpi-dsdt.aml", // Output Filename
22 0x01, // DSDT Compliance Revision
30 OperationRegion( PRST, SystemIO, 0xaf00, 0x02)
31 Field (PRST, ByteAcc, NoLock, WriteAsZeros)
37 Processor (CPU0, 0x00, 0x0000b010, 0x06) {Method (_STA) { Return(0xF)}}
38 Processor (CPU1, 0x01, 0x0000b010, 0x06) {
39 Name (TMP, Buffer(0x8) {0x0, 0x8, 0x01, 0x01, 0x1, 0x0, 0x0, 0x0})
41 If (And(\_PR.PRU, 0x2)) { Return(TMP) }
48 Processor (CPU2, 0x02, 0x0000b010, 0x06) {
49 Name (TMP, Buffer(0x8) {0x0, 0x8, 0x02, 0x02, 0x1, 0x0, 0x0, 0x0})
51 If (And(\_PR.PRU, 0x4)) { Return(TMP) }
58 Processor (CPU3, 0x03, 0x0000b010, 0x06) {
59 Name (TMP, Buffer(0x8) {0x0, 0x8, 0x03, 0x03, 0x1, 0x0, 0x0, 0x0})
61 If (And(\_PR.PRU, 0x8)) { Return(TMP) }
68 Processor (CPU4, 0x04, 0x0000b010, 0x06) {
69 Name (TMP, Buffer(0x8) {0x0, 0x8, 0x04, 0x04, 0x1, 0x0, 0x0, 0x0})
71 If (And(\_PR.PRU, 0x10)) { Return(TMP) }
78 Processor (CPU5, 0x05, 0x0000b010, 0x06) {
79 Name (TMP, Buffer(0x8) {0x0, 0x8, 0x05, 0x05, 0x1, 0x0, 0x0, 0x0})
81 If (And(\_PR.PRU, 0x20)) { Return(TMP) }
88 Processor (CPU6, 0x06, 0x0000b010, 0x06) {
89 Name (TMP, Buffer(0x8) {0x0, 0x8, 0x06, 0x06, 0x1, 0x0, 0x0, 0x0})
91 If (And(\_PR.PRU, 0x40)) { Return(TMP) }
98 Processor (CPU7, 0x07, 0x0000b010, 0x06) {
99 Name (TMP, Buffer(0x8) {0x0, 0x8, 0x07, 0x07, 0x1, 0x0, 0x0, 0x0})
101 If (And(\_PR.PRU, 0x80)) { Return(TMP) }
108 Processor (CPU8, 0x08, 0x0000b010, 0x06) {
109 Name (TMP, Buffer(0x8) {0x0, 0x8, 0x08, 0x08, 0x1, 0x0, 0x0, 0x0})
111 If (And(\_PR.PRU, 0x100)) { Return(TMP) }
118 Processor (CPU9, 0x09, 0x0000b010, 0x06) {
119 Name (TMP, Buffer(0x8) {0x0, 0x8, 0x09, 0x09, 0x1, 0x0, 0x0, 0x0})
121 If (And(\_PR.PRU, 0x200)) { Return(TMP) }
128 Processor (CPUA, 0x0a, 0x0000b010, 0x06) {
129 Name (TMP, Buffer(0x8) {0x0, 0x8, 0x0A, 0x0A, 0x1, 0x0, 0x0, 0x0})
131 If (And(\_PR.PRU, 0x400)) { Return(TMP) }
138 Processor (CPUB, 0x0b, 0x0000b010, 0x06) {
139 Name (TMP, Buffer(0x8) {0x0, 0x8, 0x0B, 0x0B, 0x1, 0x0, 0x0, 0x0})
141 If (And(\_PR.PRU, 0x800)) { Return(TMP) }
148 Processor (CPUC, 0x0c, 0x0000b010, 0x06) {
149 Name (TMP, Buffer(0x8) {0x0, 0x8, 0x0C, 0x0C, 0x1, 0x0, 0x0, 0x0})
151 If (And(\_PR.PRU, 0x1000)) { Return(TMP) }
158 Processor (CPUD, 0x0d, 0x0000b010, 0x06) {
159 Name (TMP, Buffer(0x8) {0x0, 0x8, 0x0D, 0x0D, 0x1, 0x0, 0x0, 0x0})
161 If (And(\_PR.PRU, 0x2000)) { Return(TMP) }
168 Processor (CPUE, 0x0e, 0x0000b010, 0x06) {
169 Name (TMP, Buffer(0x8) {0x0, 0x8, 0x0E, 0x0E, 0x1, 0x0, 0x0, 0x0})
171 If (And(\_PR.PRU, 0x4000)) { Return(TMP) }
182 /* CMOS memory access */
183 OperationRegion (CMS, SystemIO, 0x70, 0x02)
184 Field (CMS, ByteAcc, NoLock, Preserve)
189 Method (CMRD, 1, NotSerialized)
197 OperationRegion (DBG, SystemIO, 0xb044, 0x04)
198 Field (DBG, DWordAcc, NoLock, Preserve)
205 /* PCI Bus definition */
208 Name (_HID, EisaId ("PNP0A03"))
211 Name(_PRT, Package() {
212 /* PCI IRQ routing table, example from ACPI 2.0a specification,
214 /* Note: we provide the same info as the PCI routing
215 table of the Bochs BIOS */
218 Package() {0x0000ffff, 0, LNKD, 0},
219 Package() {0x0000ffff, 1, LNKA, 0},
220 Package() {0x0000ffff, 2, LNKB, 0},
221 Package() {0x0000ffff, 3, LNKC, 0},
224 Package() {0x0001ffff, 0, LNKA, 0},
225 Package() {0x0001ffff, 1, LNKB, 0},
226 Package() {0x0001ffff, 2, LNKC, 0},
227 Package() {0x0001ffff, 3, LNKD, 0},
230 Package() {0x0002ffff, 0, LNKB, 0},
231 Package() {0x0002ffff, 1, LNKC, 0},
232 Package() {0x0002ffff, 2, LNKD, 0},
233 Package() {0x0002ffff, 3, LNKA, 0},
236 Package() {0x0003ffff, 0, LNKC, 0},
237 Package() {0x0003ffff, 1, LNKD, 0},
238 Package() {0x0003ffff, 2, LNKA, 0},
239 Package() {0x0003ffff, 3, LNKB, 0},
242 Package() {0x0004ffff, 0, LNKD, 0},
243 Package() {0x0004ffff, 1, LNKA, 0},
244 Package() {0x0004ffff, 2, LNKB, 0},
245 Package() {0x0004ffff, 3, LNKC, 0},
248 Package() {0x0005ffff, 0, LNKA, 0},
249 Package() {0x0005ffff, 1, LNKB, 0},
250 Package() {0x0005ffff, 2, LNKC, 0},
251 Package() {0x0005ffff, 3, LNKD, 0},
254 Package() {0x0006ffff, 0, LNKB, 0},
255 Package() {0x0006ffff, 1, LNKC, 0},
256 Package() {0x0006ffff, 2, LNKD, 0},
257 Package() {0x0006ffff, 3, LNKA, 0},
260 Package() {0x0007ffff, 0, LNKC, 0},
261 Package() {0x0007ffff, 1, LNKD, 0},
262 Package() {0x0007ffff, 2, LNKA, 0},
263 Package() {0x0007ffff, 3, LNKB, 0},
266 Package() {0x0008ffff, 0, LNKD, 0},
267 Package() {0x0008ffff, 1, LNKA, 0},
268 Package() {0x0008ffff, 2, LNKB, 0},
269 Package() {0x0008ffff, 3, LNKC, 0},
272 Package() {0x0009ffff, 0, LNKA, 0},
273 Package() {0x0009ffff, 1, LNKB, 0},
274 Package() {0x0009ffff, 2, LNKC, 0},
275 Package() {0x0009ffff, 3, LNKD, 0},
278 Package() {0x000affff, 0, LNKB, 0},
279 Package() {0x000affff, 1, LNKC, 0},
280 Package() {0x000affff, 2, LNKD, 0},
281 Package() {0x000affff, 3, LNKA, 0},
284 Package() {0x000bffff, 0, LNKC, 0},
285 Package() {0x000bffff, 1, LNKD, 0},
286 Package() {0x000bffff, 2, LNKA, 0},
287 Package() {0x000bffff, 3, LNKB, 0},
290 Package() {0x000cffff, 0, LNKD, 0},
291 Package() {0x000cffff, 1, LNKA, 0},
292 Package() {0x000cffff, 2, LNKB, 0},
293 Package() {0x000cffff, 3, LNKC, 0},
296 Package() {0x000dffff, 0, LNKA, 0},
297 Package() {0x000dffff, 1, LNKB, 0},
298 Package() {0x000dffff, 2, LNKC, 0},
299 Package() {0x000dffff, 3, LNKD, 0},
302 Package() {0x000effff, 0, LNKB, 0},
303 Package() {0x000effff, 1, LNKC, 0},
304 Package() {0x000effff, 2, LNKD, 0},
305 Package() {0x000effff, 3, LNKA, 0},
308 Package() {0x000fffff, 0, LNKC, 0},
309 Package() {0x000fffff, 1, LNKD, 0},
310 Package() {0x000fffff, 2, LNKA, 0},
311 Package() {0x000fffff, 3, LNKB, 0},
314 Package() {0x0010ffff, 0, LNKD, 0},
315 Package() {0x0010ffff, 1, LNKA, 0},
316 Package() {0x0010ffff, 2, LNKB, 0},
317 Package() {0x0010ffff, 3, LNKC, 0},
320 Package() {0x0011ffff, 0, LNKA, 0},
321 Package() {0x0011ffff, 1, LNKB, 0},
322 Package() {0x0011ffff, 2, LNKC, 0},
323 Package() {0x0011ffff, 3, LNKD, 0},
326 Package() {0x0012ffff, 0, LNKB, 0},
327 Package() {0x0012ffff, 1, LNKC, 0},
328 Package() {0x0012ffff, 2, LNKD, 0},
329 Package() {0x0012ffff, 3, LNKA, 0},
332 Package() {0x0013ffff, 0, LNKC, 0},
333 Package() {0x0013ffff, 1, LNKD, 0},
334 Package() {0x0013ffff, 2, LNKA, 0},
335 Package() {0x0013ffff, 3, LNKB, 0},
338 Package() {0x0014ffff, 0, LNKD, 0},
339 Package() {0x0014ffff, 1, LNKA, 0},
340 Package() {0x0014ffff, 2, LNKB, 0},
341 Package() {0x0014ffff, 3, LNKC, 0},
344 Package() {0x0015ffff, 0, LNKA, 0},
345 Package() {0x0015ffff, 1, LNKB, 0},
346 Package() {0x0015ffff, 2, LNKC, 0},
347 Package() {0x0015ffff, 3, LNKD, 0},
350 Package() {0x0016ffff, 0, LNKB, 0},
351 Package() {0x0016ffff, 1, LNKC, 0},
352 Package() {0x0016ffff, 2, LNKD, 0},
353 Package() {0x0016ffff, 3, LNKA, 0},
356 Package() {0x0017ffff, 0, LNKC, 0},
357 Package() {0x0017ffff, 1, LNKD, 0},
358 Package() {0x0017ffff, 2, LNKA, 0},
359 Package() {0x0017ffff, 3, LNKB, 0},
362 Package() {0x0018ffff, 0, LNKD, 0},
363 Package() {0x0018ffff, 1, LNKA, 0},
364 Package() {0x0018ffff, 2, LNKB, 0},
365 Package() {0x0018ffff, 3, LNKC, 0},
368 Package() {0x0019ffff, 0, LNKA, 0},
369 Package() {0x0019ffff, 1, LNKB, 0},
370 Package() {0x0019ffff, 2, LNKC, 0},
371 Package() {0x0019ffff, 3, LNKD, 0},
374 Package() {0x001affff, 0, LNKB, 0},
375 Package() {0x001affff, 1, LNKC, 0},
376 Package() {0x001affff, 2, LNKD, 0},
377 Package() {0x001affff, 3, LNKA, 0},
380 Package() {0x001bffff, 0, LNKC, 0},
381 Package() {0x001bffff, 1, LNKD, 0},
382 Package() {0x001bffff, 2, LNKA, 0},
383 Package() {0x001bffff, 3, LNKB, 0},
386 Package() {0x001cffff, 0, LNKD, 0},
387 Package() {0x001cffff, 1, LNKA, 0},
388 Package() {0x001cffff, 2, LNKB, 0},
389 Package() {0x001cffff, 3, LNKC, 0},
392 Package() {0x001dffff, 0, LNKA, 0},
393 Package() {0x001dffff, 1, LNKB, 0},
394 Package() {0x001dffff, 2, LNKC, 0},
395 Package() {0x001dffff, 3, LNKD, 0},
398 Package() {0x001effff, 0, LNKB, 0},
399 Package() {0x001effff, 1, LNKC, 0},
400 Package() {0x001effff, 2, LNKD, 0},
401 Package() {0x001effff, 3, LNKA, 0},
404 Package() {0x001fffff, 0, LNKC, 0},
405 Package() {0x001fffff, 1, LNKD, 0},
406 Package() {0x001fffff, 2, LNKA, 0},
407 Package() {0x001fffff, 3, LNKB, 0},
410 OperationRegion(PCST, SystemIO, 0xae00, 0x08)
411 Field (PCST, DWordAcc, NoLock, WriteAsZeros)
417 OperationRegion(SEJ, SystemIO, 0xae08, 0x04)
418 Field (SEJ, DWordAcc, NoLock, WriteAsZeros)
423 Device (S1) { // Slot 1
424 Name (_ADR, 0x00010000)
431 Device (S2) { // Slot 2
432 Name (_ADR, 0x00020000)
439 Device (S3) { // Slot 3
440 Name (_ADR, 0x00030000)
447 Device (S4) { // Slot 4
448 Name (_ADR, 0x00040000)
455 Device (S5) { // Slot 5
456 Name (_ADR, 0x00050000)
463 Device (S6) { // Slot 6
464 Name (_ADR, 0x00060000)
471 Device (S7) { // Slot 7
472 Name (_ADR, 0x00070000)
479 Device (S8) { // Slot 8
480 Name (_ADR, 0x00080000)
487 Device (S9) { // Slot 9
488 Name (_ADR, 0x00090000)
495 Device (S10) { // Slot 10
496 Name (_ADR, 0x000A0000)
503 Device (S11) { // Slot 11
504 Name (_ADR, 0x000B0000)
511 Device (S12) { // Slot 12
512 Name (_ADR, 0x000C0000)
519 Device (S13) { // Slot 13
520 Name (_ADR, 0x000D0000)
527 Device (S14) { // Slot 14
528 Name (_ADR, 0x000E0000)
535 Device (S15) { // Slot 15
536 Name (_ADR, 0x000F0000)
543 Device (S16) { // Slot 16
544 Name (_ADR, 0x00100000)
551 Device (S17) { // Slot 17
552 Name (_ADR, 0x00110000)
559 Device (S18) { // Slot 18
560 Name (_ADR, 0x00120000)
567 Device (S19) { // Slot 19
568 Name (_ADR, 0x00130000)
575 Device (S20) { // Slot 20
576 Name (_ADR, 0x00140000)
578 Store(0x100000, B0EJ)
583 Device (S21) { // Slot 21
584 Name (_ADR, 0x00150000)
586 Store(0x200000, B0EJ)
591 Device (S22) { // Slot 22
592 Name (_ADR, 0x00160000)
594 Store(0x400000, B0EJ)
599 Device (S23) { // Slot 23
600 Name (_ADR, 0x00170000)
602 Store(0x800000, B0EJ)
607 Device (S24) { // Slot 24
608 Name (_ADR, 0x00180000)
610 Store(0x1000000, B0EJ)
615 Device (S25) { // Slot 25
616 Name (_ADR, 0x00190000)
618 Store(0x2000000, B0EJ)
623 Device (S26) { // Slot 26
624 Name (_ADR, 0x001A0000)
626 Store(0x4000000, B0EJ)
631 Device (S27) { // Slot 27
632 Name (_ADR, 0x001B0000)
634 Store(0x8000000, B0EJ)
639 Device (S28) { // Slot 28
640 Name (_ADR, 0x001C0000)
642 Store(0x10000000, B0EJ)
647 Device (S29) { // Slot 29
648 Name (_ADR, 0x001D0000)
650 Store(0x20000000, B0EJ)
655 Device (S30) { // Slot 30
656 Name (_ADR, 0x001E0000)
658 Store(0x40000000, B0EJ)
663 Device (S31) { // Slot 31
664 Name (_ADR, 0x001F0000)
666 Store(0x80000000, B0EJ)
671 Method (_CRS, 0, NotSerialized)
673 Name (MEMP, ResourceTemplate ()
675 WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
676 0x0000, // Address Space Granularity
677 0x0000, // Address Range Minimum
678 0x00FF, // Address Range Maximum
679 0x0000, // Address Translation Offset
680 0x0100, // Address Length
683 0x0CF8, // Address Range Minimum
684 0x0CF8, // Address Range Maximum
685 0x01, // Address Alignment
686 0x08, // Address Length
688 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
689 0x0000, // Address Space Granularity
690 0x0000, // Address Range Minimum
691 0x0CF7, // Address Range Maximum
692 0x0000, // Address Translation Offset
693 0x0CF8, // Address Length
695 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
696 0x0000, // Address Space Granularity
697 0x0D00, // Address Range Minimum
698 0xFFFF, // Address Range Maximum
699 0x0000, // Address Translation Offset
700 0xF300, // Address Length
702 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
703 0x00000000, // Address Space Granularity
704 0x000A0000, // Address Range Minimum
705 0x000BFFFF, // Address Range Maximum
706 0x00000000, // Address Translation Offset
707 0x00020000, // Address Length
708 ,, , AddressRangeMemory, TypeStatic)
709 DWordMemory (ResourceProducer, PosDecode, MinNotFixed, MaxFixed, NonCacheable, ReadWrite,
710 0x00000000, // Address Space Granularity
711 0x00000000, // Address Range Minimum
712 0xFEBFFFFF, // Address Range Maximum
713 0x00000000, // Address Translation Offset
714 0x00000000, // Address Length
715 ,, MEMF, AddressRangeMemory, TypeStatic)
717 CreateDWordField (MEMP, \_SB.PCI0._CRS.MEMF._MIN, PMIN)
718 CreateDWordField (MEMP, \_SB.PCI0._CRS.MEMF._MAX, PMAX)
719 CreateDWordField (MEMP, \_SB.PCI0._CRS.MEMF._LEN, PLEN)
720 /* compute available RAM */
721 Add(CMRD(0x34), ShiftLeft(CMRD(0x35), 8), Local0)
722 ShiftLeft(Local0, 16, Local0)
723 Add(Local0, 0x1000000, Local0)
724 /* update field of last region */
726 Subtract (PMAX, PMIN, PLEN)
735 /* PIIX3 ISA bridge */
737 Name (_ADR, 0x00010000)
739 /* PIIX PCI to ISA irq remapping */
740 OperationRegion (P40C, PCI_Config, 0x60, 0x04)
742 /* Real-time clock */
745 Name (_HID, EisaId ("PNP0B00"))
746 Name (_CRS, ResourceTemplate ()
748 IO (Decode16, 0x0070, 0x0070, 0x10, 0x02)
750 IO (Decode16, 0x0072, 0x0072, 0x02, 0x06)
754 /* Keyboard seems to be important for WinXP install */
757 Name (_HID, EisaId ("PNP0303"))
758 Method (_STA, 0, NotSerialized)
763 Method (_CRS, 0, NotSerialized)
765 Name (TMP, ResourceTemplate ()
768 0x0060, // Address Range Minimum
769 0x0060, // Address Range Maximum
770 0x01, // Address Alignment
771 0x01, // Address Length
774 0x0064, // Address Range Minimum
775 0x0064, // Address Range Maximum
776 0x01, // Address Alignment
777 0x01, // Address Length
789 Name (_HID, EisaId ("PNP0F13"))
790 Method (_STA, 0, NotSerialized)
795 Method (_CRS, 0, NotSerialized)
797 Name (TMP, ResourceTemplate ()
805 /* PS/2 floppy controller */
808 Name (_HID, EisaId ("PNP0700"))
809 Method (_STA, 0, NotSerialized)
813 Method (_CRS, 0, NotSerialized)
815 Name (BUF0, ResourceTemplate ()
817 IO (Decode16, 0x03F2, 0x03F2, 0x00, 0x04)
818 IO (Decode16, 0x03F7, 0x03F7, 0x00, 0x01)
820 DMA (Compatibility, NotBusMaster, Transfer8) {2}
829 Name (_HID, EisaId ("PNP0400"))
830 Method (_STA, 0, NotSerialized)
832 Store (\_SB.PCI0.PX13.DRSA, Local0)
833 And (Local0, 0x80000000, Local0)
834 If (LEqual (Local0, 0))
843 Method (_CRS, 0, NotSerialized)
845 Name (BUF0, ResourceTemplate ()
847 IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
857 Name (_HID, EisaId ("PNP0501"))
859 Method (_STA, 0, NotSerialized)
861 Store (\_SB.PCI0.PX13.DRSC, Local0)
862 And (Local0, 0x08000000, Local0)
863 If (LEqual (Local0, 0))
872 Method (_CRS, 0, NotSerialized)
874 Name (BUF0, ResourceTemplate ()
876 IO (Decode16, 0x03F8, 0x03F8, 0x00, 0x08)
885 Name (_HID, EisaId ("PNP0501"))
887 Method (_STA, 0, NotSerialized)
889 Store (\_SB.PCI0.PX13.DRSC, Local0)
890 And (Local0, 0x80000000, Local0)
891 If (LEqual (Local0, 0))
900 Method (_CRS, 0, NotSerialized)
902 Name (BUF0, ResourceTemplate ()
904 IO (Decode16, 0x02F8, 0x02F8, 0x00, 0x08)
914 Name (_ADR, 0x00010003)
916 OperationRegion (P13C, PCI_Config, 0x5c, 0x24)
917 Field (P13C, DWordAcc, NoLock, Preserve)
934 Field (\_SB.PCI0.ISA.P40C, ByteAcc, NoLock, Preserve)
943 Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link
945 Name(_PRS, ResourceTemplate(){
946 Interrupt (, Level, ActiveHigh, Shared)
949 Method (_STA, 0, NotSerialized)
952 If (And (0x80, PRQ0, Local1))
958 Method (_DIS, 0, NotSerialized)
960 Or (PRQ0, 0x80, PRQ0)
962 Method (_CRS, 0, NotSerialized)
964 Name (PRR0, ResourceTemplate ()
966 Interrupt (, Level, ActiveHigh, Shared)
969 CreateDWordField (PRR0, 0x05, TMP)
971 If (LLess (Local0, 0x80))
981 Method (_SRS, 1, NotSerialized)
983 CreateDWordField (Arg0, 0x05, TMP)
988 Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link
990 Name(_PRS, ResourceTemplate(){
991 Interrupt (, Level, ActiveHigh, Shared)
994 Method (_STA, 0, NotSerialized)
997 If (And (0x80, PRQ1, Local1))
1003 Method (_DIS, 0, NotSerialized)
1005 Or (PRQ1, 0x80, PRQ1)
1007 Method (_CRS, 0, NotSerialized)
1009 Name (PRR0, ResourceTemplate ()
1011 Interrupt (, Level, ActiveHigh, Shared)
1014 CreateDWordField (PRR0, 0x05, TMP)
1015 Store (PRQ1, Local0)
1016 If (LLess (Local0, 0x80))
1026 Method (_SRS, 1, NotSerialized)
1028 CreateDWordField (Arg0, 0x05, TMP)
1033 Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link
1035 Name(_PRS, ResourceTemplate(){
1036 Interrupt (, Level, ActiveHigh, Shared)
1039 Method (_STA, 0, NotSerialized)
1041 Store (0x0B, Local0)
1042 If (And (0x80, PRQ2, Local1))
1044 Store (0x09, Local0)
1048 Method (_DIS, 0, NotSerialized)
1050 Or (PRQ2, 0x80, PRQ2)
1052 Method (_CRS, 0, NotSerialized)
1054 Name (PRR0, ResourceTemplate ()
1056 Interrupt (, Level, ActiveHigh, Shared)
1059 CreateDWordField (PRR0, 0x05, TMP)
1060 Store (PRQ2, Local0)
1061 If (LLess (Local0, 0x80))
1071 Method (_SRS, 1, NotSerialized)
1073 CreateDWordField (Arg0, 0x05, TMP)
1078 Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link
1080 Name(_PRS, ResourceTemplate(){
1081 Interrupt (, Level, ActiveHigh, Shared)
1084 Method (_STA, 0, NotSerialized)
1086 Store (0x0B, Local0)
1087 If (And (0x80, PRQ3, Local1))
1089 Store (0x09, Local0)
1093 Method (_DIS, 0, NotSerialized)
1095 Or (PRQ3, 0x80, PRQ3)
1097 Method (_CRS, 0, NotSerialized)
1099 Name (PRR0, ResourceTemplate ()
1101 Interrupt (, Level, ActiveHigh, Shared)
1104 CreateDWordField (PRR0, 0x05, TMP)
1105 Store (PRQ3, Local0)
1106 If (LLess (Local0, 0x80))
1116 Method (_SRS, 1, NotSerialized)
1118 CreateDWordField (Arg0, 0x05, TMP)
1124 /* S5 = power off state */
1125 Name (_S5, Package (4) {
1126 0x00, // PM1a_CNT.SLP_TYP
1127 0x00, // PM2a_CNT.SLP_TYP
1135 If (And(\_PR.PRU, 0x2)) {
1139 If (And(\_PR.PRU, 0x4)) {
1143 If (And(\_PR.PRU, 0x8)) {
1147 If (And(\_PR.PRU, 0x10)) {
1151 If (And(\_PR.PRU, 0x20)) {
1155 If (And(\_PR.PRU, 0x40)) {
1159 If (And(\_PR.PRU, 0x80)) {
1163 If (And(\_PR.PRU, 0x100)) {
1167 If (And(\_PR.PRU, 0x200)) {
1171 If (And(\_PR.PRU, 0x400)) {
1175 If (And(\_PR.PRU, 0x800)) {
1179 If (And(\_PR.PRU, 0x1000)) {
1183 If (And(\_PR.PRU, 0x2000)) {
1187 If (And(\_PR.PRU, 0x4000)) {
1192 If (And(\_PR.PRD, 0x2)) {
1196 If (And(\_PR.PRD, 0x4)) {
1200 If (And(\_PR.PRD, 0x8)) {
1204 If (And(\_PR.PRD, 0x10)) {
1208 If (And(\_PR.PRD, 0x20)) {
1212 If (And(\_PR.PRD, 0x40)) {
1216 If (And(\_PR.PRD, 0x80)) {
1220 If (And(\_PR.PRD, 0x100)) {
1224 If (And(\_PR.PRD, 0x200)) {
1228 If (And(\_PR.PRD, 0x400)) {
1232 If (And(\_PR.PRD, 0x800)) {
1236 If (And(\_PR.PRD, 0x1000)) {
1240 If (And(\_PR.PRD, 0x2000)) {
1244 If (And(\_PR.PRD, 0x4000)) {
1252 If (And(\_SB.PCI0.PCIU, 0x2)) {
1253 Notify(\_SB.PCI0.S1, 0x1)
1256 If (And(\_SB.PCI0.PCIU, 0x4)) {
1257 Notify(\_SB.PCI0.S2, 0x1)
1260 If (And(\_SB.PCI0.PCIU, 0x8)) {
1261 Notify(\_SB.PCI0.S3, 0x1)
1264 If (And(\_SB.PCI0.PCIU, 0x10)) {
1265 Notify(\_SB.PCI0.S4, 0x1)
1268 If (And(\_SB.PCI0.PCIU, 0x20)) {
1269 Notify(\_SB.PCI0.S5, 0x1)
1272 If (And(\_SB.PCI0.PCIU, 0x40)) {
1273 Notify(\_SB.PCI0.S6, 0x1)
1276 If (And(\_SB.PCI0.PCIU, 0x80)) {
1277 Notify(\_SB.PCI0.S7, 0x1)
1280 If (And(\_SB.PCI0.PCIU, 0x0100)) {
1281 Notify(\_SB.PCI0.S8, 0x1)
1284 If (And(\_SB.PCI0.PCIU, 0x0200)) {
1285 Notify(\_SB.PCI0.S9, 0x1)
1288 If (And(\_SB.PCI0.PCIU, 0x0400)) {
1289 Notify(\_SB.PCI0.S10, 0x1)
1292 If (And(\_SB.PCI0.PCIU, 0x0800)) {
1293 Notify(\_SB.PCI0.S11, 0x1)
1296 If (And(\_SB.PCI0.PCIU, 0x1000)) {
1297 Notify(\_SB.PCI0.S12, 0x1)
1300 If (And(\_SB.PCI0.PCIU, 0x2000)) {
1301 Notify(\_SB.PCI0.S13, 0x1)
1304 If (And(\_SB.PCI0.PCIU, 0x4000)) {
1305 Notify(\_SB.PCI0.S14, 0x1)
1308 If (And(\_SB.PCI0.PCIU, 0x8000)) {
1309 Notify(\_SB.PCI0.S15, 0x1)
1312 If (And(\_SB.PCI0.PCIU, 0x10000)) {
1313 Notify(\_SB.PCI0.S16, 0x1)
1316 If (And(\_SB.PCI0.PCIU, 0x20000)) {
1317 Notify(\_SB.PCI0.S17, 0x1)
1320 If (And(\_SB.PCI0.PCIU, 0x40000)) {
1321 Notify(\_SB.PCI0.S18, 0x1)
1324 If (And(\_SB.PCI0.PCIU, 0x80000)) {
1325 Notify(\_SB.PCI0.S19, 0x1)
1328 If (And(\_SB.PCI0.PCIU, 0x100000)) {
1329 Notify(\_SB.PCI0.S20, 0x1)
1332 If (And(\_SB.PCI0.PCIU, 0x200000)) {
1333 Notify(\_SB.PCI0.S21, 0x1)
1336 If (And(\_SB.PCI0.PCIU, 0x400000)) {
1337 Notify(\_SB.PCI0.S22, 0x1)
1340 If (And(\_SB.PCI0.PCIU, 0x800000)) {
1341 Notify(\_SB.PCI0.S23, 0x1)
1344 If (And(\_SB.PCI0.PCIU, 0x1000000)) {
1345 Notify(\_SB.PCI0.S24, 0x1)
1348 If (And(\_SB.PCI0.PCIU, 0x2000000)) {
1349 Notify(\_SB.PCI0.S25, 0x1)
1352 If (And(\_SB.PCI0.PCIU, 0x4000000)) {
1353 Notify(\_SB.PCI0.S26, 0x1)
1356 If (And(\_SB.PCI0.PCIU, 0x8000000)) {
1357 Notify(\_SB.PCI0.S27, 0x1)
1360 If (And(\_SB.PCI0.PCIU, 0x10000000)) {
1361 Notify(\_SB.PCI0.S28, 0x1)
1364 If (And(\_SB.PCI0.PCIU, 0x20000000)) {
1365 Notify(\_SB.PCI0.S29, 0x1)
1368 If (And(\_SB.PCI0.PCIU, 0x40000000)) {
1369 Notify(\_SB.PCI0.S30, 0x1)
1372 If (And(\_SB.PCI0.PCIU, 0x80000000)) {
1373 Notify(\_SB.PCI0.S31, 0x1)
1377 If (And(\_SB.PCI0.PCID, 0x2)) {
1378 Notify(\_SB.PCI0.S1, 0x3)
1381 If (And(\_SB.PCI0.PCID, 0x4)) {
1382 Notify(\_SB.PCI0.S2, 0x3)
1385 If (And(\_SB.PCI0.PCID, 0x8)) {
1386 Notify(\_SB.PCI0.S3, 0x3)
1389 If (And(\_SB.PCI0.PCID, 0x10)) {
1390 Notify(\_SB.PCI0.S4, 0x3)
1393 If (And(\_SB.PCI0.PCID, 0x20)) {
1394 Notify(\_SB.PCI0.S5, 0x3)
1397 If (And(\_SB.PCI0.PCID, 0x40)) {
1398 Notify(\_SB.PCI0.S6, 0x3)
1401 If (And(\_SB.PCI0.PCID, 0x80)) {
1402 Notify(\_SB.PCI0.S7, 0x3)
1405 If (And(\_SB.PCI0.PCID, 0x0100)) {
1406 Notify(\_SB.PCI0.S8, 0x3)
1409 If (And(\_SB.PCI0.PCID, 0x0200)) {
1410 Notify(\_SB.PCI0.S9, 0x3)
1413 If (And(\_SB.PCI0.PCID, 0x0400)) {
1414 Notify(\_SB.PCI0.S10, 0x3)
1417 If (And(\_SB.PCI0.PCID, 0x0800)) {
1418 Notify(\_SB.PCI0.S11, 0x3)
1421 If (And(\_SB.PCI0.PCID, 0x1000)) {
1422 Notify(\_SB.PCI0.S12, 0x3)
1425 If (And(\_SB.PCI0.PCID, 0x2000)) {
1426 Notify(\_SB.PCI0.S13, 0x3)
1429 If (And(\_SB.PCI0.PCID, 0x4000)) {
1430 Notify(\_SB.PCI0.S14, 0x3)
1433 If (And(\_SB.PCI0.PCID, 0x8000)) {
1434 Notify(\_SB.PCI0.S15, 0x3)
1437 If (And(\_SB.PCI0.PCID, 0x10000)) {
1438 Notify(\_SB.PCI0.S16, 0x3)
1441 If (And(\_SB.PCI0.PCID, 0x20000)) {
1442 Notify(\_SB.PCI0.S17, 0x3)
1445 If (And(\_SB.PCI0.PCID, 0x40000)) {
1446 Notify(\_SB.PCI0.S18, 0x3)
1449 If (And(\_SB.PCI0.PCID, 0x80000)) {
1450 Notify(\_SB.PCI0.S19, 0x3)
1453 If (And(\_SB.PCI0.PCID, 0x100000)) {
1454 Notify(\_SB.PCI0.S20, 0x3)
1457 If (And(\_SB.PCI0.PCID, 0x200000)) {
1458 Notify(\_SB.PCI0.S21, 0x3)
1461 If (And(\_SB.PCI0.PCID, 0x400000)) {
1462 Notify(\_SB.PCI0.S22, 0x3)
1465 If (And(\_SB.PCI0.PCID, 0x800000)) {
1466 Notify(\_SB.PCI0.S23, 0x3)
1469 If (And(\_SB.PCI0.PCID, 0x1000000)) {
1470 Notify(\_SB.PCI0.S24, 0x3)
1473 If (And(\_SB.PCI0.PCID, 0x2000000)) {
1474 Notify(\_SB.PCI0.S25, 0x3)
1477 If (And(\_SB.PCI0.PCID, 0x4000000)) {
1478 Notify(\_SB.PCI0.S26, 0x3)
1481 If (And(\_SB.PCI0.PCID, 0x8000000)) {
1482 Notify(\_SB.PCI0.S27, 0x3)
1485 If (And(\_SB.PCI0.PCID, 0x10000000)) {
1486 Notify(\_SB.PCI0.S28, 0x3)
1489 If (And(\_SB.PCI0.PCID, 0x20000000)) {
1490 Notify(\_SB.PCI0.S29, 0x3)
1493 If (And(\_SB.PCI0.PCID, 0x40000000)) {
1494 Notify(\_SB.PCI0.S30, 0x3)
1497 If (And(\_SB.PCI0.PCID, 0x80000000)) {
1498 Notify(\_SB.PCI0.S31, 0x3)