kvm: bios: add OperationRegion and GPE handler for add/removal notification
[qemu-kvm/fedora.git] / kvm / bios / acpi-dsdt.dsl
blobb0d2275d6526f4ff5faaf12cfb1613a9aabc2595
1 /*
2  * Bochs/QEMU ACPI DSDT ASL definition
3  *
4  * Copyright (c) 2006 Fabrice Bellard
5  *
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.
9  *
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.
14  *
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
18  */
19 DefinitionBlock (
20     "acpi-dsdt.aml",    // Output Filename
21     "DSDT",             // Signature
22     0x01,               // DSDT Compliance Revision
23     "BXPC",             // OEMID
24     "BXDSDT",           // TABLE ID
25     0x1                 // OEM Revision
26     )
28    Scope (\_PR)
29    {
30         OperationRegion( PRST, SystemIO, 0xaf00, 0x02)
31         Field (PRST, ByteAcc, NoLock, WriteAsZeros)
32         {
33                 PRU, 8,
34                 PRD, 8,
35         }
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})
40             Method(_MAT, 0) {
41                 If (And(\_PR.PRU, 0x2)) { Return(TMP) }
42                 Else { Return(0x0) }
43             }
44             Method (_STA) {
45                 Return(0xF)
46             }
47         }
48         Processor (CPU2, 0x02, 0x0000b010, 0x06) {
49             Name (TMP, Buffer(0x8) {0x0, 0x8, 0x02, 0x02, 0x1, 0x0, 0x0, 0x0})
50             Method(_MAT, 0) {
51                 If (And(\_PR.PRU, 0x4)) { Return(TMP) }
52                 Else { Return(0x0) }
53             }
54             Method (_STA) {
55                 Return(0xF)
56             }
57         }
58         Processor (CPU3, 0x03, 0x0000b010, 0x06) {
59             Name (TMP, Buffer(0x8) {0x0, 0x8, 0x03, 0x03, 0x1, 0x0, 0x0, 0x0})
60             Method(_MAT, 0) {
61                 If (And(\_PR.PRU, 0x8)) { Return(TMP) }
62                 Else { Return(0x0) }
63             }
64             Method (_STA) {
65                 Return(0xF)
66             }
67         }
68         Processor (CPU4, 0x04, 0x0000b010, 0x06) {
69             Name (TMP, Buffer(0x8) {0x0, 0x8, 0x04, 0x04, 0x1, 0x0, 0x0, 0x0})
70             Method(_MAT, 0) {
71                 If (And(\_PR.PRU, 0x10)) { Return(TMP) }
72                 Else { Return(0x0) }
73             }
74             Method (_STA) {
75                 Return(0xF)
76             }
77         }
78         Processor (CPU5, 0x05, 0x0000b010, 0x06) {
79             Name (TMP, Buffer(0x8) {0x0, 0x8, 0x05, 0x05, 0x1, 0x0, 0x0, 0x0})
80             Method(_MAT, 0) {
81                 If (And(\_PR.PRU, 0x20)) { Return(TMP) }
82                 Else { Return(0x0) }
83             }
84             Method (_STA) {
85                 Return(0xF)
86             }
87         }
88         Processor (CPU6, 0x06, 0x0000b010, 0x06) {
89             Name (TMP, Buffer(0x8) {0x0, 0x8, 0x06, 0x06, 0x1, 0x0, 0x0, 0x0})
90             Method(_MAT, 0) {
91                 If (And(\_PR.PRU, 0x40)) { Return(TMP) }
92                 Else { Return(0x0) }
93             }
94             Method (_STA) {
95                 Return(0xF)
96             }
97         }
98         Processor (CPU7, 0x07, 0x0000b010, 0x06) {
99             Name (TMP, Buffer(0x8) {0x0, 0x8, 0x07, 0x07, 0x1, 0x0, 0x0, 0x0})
100             Method(_MAT, 0) {
101                 If (And(\_PR.PRU, 0x80)) { Return(TMP) }
102                 Else { Return(0x0) }
103             }
104             Method (_STA) {
105                 Return(0xF)
106             }
107         }
108         Processor (CPU8, 0x08, 0x0000b010, 0x06) {
109             Name (TMP, Buffer(0x8) {0x0, 0x8, 0x08, 0x08, 0x1, 0x0, 0x0, 0x0})
110             Method(_MAT, 0) {
111                 If (And(\_PR.PRU, 0x100)) { Return(TMP) }
112                 Else { Return(0x0) }
113             }
114             Method (_STA) {
115                 Return(0xF)
116             }
117         }
118         Processor (CPU9, 0x09, 0x0000b010, 0x06) {
119             Name (TMP, Buffer(0x8) {0x0, 0x8, 0x09, 0x09, 0x1, 0x0, 0x0, 0x0})
120             Method(_MAT, 0) {
121                 If (And(\_PR.PRU, 0x200)) { Return(TMP) }
122                 Else { Return(0x0) }
123             }
124             Method (_STA) {
125                 Return(0xF)
126             }
127         }
128         Processor (CPUA, 0x0a, 0x0000b010, 0x06) {
129             Name (TMP, Buffer(0x8) {0x0, 0x8, 0x0A, 0x0A, 0x1, 0x0, 0x0, 0x0})
130             Method(_MAT, 0) {
131                 If (And(\_PR.PRU, 0x400)) { Return(TMP) }
132                 Else { Return(0x0) }
133             }
134             Method (_STA) {
135                 Return(0xF)
136             }
137         }
138         Processor (CPUB, 0x0b, 0x0000b010, 0x06) {
139             Name (TMP, Buffer(0x8) {0x0, 0x8, 0x0B, 0x0B, 0x1, 0x0, 0x0, 0x0})
140             Method(_MAT, 0) {
141                 If (And(\_PR.PRU, 0x800)) { Return(TMP) }
142                 Else { Return(0x0) }
143             }
144             Method (_STA) {
145                 Return(0xF)
146             }
147         }
148         Processor (CPUC, 0x0c, 0x0000b010, 0x06) {
149             Name (TMP, Buffer(0x8) {0x0, 0x8, 0x0C, 0x0C, 0x1, 0x0, 0x0, 0x0})
150             Method(_MAT, 0) {
151                 If (And(\_PR.PRU, 0x1000)) { Return(TMP) }
152                 Else { Return(0x0) }
153             }
154             Method (_STA) {
155                 Return(0xF)
156             }
157         }
158         Processor (CPUD, 0x0d, 0x0000b010, 0x06) {
159             Name (TMP, Buffer(0x8) {0x0, 0x8, 0x0D, 0x0D, 0x1, 0x0, 0x0, 0x0})
160             Method(_MAT, 0) {
161                 If (And(\_PR.PRU, 0x2000)) { Return(TMP) }
162                 Else { Return(0x0) }
163             }
164             Method (_STA) {
165                 Return(0xF)
166             }
167         }
168         Processor (CPUE, 0x0e, 0x0000b010, 0x06) {
169             Name (TMP, Buffer(0x8) {0x0, 0x8, 0x0E, 0x0E, 0x1, 0x0, 0x0, 0x0})
170             Method(_MAT, 0) {
171                 If (And(\_PR.PRU, 0x4000)) { Return(TMP) }
172                 Else { Return(0x0) }
173             }
174             Method (_STA) {
175                 Return(0xF)
176             }
177         }
178     }
180     Scope (\)
181     {
182         /* CMOS memory access */
183         OperationRegion (CMS, SystemIO, 0x70, 0x02)
184         Field (CMS, ByteAcc, NoLock, Preserve)
185         {
186             CMSI,   8,
187             CMSD,   8
188         }
189         Method (CMRD, 1, NotSerialized)
190         {
191             Store (Arg0, CMSI)
192             Store (CMSD, Local0)
193             Return (Local0)
194         }
196         /* Debug Output */
197         OperationRegion (DBG, SystemIO, 0xb044, 0x04)
198         Field (DBG, DWordAcc, NoLock, Preserve)
199         {
200             DBGL,   32,
201         }
202     }
205     /* PCI Bus definition */
206     Scope(\_SB) {
207         Device(PCI0) {
208             Name (_HID, EisaId ("PNP0A03"))
209             Name (_ADR, 0x00)
210             Name (_UID, 1)
211             Name(_PRT, Package() {
212                 /* PCI IRQ routing table, example from ACPI 2.0a specification,
213                    section 6.2.8.1 */
214                 /* Note: we provide the same info as the PCI routing
215                    table of the Bochs BIOS */
217                 // PCI Slot 0
218                 Package() {0x0000ffff, 0, LNKD, 0},
219                 Package() {0x0000ffff, 1, LNKA, 0},
220                 Package() {0x0000ffff, 2, LNKB, 0},
221                 Package() {0x0000ffff, 3, LNKC, 0},
223                 // PCI Slot 1
224                 Package() {0x0001ffff, 0, LNKA, 0},
225                 Package() {0x0001ffff, 1, LNKB, 0},
226                 Package() {0x0001ffff, 2, LNKC, 0},
227                 Package() {0x0001ffff, 3, LNKD, 0},
229                 // PCI Slot 2
230                 Package() {0x0002ffff, 0, LNKB, 0},
231                 Package() {0x0002ffff, 1, LNKC, 0},
232                 Package() {0x0002ffff, 2, LNKD, 0},
233                 Package() {0x0002ffff, 3, LNKA, 0},
235                 // PCI Slot 3
236                 Package() {0x0003ffff, 0, LNKC, 0},
237                 Package() {0x0003ffff, 1, LNKD, 0},
238                 Package() {0x0003ffff, 2, LNKA, 0},
239                 Package() {0x0003ffff, 3, LNKB, 0},
241                 // PCI Slot 4
242                 Package() {0x0004ffff, 0, LNKD, 0},
243                 Package() {0x0004ffff, 1, LNKA, 0},
244                 Package() {0x0004ffff, 2, LNKB, 0},
245                 Package() {0x0004ffff, 3, LNKC, 0},
247                 // PCI Slot 5
248                 Package() {0x0005ffff, 0, LNKA, 0},
249                 Package() {0x0005ffff, 1, LNKB, 0},
250                 Package() {0x0005ffff, 2, LNKC, 0},
251                 Package() {0x0005ffff, 3, LNKD, 0},
253                 // PCI Slot 6
254                 Package() {0x0006ffff, 0, LNKB, 0},
255                 Package() {0x0006ffff, 1, LNKC, 0},
256                 Package() {0x0006ffff, 2, LNKD, 0},
257                 Package() {0x0006ffff, 3, LNKA, 0},
259                 // PCI Slot 7
260                 Package() {0x0007ffff, 0, LNKC, 0},
261                 Package() {0x0007ffff, 1, LNKD, 0},
262                 Package() {0x0007ffff, 2, LNKA, 0},
263                 Package() {0x0007ffff, 3, LNKB, 0},
265                 // PCI Slot 8
266                 Package() {0x0008ffff, 0, LNKD, 0},
267                 Package() {0x0008ffff, 1, LNKA, 0},
268                 Package() {0x0008ffff, 2, LNKB, 0},
269                 Package() {0x0008ffff, 3, LNKC, 0},
271                 // PCI Slot 9
272                 Package() {0x0008ffff, 0, LNKA, 0},
273                 Package() {0x0008ffff, 1, LNKB, 0},
274                 Package() {0x0008ffff, 2, LNKC, 0},
275                 Package() {0x0008ffff, 3, LNKD, 0},
277                 // PCI Slot 10
278                 Package() {0x000affff, 0, LNKB, 0},
279                 Package() {0x000affff, 1, LNKC, 0},
280                 Package() {0x000affff, 2, LNKD, 0},
281                 Package() {0x000affff, 3, LNKA, 0},
283                 // PCI Slot 11
284                 Package() {0x000bffff, 0, LNKC, 0},
285                 Package() {0x000bffff, 1, LNKD, 0},
286                 Package() {0x000bffff, 2, LNKA, 0},
287                 Package() {0x000bffff, 3, LNKB, 0},
289                 // PCI Slot 12
290                 Package() {0x000cffff, 0, LNKD, 0},
291                 Package() {0x000cffff, 1, LNKA, 0},
292                 Package() {0x000cffff, 2, LNKB, 0},
293                 Package() {0x000cffff, 3, LNKC, 0},
295                 // PCI Slot 13
296                 Package() {0x000dffff, 0, LNKA, 0},
297                 Package() {0x000dffff, 1, LNKB, 0},
298                 Package() {0x000dffff, 2, LNKC, 0},
299                 Package() {0x000dffff, 3, LNKD, 0},
301                 // PCI Slot 14
302                 Package() {0x000effff, 0, LNKB, 0},
303                 Package() {0x000effff, 1, LNKC, 0},
304                 Package() {0x000effff, 2, LNKD, 0},
305                 Package() {0x000effff, 3, LNKA, 0},
307                 // PCI Slot 15
308                 Package() {0x000fffff, 0, LNKC, 0},
309                 Package() {0x000fffff, 1, LNKD, 0},
310                 Package() {0x000fffff, 2, LNKA, 0},
311                 Package() {0x000fffff, 3, LNKB, 0},
313                 // PCI Slot 16
314                 Package() {0x0010ffff, 0, LNKD, 0},
315                 Package() {0x0010ffff, 1, LNKA, 0},
316                 Package() {0x0010ffff, 2, LNKB, 0},
317                 Package() {0x0010ffff, 3, LNKC, 0},
319                 // PCI Slot 17
320                 Package() {0x0011ffff, 0, LNKA, 0},
321                 Package() {0x0011ffff, 1, LNKB, 0},
322                 Package() {0x0011ffff, 2, LNKC, 0},
323                 Package() {0x0011ffff, 3, LNKD, 0},
325                 // PCI Slot 18
326                 Package() {0x0012ffff, 0, LNKB, 0},
327                 Package() {0x0012ffff, 1, LNKC, 0},
328                 Package() {0x0012ffff, 2, LNKD, 0},
329                 Package() {0x0012ffff, 3, LNKA, 0},
331                 // PCI Slot 19
332                 Package() {0x0013ffff, 0, LNKC, 0},
333                 Package() {0x0013ffff, 1, LNKD, 0},
334                 Package() {0x0013ffff, 2, LNKA, 0},
335                 Package() {0x0013ffff, 3, LNKB, 0},
337                 // PCI Slot 20
338                 Package() {0x0014ffff, 0, LNKD, 0},
339                 Package() {0x0014ffff, 1, LNKA, 0},
340                 Package() {0x0014ffff, 2, LNKB, 0},
341                 Package() {0x0014ffff, 3, LNKC, 0},
343                 // PCI Slot 21
344                 Package() {0x0015ffff, 0, LNKA, 0},
345                 Package() {0x0015ffff, 1, LNKB, 0},
346                 Package() {0x0015ffff, 2, LNKC, 0},
347                 Package() {0x0015ffff, 3, LNKD, 0},
349                 // PCI Slot 22
350                 Package() {0x0016ffff, 0, LNKB, 0},
351                 Package() {0x0016ffff, 1, LNKC, 0},
352                 Package() {0x0016ffff, 2, LNKD, 0},
353                 Package() {0x0016ffff, 3, LNKA, 0},
355                 // PCI Slot 23
356                 Package() {0x0017ffff, 0, LNKC, 0},
357                 Package() {0x0017ffff, 1, LNKD, 0},
358                 Package() {0x0017ffff, 2, LNKA, 0},
359                 Package() {0x0017ffff, 3, LNKB, 0},
361                 // PCI Slot 24
362                 Package() {0x0018ffff, 0, LNKD, 0},
363                 Package() {0x0018ffff, 1, LNKA, 0},
364                 Package() {0x0018ffff, 2, LNKB, 0},
365                 Package() {0x0018ffff, 3, LNKC, 0},
367                 // PCI Slot 25
368                 Package() {0x0018ffff, 0, LNKA, 0},
369                 Package() {0x0018ffff, 1, LNKB, 0},
370                 Package() {0x0018ffff, 2, LNKC, 0},
371                 Package() {0x0018ffff, 3, LNKD, 0},
373                 // PCI Slot 26
374                 Package() {0x001affff, 0, LNKB, 0},
375                 Package() {0x001affff, 1, LNKC, 0},
376                 Package() {0x001affff, 2, LNKD, 0},
377                 Package() {0x001affff, 3, LNKA, 0},
379                 // PCI Slot 27
380                 Package() {0x001bffff, 0, LNKC, 0},
381                 Package() {0x001bffff, 1, LNKD, 0},
382                 Package() {0x001bffff, 2, LNKA, 0},
383                 Package() {0x001bffff, 3, LNKB, 0},
385                 // PCI Slot 28
386                 Package() {0x001cffff, 0, LNKD, 0},
387                 Package() {0x001cffff, 1, LNKA, 0},
388                 Package() {0x001cffff, 2, LNKB, 0},
389                 Package() {0x001cffff, 3, LNKC, 0},
391                 // PCI Slot 29
392                 Package() {0x001dffff, 0, LNKA, 0},
393                 Package() {0x001dffff, 1, LNKB, 0},
394                 Package() {0x001dffff, 2, LNKC, 0},
395                 Package() {0x001dffff, 3, LNKD, 0},
397                 // PCI Slot 30
398                 Package() {0x001effff, 0, LNKB, 0},
399                 Package() {0x001effff, 1, LNKC, 0},
400                 Package() {0x001effff, 2, LNKD, 0},
401                 Package() {0x001effff, 3, LNKA, 0},
403                 // PCI Slot 31
404                 Package() {0x001fffff, 0, LNKC, 0},
405                 Package() {0x001fffff, 1, LNKD, 0},
406                 Package() {0x001fffff, 2, LNKA, 0},
407                 Package() {0x001fffff, 3, LNKB, 0},
408             })
410             OperationRegion(PCST, SystemIO, 0xae00, 0x08)
411             Field (PCST, DWordAcc, NoLock, WriteAsZeros)
412             {
413                 PCIU, 32,
414                 PCID, 32,
415             }
417             Device (S1) {              // Slot 1
418                Name (_ADR, 0x00010000)
419                Method (_EJ0,1) { Return (0x0) }
420             }
422             Device (S2) {              // Slot 2
423                Name (_ADR, 0x00020000)
424                Method (_EJ0,1) { Return (0x0) }
425             }
427             Device (S3) {              // Slot 3
428                Name (_ADR, 0x00030000)
429                Method (_EJ0,1) { Return (0x0) }
430             }
432             Device (S4) {              // Slot 4
433                Name (_ADR, 0x00040000)
434                Method (_EJ0,1) { Return (0x0) }
435             }
437             Device (S5) {              // Slot 5
438                Name (_ADR, 0x00050000)
439                Method (_EJ0,1) { Return (0x0) }
440             }
442             Device (S6) {              // Slot 6
443                Name (_ADR, 0x00060000)
444                Method (_EJ0,1) { Return (0x0) }
445             }
447             Device (S7) {              // Slot 7
448                Name (_ADR, 0x00070000)
449                Method (_EJ0,1) { Return (0x0) }
450             }
452             Device (S8) {              // Slot 8
453                Name (_ADR, 0x00080000)
454                Method (_EJ0,1) { Return (0x0) }
455             }
457             Device (S9) {              // Slot 9
458                Name (_ADR, 0x00090000)
459                Method (_EJ0,1) { Return (0x0) }
460             }
462             Device (S10) {              // Slot 10
463                Name (_ADR, 0x000A0000)
464                Method (_EJ0,1) { Return (0x0) }
465             }
467             Device (S11) {              // Slot 11
468                Name (_ADR, 0x000B0000)
469                Method (_EJ0,1) { Return (0x0) }
470             }
472             Device (S12) {              // Slot 12
473                Name (_ADR, 0x000C0000)
474                Method (_EJ0,1) { Return (0x0) }
475             }
477             Device (S13) {              // Slot 13
478                Name (_ADR, 0x000D0000)
479                Method (_EJ0,1) { Return (0x0) }
480             }
482             Device (S14) {              // Slot 14
483                Name (_ADR, 0x000E0000)
484                Method (_EJ0,1) { Return (0x0) }
485             }
487             Device (S15) {              // Slot 15
488                Name (_ADR, 0x000F0000)
489                Method (_EJ0,1) { Return (0x0) }
490             }
492             Device (S16) {              // Slot 16
493                Name (_ADR, 0x00100000)
494                Method (_EJ0,1) { Return (0x0) }
495             }
497             Device (S17) {              // Slot 17
498                Name (_ADR, 0x00110000)
499                Method (_EJ0,1) { Return (0x0) }
500             }
502             Device (S18) {              // Slot 18
503                Name (_ADR, 0x00120000)
504                Method (_EJ0,1) { Return (0x0) }
505             }
507             Device (S19) {              // Slot 19
508                Name (_ADR, 0x00130000)
509                Method (_EJ0,1) { Return (0x0) }
510             }
512             Device (S20) {              // Slot 20
513                Name (_ADR, 0x00140000)
514                Method (_EJ0,1) { Return (0x0) }
515             }
517             Device (S21) {              // Slot 21
518                Name (_ADR, 0x00150000)
519                Method (_EJ0,1) { Return (0x0) }
520             }
522             Device (S22) {              // Slot 22
523                Name (_ADR, 0x00160000)
524                Method (_EJ0,1) { Return (0x0) }
525             }
527             Device (S23) {              // Slot 23
528                Name (_ADR, 0x00170000)
529                Method (_EJ0,1) { Return (0x0) }
530             }
532             Device (S24) {              // Slot 24
533                Name (_ADR, 0x00180000)
534                Method (_EJ0,1) { Return (0x0) }
535             }
537             Device (S25) {              // Slot 25
538                Name (_ADR, 0x00190000)
539                Method (_EJ0,1) { Return (0x0) }
540             }
542             Device (S26) {              // Slot 26
543                Name (_ADR, 0x001A0000)
544                Method (_EJ0,1) { Return (0x0) }
545             }
547             Device (S27) {              // Slot 27
548                Name (_ADR, 0x001B0000)
549                Method (_EJ0,1) { Return (0x0) }
550             }
552             Device (S28) {              // Slot 28
553                Name (_ADR, 0x001C0000)
554                Method (_EJ0,1) { Return (0x0) }
555             }
557             Device (S29) {              // Slot 29
558                Name (_ADR, 0x001D0000)
559                Method (_EJ0,1) { Return (0x0) }
560             }
562             Device (S30) {              // Slot 30
563                Name (_ADR, 0x001E0000)
564                Method (_EJ0,1) { Return (0x0) }
565             }
567             Device (S31) {              // Slot 31
568                Name (_ADR, 0x001F0000)
569                Method (_EJ0,1) { Return (0x0) }
570             }
572             Method (_CRS, 0, NotSerialized)
573             {
574             Name (MEMP, ResourceTemplate ()
575             {
576                 WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
577                     0x0000,             // Address Space Granularity
578                     0x0000,             // Address Range Minimum
579                     0x00FF,             // Address Range Maximum
580                     0x0000,             // Address Translation Offset
581                     0x0100,             // Address Length
582                     ,, )
583                 IO (Decode16,
584                     0x0CF8,             // Address Range Minimum
585                     0x0CF8,             // Address Range Maximum
586                     0x01,               // Address Alignment
587                     0x08,               // Address Length
588                     )
589                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
590                     0x0000,             // Address Space Granularity
591                     0x0000,             // Address Range Minimum
592                     0x0CF7,             // Address Range Maximum
593                     0x0000,             // Address Translation Offset
594                     0x0CF8,             // Address Length
595                     ,, , TypeStatic)
596                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
597                     0x0000,             // Address Space Granularity
598                     0x0D00,             // Address Range Minimum
599                     0xFFFF,             // Address Range Maximum
600                     0x0000,             // Address Translation Offset
601                     0xF300,             // Address Length
602                     ,, , TypeStatic)
603                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
604                     0x00000000,         // Address Space Granularity
605                     0x000A0000,         // Address Range Minimum
606                     0x000BFFFF,         // Address Range Maximum
607                     0x00000000,         // Address Translation Offset
608                     0x00020000,         // Address Length
609                     ,, , AddressRangeMemory, TypeStatic)
610                 DWordMemory (ResourceProducer, PosDecode, MinNotFixed, MaxFixed, NonCacheable, ReadWrite,
611                     0x00000000,         // Address Space Granularity
612                     0x00000000,         // Address Range Minimum
613                     0xFEBFFFFF,         // Address Range Maximum
614                     0x00000000,         // Address Translation Offset
615                     0x00000000,         // Address Length
616                     ,, MEMF, AddressRangeMemory, TypeStatic)
617             })
618                 CreateDWordField (MEMP, \_SB.PCI0._CRS.MEMF._MIN, PMIN)
619                 CreateDWordField (MEMP, \_SB.PCI0._CRS.MEMF._MAX, PMAX)
620                 CreateDWordField (MEMP, \_SB.PCI0._CRS.MEMF._LEN, PLEN)
621                 /* compute available RAM */
622                 Add(CMRD(0x34), ShiftLeft(CMRD(0x35), 8), Local0)
623                 ShiftLeft(Local0, 16, Local0)
624                 Add(Local0, 0x1000000, Local0)
625                 /* update field of last region */
626                 Store(Local0, PMIN)
627                 Subtract (PMAX, PMIN, PLEN)
628                 Increment (PLEN)
629                 Return (MEMP)
630             }
631         }
632     }
634     Scope(\_SB.PCI0) {
636         /* PIIX3 ISA bridge */
637         Device (ISA) {
638             Name (_ADR, 0x00010000)
640             /* PIIX PCI to ISA irq remapping */
641             OperationRegion (P40C, PCI_Config, 0x60, 0x04)
643             /* Real-time clock */
644             Device (RTC)
645             {
646                 Name (_HID, EisaId ("PNP0B00"))
647                 Name (_CRS, ResourceTemplate ()
648                 {
649                     IO (Decode16, 0x0070, 0x0070, 0x10, 0x02)
650                     IRQNoFlags () {8}
651                     IO (Decode16, 0x0072, 0x0072, 0x02, 0x06)
652                 })
653             }
655             /* Keyboard seems to be important for WinXP install */
656             Device (KBD)
657             {
658                 Name (_HID, EisaId ("PNP0303"))
659                 Method (_STA, 0, NotSerialized)
660                 {
661                     Return (0x0f)
662                 }
664                 Method (_CRS, 0, NotSerialized)
665                 {
666                      Name (TMP, ResourceTemplate ()
667                      {
668                     IO (Decode16,
669                         0x0060,             // Address Range Minimum
670                         0x0060,             // Address Range Maximum
671                         0x01,               // Address Alignment
672                         0x01,               // Address Length
673                         )
674                     IO (Decode16,
675                         0x0064,             // Address Range Minimum
676                         0x0064,             // Address Range Maximum
677                         0x01,               // Address Alignment
678                         0x01,               // Address Length
679                         )
680                     IRQNoFlags ()
681                         {1}
682                     })
683                     Return (TMP)
684                 }
685             }
687             /* PS/2 mouse */
688             Device (MOU)
689             {
690                 Name (_HID, EisaId ("PNP0F13"))
691                 Method (_STA, 0, NotSerialized)
692                 {
693                     Return (0x0f)
694                 }
696                 Method (_CRS, 0, NotSerialized)
697                 {
698                     Name (TMP, ResourceTemplate ()
699                     {
700                          IRQNoFlags () {12}
701                     })
702                     Return (TMP)
703                 }
704             }
706             /* PS/2 floppy controller */
707             Device (FDC0)
708             {
709                 Name (_HID, EisaId ("PNP0700"))
710                 Method (_STA, 0, NotSerialized)
711                 {
712                     Return (0x0F)
713                 }
714                 Method (_CRS, 0, NotSerialized)
715                 {
716                     Name (BUF0, ResourceTemplate ()
717                     {
718                         IO (Decode16, 0x03F2, 0x03F2, 0x00, 0x04)
719                         IO (Decode16, 0x03F7, 0x03F7, 0x00, 0x01)
720                         IRQNoFlags () {6}
721                         DMA (Compatibility, NotBusMaster, Transfer8) {2}
722                     })
723                     Return (BUF0)
724                 }
725             }
727             /* Parallel port */
728             Device (LPT)
729             {
730                 Name (_HID, EisaId ("PNP0400"))
731                 Method (_STA, 0, NotSerialized)
732                 {
733                     Store (\_SB.PCI0.PX13.DRSA, Local0)
734                     And (Local0, 0x80000000, Local0)
735                     If (LEqual (Local0, 0))
736                     {
737                         Return (0x00)
738                     }
739                     Else
740                     {
741                         Return (0x0F)
742                     }
743                 }
744                 Method (_CRS, 0, NotSerialized)
745                 {
746                     Name (BUF0, ResourceTemplate ()
747                     {
748                         IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
749                         IRQNoFlags () {7}
750                     })
751                     Return (BUF0)
752                 }
753             }
755             /* Serial Ports */
756             Device (COM1)
757             {
758                 Name (_HID, EisaId ("PNP0501"))
759                 Name (_UID, 0x01)
760                 Method (_STA, 0, NotSerialized)
761                 {
762                     Store (\_SB.PCI0.PX13.DRSC, Local0)
763                     And (Local0, 0x08000000, Local0)
764                     If (LEqual (Local0, 0))
765                     {
766                         Return (0x00)
767                     }
768                     Else
769                     {
770                         Return (0x0F)
771                     }
772                 }
773                 Method (_CRS, 0, NotSerialized)
774                 {
775                     Name (BUF0, ResourceTemplate ()
776                     {
777                         IO (Decode16, 0x03F8, 0x03F8, 0x00, 0x08)
778                         IRQNoFlags () {4}
779                     })
780                     Return (BUF0)
781                 }
782             }
784             Device (COM2)
785             {
786                 Name (_HID, EisaId ("PNP0501"))
787                 Name (_UID, 0x02)
788                 Method (_STA, 0, NotSerialized)
789                 {
790                     Store (\_SB.PCI0.PX13.DRSC, Local0)
791                     And (Local0, 0x80000000, Local0)
792                     If (LEqual (Local0, 0))
793                     {
794                         Return (0x00)
795                     }
796                     Else
797                     {
798                         Return (0x0F)
799                     }
800                 }
801                 Method (_CRS, 0, NotSerialized)
802                 {
803                     Name (BUF0, ResourceTemplate ()
804                     {
805                         IO (Decode16, 0x02F8, 0x02F8, 0x00, 0x08)
806                         IRQNoFlags () {3}
807                     })
808                     Return (BUF0)
809                 }
810             }
811         }
813         /* PIIX4 PM */
814         Device (PX13) {
815             Name (_ADR, 0x00010003)
817             OperationRegion (P13C, PCI_Config, 0x5c, 0x24)
818             Field (P13C, DWordAcc, NoLock, Preserve)
819             {
820                 DRSA, 32,
821                 DRSB, 32,
822                 DRSC, 32,
823                 DRSE, 32,
824                 DRSF, 32,
825                 DRSG, 32,
826                 DRSH, 32,
827                 DRSI, 32,
828                 DRSJ, 32
829             }
830         }
831     }
833     /* PCI IRQs */
834     Scope(\_SB) {
835          Field (\_SB.PCI0.ISA.P40C, ByteAcc, NoLock, Preserve)
836          {
837              PRQ0,   8,
838              PRQ1,   8,
839              PRQ2,   8,
840              PRQ3,   8
841          }
843         Device(LNKA){
844                 Name(_HID, EISAID("PNP0C0F"))     // PCI interrupt link
845                 Name(_UID, 1)
846                 Name(_PRS, ResourceTemplate(){
847                     Interrupt (, Level, ActiveHigh, Shared)
848                         { 5, 10, 11 }
849                 })
850                 Method (_STA, 0, NotSerialized)
851                 {
852                     Store (0x0B, Local0)
853                     If (And (0x80, PRQ0, Local1))
854                     {
855                          Store (0x09, Local0)
856                     }
857                     Return (Local0)
858                 }
859                 Method (_DIS, 0, NotSerialized)
860                 {
861                     Or (PRQ0, 0x80, PRQ0)
862                 }
863                 Method (_CRS, 0, NotSerialized)
864                 {
865                     Name (PRR0, ResourceTemplate ()
866                     {
867                         Interrupt (, Level, ActiveHigh, Shared)
868                             {1}
869                     })
870                     CreateDWordField (PRR0, 0x05, TMP)
871                     Store (PRQ0, Local0)
872                     If (LLess (Local0, 0x80))
873                     {
874                         Store (Local0, TMP)
875                     }
876                     Else
877                     {
878                         Store (Zero, TMP)
879                     }
880                     Return (PRR0)
881                 }
882                 Method (_SRS, 1, NotSerialized)
883                 {
884                     CreateDWordField (Arg0, 0x05, TMP)
885                     Store (TMP, PRQ0)
886                 }
887         }
888         Device(LNKB){
889                 Name(_HID, EISAID("PNP0C0F"))     // PCI interrupt link
890                 Name(_UID, 2)
891                 Name(_PRS, ResourceTemplate(){
892                     Interrupt (, Level, ActiveHigh, Shared)
893                         { 5, 10, 11 }
894                 })
895                 Method (_STA, 0, NotSerialized)
896                 {
897                     Store (0x0B, Local0)
898                     If (And (0x80, PRQ1, Local1))
899                     {
900                          Store (0x09, Local0)
901                     }
902                     Return (Local0)
903                 }
904                 Method (_DIS, 0, NotSerialized)
905                 {
906                     Or (PRQ1, 0x80, PRQ1)
907                 }
908                 Method (_CRS, 0, NotSerialized)
909                 {
910                     Name (PRR0, ResourceTemplate ()
911                     {
912                         Interrupt (, Level, ActiveHigh, Shared)
913                             {1}
914                     })
915                     CreateDWordField (PRR0, 0x05, TMP)
916                     Store (PRQ1, Local0)
917                     If (LLess (Local0, 0x80))
918                     {
919                         Store (Local0, TMP)
920                     }
921                     Else
922                     {
923                         Store (Zero, TMP)
924                     }
925                     Return (PRR0)
926                 }
927                 Method (_SRS, 1, NotSerialized)
928                 {
929                     CreateDWordField (Arg0, 0x05, TMP)
930                     Store (TMP, PRQ1)
931                 }
932         }
933         Device(LNKC){
934                 Name(_HID, EISAID("PNP0C0F"))     // PCI interrupt link
935                 Name(_UID, 3)
936                 Name(_PRS, ResourceTemplate(){
937                     Interrupt (, Level, ActiveHigh, Shared)
938                         { 5, 10, 11 }
939                 })
940                 Method (_STA, 0, NotSerialized)
941                 {
942                     Store (0x0B, Local0)
943                     If (And (0x80, PRQ2, Local1))
944                     {
945                          Store (0x09, Local0)
946                     }
947                     Return (Local0)
948                 }
949                 Method (_DIS, 0, NotSerialized)
950                 {
951                     Or (PRQ2, 0x80, PRQ2)
952                 }
953                 Method (_CRS, 0, NotSerialized)
954                 {
955                     Name (PRR0, ResourceTemplate ()
956                     {
957                         Interrupt (, Level, ActiveHigh, Shared)
958                             {1}
959                     })
960                     CreateDWordField (PRR0, 0x05, TMP)
961                     Store (PRQ2, Local0)
962                     If (LLess (Local0, 0x80))
963                     {
964                         Store (Local0, TMP)
965                     }
966                     Else
967                     {
968                         Store (Zero, TMP)
969                     }
970                     Return (PRR0)
971                 }
972                 Method (_SRS, 1, NotSerialized)
973                 {
974                     CreateDWordField (Arg0, 0x05, TMP)
975                     Store (TMP, PRQ2)
976                 }
977         }
978         Device(LNKD){
979                 Name(_HID, EISAID("PNP0C0F"))     // PCI interrupt link
980                 Name(_UID, 4)
981                 Name(_PRS, ResourceTemplate(){
982                     Interrupt (, Level, ActiveHigh, Shared)
983                         { 5, 10, 11 }
984                 })
985                 Method (_STA, 0, NotSerialized)
986                 {
987                     Store (0x0B, Local0)
988                     If (And (0x80, PRQ3, Local1))
989                     {
990                          Store (0x09, Local0)
991                     }
992                     Return (Local0)
993                 }
994                 Method (_DIS, 0, NotSerialized)
995                 {
996                     Or (PRQ3, 0x80, PRQ3)
997                 }
998                 Method (_CRS, 0, NotSerialized)
999                 {
1000                     Name (PRR0, ResourceTemplate ()
1001                     {
1002                         Interrupt (, Level, ActiveHigh, Shared)
1003                             {1}
1004                     })
1005                     CreateDWordField (PRR0, 0x05, TMP)
1006                     Store (PRQ3, Local0)
1007                     If (LLess (Local0, 0x80))
1008                     {
1009                         Store (Local0, TMP)
1010                     }
1011                     Else
1012                     {
1013                         Store (Zero, TMP)
1014                     }
1015                     Return (PRR0)
1016                 }
1017                 Method (_SRS, 1, NotSerialized)
1018                 {
1019                     CreateDWordField (Arg0, 0x05, TMP)
1020                     Store (TMP, PRQ3)
1021                 }
1022         }
1023     }
1025     /* S5 = power off state */
1026     Name (_S5, Package (4) {
1027         0x00, // PM1a_CNT.SLP_TYP
1028         0x00, // PM2a_CNT.SLP_TYP
1029         0x00, // reserved
1030         0x00, // reserved
1031     })
1032     Scope (\_GPE)
1033     {
1034         Method(_L00) {
1035             /* Up status */
1036             If (And(\_PR.PRU, 0x2)) {
1037                 Notify(\_PR.CPU1,1)
1038             }
1040             If (And(\_PR.PRU, 0x4)) {
1041                 Notify(\_PR.CPU2,1)
1042             }
1044             If (And(\_PR.PRU, 0x8)) {
1045                 Notify(\_PR.CPU3,1)
1046             }
1048             If (And(\_PR.PRU, 0x10)) {
1049                 Notify(\_PR.CPU4,1)
1050             }
1052             If (And(\_PR.PRU, 0x20)) {
1053                 Notify(\_PR.CPU5,1)
1054             }
1056             If (And(\_PR.PRU, 0x40)) {
1057                 Notify(\_PR.CPU6,1)
1058             }
1060             If (And(\_PR.PRU, 0x80)) {
1061                 Notify(\_PR.CPU7,1)
1062             }
1064             If (And(\_PR.PRU, 0x100)) {
1065                 Notify(\_PR.CPU8,1)
1066             }
1068             If (And(\_PR.PRU, 0x200)) {
1069                 Notify(\_PR.CPU9,1)
1070             }
1072             If (And(\_PR.PRU, 0x400)) {
1073                 Notify(\_PR.CPUA,1)
1074             }
1076             If (And(\_PR.PRU, 0x800)) {
1077                 Notify(\_PR.CPUB,1)
1078             }
1080             If (And(\_PR.PRU, 0x1000)) {
1081                 Notify(\_PR.CPUC,1)
1082             }
1084             If (And(\_PR.PRU, 0x2000)) {
1085                 Notify(\_PR.CPUD,1)
1086             }
1088             If (And(\_PR.PRU, 0x4000)) {
1089                 Notify(\_PR.CPUE,1)
1090             }
1092             /* Down status */
1093             If (And(\_PR.PRD, 0x2)) {
1094                 Notify(\_PR.CPU1,3)
1095             }
1097             If (And(\_PR.PRD, 0x4)) {
1098                 Notify(\_PR.CPU2,3)
1099             }
1101             If (And(\_PR.PRD, 0x8)) {
1102                 Notify(\_PR.CPU3,3)
1103             }
1105             If (And(\_PR.PRD, 0x10)) {
1106                 Notify(\_PR.CPU4,3)
1107             }
1109             If (And(\_PR.PRD, 0x20)) {
1110                 Notify(\_PR.CPU5,3)
1111             }
1113             If (And(\_PR.PRD, 0x40)) {
1114                 Notify(\_PR.CPU6,3)
1115             }
1117             If (And(\_PR.PRD, 0x80)) {
1118                 Notify(\_PR.CPU7,3)
1119             }
1121             If (And(\_PR.PRD, 0x100)) {
1122                 Notify(\_PR.CPU8,3)
1123             }
1125             If (And(\_PR.PRD, 0x200)) {
1126                 Notify(\_PR.CPU9,3)
1127             }
1129             If (And(\_PR.PRD, 0x400)) {
1130                 Notify(\_PR.CPUA,3)
1131             }
1133             If (And(\_PR.PRD, 0x800)) {
1134                 Notify(\_PR.CPUB,3)
1135             }
1137             If (And(\_PR.PRD, 0x1000)) {
1138                 Notify(\_PR.CPUC,3)
1139             }
1141             If (And(\_PR.PRD, 0x2000)) {
1142                 Notify(\_PR.CPUD,3)
1143             }
1145             If (And(\_PR.PRD, 0x4000)) {
1146                 Notify(\_PR.CPUE,3)
1147             }
1149             Return(0x01)
1150         }
1151         Method(_L01) {
1152             /* Up status */
1153             If (And(\_SB.PCI0.PCIU, 0x2)) {
1154                 Notify(\_SB.PCI0.S1, 0x1)
1155             }
1157             If (And(\_SB.PCI0.PCIU, 0x4)) {
1158                 Notify(\_SB.PCI0.S2, 0x1)
1159             }
1161             If (And(\_SB.PCI0.PCIU, 0x8)) {
1162                 Notify(\_SB.PCI0.S3, 0x1)
1163             }
1165             If (And(\_SB.PCI0.PCIU, 0x10)) {
1166                 Notify(\_SB.PCI0.S4, 0x1)
1167             }
1169             If (And(\_SB.PCI0.PCIU, 0x20)) {
1170                 Notify(\_SB.PCI0.S5, 0x1)
1171             }
1173             If (And(\_SB.PCI0.PCIU, 0x40)) {
1174                 Notify(\_SB.PCI0.S6, 0x1)
1175             }
1177             If (And(\_SB.PCI0.PCIU, 0x80)) {
1178                 Notify(\_SB.PCI0.S7, 0x1)
1179             }
1181             If (And(\_SB.PCI0.PCIU, 0x0100)) {
1182                 Notify(\_SB.PCI0.S8, 0x1)
1183             }
1185             If (And(\_SB.PCI0.PCIU, 0x0200)) {
1186                 Notify(\_SB.PCI0.S9, 0x1)
1187             }
1189             If (And(\_SB.PCI0.PCIU, 0x0400)) {
1190                 Notify(\_SB.PCI0.S10, 0x1)
1191             }
1193             If (And(\_SB.PCI0.PCIU, 0x0800)) {
1194                 Notify(\_SB.PCI0.S11, 0x1)
1195             }
1197             If (And(\_SB.PCI0.PCIU, 0x1000)) {
1198                 Notify(\_SB.PCI0.S12, 0x1)
1199             }
1201             If (And(\_SB.PCI0.PCIU, 0x2000)) {
1202                 Notify(\_SB.PCI0.S13, 0x1)
1203             }
1205             If (And(\_SB.PCI0.PCIU, 0x4000)) {
1206                 Notify(\_SB.PCI0.S14, 0x1)
1207             }
1209             If (And(\_SB.PCI0.PCIU, 0x8000)) {
1210                 Notify(\_SB.PCI0.S15, 0x1)
1211             }
1213             If (And(\_SB.PCI0.PCIU, 0x10000)) {
1214                 Notify(\_SB.PCI0.S16, 0x1)
1215             }
1217             If (And(\_SB.PCI0.PCIU, 0x20000)) {
1218                 Notify(\_SB.PCI0.S17, 0x1)
1219             }
1221             If (And(\_SB.PCI0.PCIU, 0x40000)) {
1222                 Notify(\_SB.PCI0.S18, 0x1)
1223             }
1225             If (And(\_SB.PCI0.PCIU, 0x80000)) {
1226                 Notify(\_SB.PCI0.S19, 0x1)
1227             }
1229             If (And(\_SB.PCI0.PCIU, 0x100000)) {
1230                 Notify(\_SB.PCI0.S20, 0x1)
1231             }
1233             If (And(\_SB.PCI0.PCIU, 0x200000)) {
1234                 Notify(\_SB.PCI0.S21, 0x1)
1235             }
1237             If (And(\_SB.PCI0.PCIU, 0x400000)) {
1238                 Notify(\_SB.PCI0.S22, 0x1)
1239             }
1241             If (And(\_SB.PCI0.PCIU, 0x800000)) {
1242                 Notify(\_SB.PCI0.S23, 0x1)
1243             }
1245             If (And(\_SB.PCI0.PCIU, 0x1000000)) {
1246                 Notify(\_SB.PCI0.S24, 0x1)
1247             }
1249             If (And(\_SB.PCI0.PCIU, 0x2000000)) {
1250                 Notify(\_SB.PCI0.S25, 0x1)
1251             }
1253             If (And(\_SB.PCI0.PCIU, 0x4000000)) {
1254                 Notify(\_SB.PCI0.S26, 0x1)
1255             }
1257             If (And(\_SB.PCI0.PCIU, 0x8000000)) {
1258                 Notify(\_SB.PCI0.S27, 0x1)
1259             }
1261             If (And(\_SB.PCI0.PCIU, 0x10000000)) {
1262                 Notify(\_SB.PCI0.S28, 0x1)
1263             }
1265             If (And(\_SB.PCI0.PCIU, 0x20000000)) {
1266                 Notify(\_SB.PCI0.S29, 0x1)
1267             }
1269             If (And(\_SB.PCI0.PCIU, 0x40000000)) {
1270                 Notify(\_SB.PCI0.S30, 0x1)
1271             }
1273             If (And(\_SB.PCI0.PCIU, 0x80000000)) {
1274                 Notify(\_SB.PCI0.S31, 0x1)
1275             }
1277             /* Down status */
1278             If (And(\_SB.PCI0.PCID, 0x2)) {
1279                 Notify(\_SB.PCI0.S1, 0x3)
1280             }
1282             If (And(\_SB.PCI0.PCID, 0x4)) {
1283                 Notify(\_SB.PCI0.S2, 0x3)
1284             }
1286             If (And(\_SB.PCI0.PCID, 0x8)) {
1287                 Notify(\_SB.PCI0.S3, 0x3)
1288             }
1290             If (And(\_SB.PCI0.PCID, 0x10)) {
1291                 Notify(\_SB.PCI0.S4, 0x3)
1292             }
1294             If (And(\_SB.PCI0.PCID, 0x20)) {
1295                 Notify(\_SB.PCI0.S5, 0x3)
1296             }
1298             If (And(\_SB.PCI0.PCID, 0x40)) {
1299                 Notify(\_SB.PCI0.S6, 0x3)
1300             }
1302             If (And(\_SB.PCI0.PCID, 0x80)) {
1303                 Notify(\_SB.PCI0.S7, 0x3)
1304             }
1306             If (And(\_SB.PCI0.PCID, 0x0100)) {
1307                 Notify(\_SB.PCI0.S8, 0x3)
1308             }
1310             If (And(\_SB.PCI0.PCID, 0x0200)) {
1311                 Notify(\_SB.PCI0.S9, 0x3)
1312             }
1314             If (And(\_SB.PCI0.PCID, 0x0400)) {
1315                 Notify(\_SB.PCI0.S10, 0x3)
1316             }
1318             If (And(\_SB.PCI0.PCID, 0x0800)) {
1319                 Notify(\_SB.PCI0.S11, 0x3)
1320             }
1322             If (And(\_SB.PCI0.PCID, 0x1000)) {
1323                 Notify(\_SB.PCI0.S12, 0x3)
1324             }
1326             If (And(\_SB.PCI0.PCID, 0x2000)) {
1327                 Notify(\_SB.PCI0.S13, 0x3)
1328             }
1330             If (And(\_SB.PCI0.PCID, 0x4000)) {
1331                 Notify(\_SB.PCI0.S14, 0x3)
1332             }
1334             If (And(\_SB.PCI0.PCID, 0x8000)) {
1335                 Notify(\_SB.PCI0.S15, 0x3)
1336             }
1338             If (And(\_SB.PCI0.PCID, 0x10000)) {
1339                 Notify(\_SB.PCI0.S16, 0x3)
1340             }
1342             If (And(\_SB.PCI0.PCID, 0x20000)) {
1343                 Notify(\_SB.PCI0.S17, 0x3)
1344             }
1346             If (And(\_SB.PCI0.PCID, 0x40000)) {
1347                 Notify(\_SB.PCI0.S18, 0x3)
1348             }
1350             If (And(\_SB.PCI0.PCID, 0x80000)) {
1351                 Notify(\_SB.PCI0.S19, 0x3)
1352             }
1354             If (And(\_SB.PCI0.PCID, 0x100000)) {
1355                 Notify(\_SB.PCI0.S20, 0x3)
1356             }
1358             If (And(\_SB.PCI0.PCID, 0x200000)) {
1359                 Notify(\_SB.PCI0.S21, 0x3)
1360             }
1362             If (And(\_SB.PCI0.PCID, 0x400000)) {
1363                 Notify(\_SB.PCI0.S22, 0x3)
1364             }
1366             If (And(\_SB.PCI0.PCID, 0x800000)) {
1367                 Notify(\_SB.PCI0.S23, 0x3)
1368             }
1370             If (And(\_SB.PCI0.PCID, 0x1000000)) {
1371                 Notify(\_SB.PCI0.S24, 0x3)
1372             }
1374             If (And(\_SB.PCI0.PCID, 0x2000000)) {
1375                 Notify(\_SB.PCI0.S25, 0x3)
1376             }
1378             If (And(\_SB.PCI0.PCID, 0x4000000)) {
1379                 Notify(\_SB.PCI0.S26, 0x3)
1380             }
1382             If (And(\_SB.PCI0.PCID, 0x8000000)) {
1383                 Notify(\_SB.PCI0.S27, 0x3)
1384             }
1386             If (And(\_SB.PCI0.PCID, 0x10000000)) {
1387                 Notify(\_SB.PCI0.S28, 0x3)
1388             }
1390             If (And(\_SB.PCI0.PCID, 0x20000000)) {
1391                 Notify(\_SB.PCI0.S29, 0x3)
1392             }
1394             If (And(\_SB.PCI0.PCID, 0x40000000)) {
1395                 Notify(\_SB.PCI0.S30, 0x3)
1396             }
1398             If (And(\_SB.PCI0.PCID, 0x80000000)) {
1399                 Notify(\_SB.PCI0.S31, 0x3)
1400             }
1402             Return(0x01)
1403         }
1404         Method(_L02) {
1405             Return(0x01)
1406         }
1407         Method(_L03) {
1408             Return(0x01)
1409         }
1410         Method(_L04) {
1411             Return(0x01)
1412         }
1413         Method(_L05) {
1414             Return(0x01)
1415         }
1416         Method(_L06) {
1417             Return(0x01)
1418         }
1419         Method(_L07) {
1420             Return(0x01)
1421         }
1422         Method(_L08) {
1423             Return(0x01)
1424         }
1425         Method(_L09) {
1426             Return(0x01)
1427         }
1428         Method(_L0A) {
1429             Return(0x01)
1430         }
1431         Method(_L0B) {
1432             Return(0x01)
1433         }
1434         Method(_L0C) {
1435             Return(0x01)
1436         }
1437         Method(_L0D) {
1438             Return(0x01)
1439         }
1440         Method(_L0E) {
1441             Return(0x01)
1442         }
1443         Method(_L0F) {
1444             Return(0x01)
1445         }
1446     }