Ticket #385: dsdt_GBTUACPI2.dsl

File dsdt_GBTUACPI2.dsl, 171.2 KB (added by robc, 15 years ago)
Line 
1            Return (0x00)
2        }
3
4        Add (SizeOf (Arg0), 0x01, Local0)
5        Name (BUF0, Buffer (Local0) {})
6        Name (BUF1, Buffer (Local0) {})
7        Store (Arg0, BUF0)
8        Store (Arg1, BUF1)
9        While (Local0)
10        {
11            Decrement (Local0)
12            If (LNotEqual (DerefOf (Index (BUF0, Local0)), DerefOf (Index (
13                BUF1, Local0))))
14            {
15                Return (Zero)
16            }
17        }
18
19        Return (One)
20    }
21
22    OperationRegion (INFO, SystemMemory, 0x000FF840, 0x01)
23    Field (INFO, ByteAcc, NoLock, Preserve)
24    {
25        KBDI,   1,
26        RTCW,   1,
27        PS2F,   1,
28        IRFL,   2,
29        DISE,   1,
30        SSHU,   1
31    }
32
33    Scope (\)
34    {
35        Name (PICF, 0x00)
36        Method (_PIC, 1, NotSerialized)
37        {
38            Store (Arg0, PICF)
39            If (Arg0)
40            {
41                \_SB.PCI0.LPC0.DSPI ()
42            }
43        }
44    }
45
46    Method (\_PTS, 1, NotSerialized)
47    {
48        Or (Arg0, 0xF0, Local0)
49        Store (Local0, DBG1)
50        If (LEqual (Arg0, 0x01)) {}
51        If (LEqual (Arg0, 0x05)) {}
52        SPTS (Arg0)
53    }
54
55    Method (\_WAK, 1, NotSerialized)
56    {
57        Store (0xFF, DBG1)
58        If (LEqual (Arg0, 0x04))
59        {
60            If (LEqual (OSFL, 0x02))
61            {
62                Store (0x57, SMIP)
63            }
64
65            If (LEqual (OSFL, 0x01))
66            {
67                Store (0x56, SMIP)
68            }
69
70            If (LEqual (OSFL, 0x00))
71            {
72                If (LEqual (OSFX, 0x04))
73                {
74                    Store (0x59, SMIP)
75                }
76                Else
77                {
78                    If (LEqual (OSFX, 0x03))
79                    {
80                        Store (0x59, SMIP)
81                    }
82                    Else
83                    {
84                        Store (0x58, SMIP)
85                    }
86                }
87            }
88
89            If (LEqual (OSFX, 0x03))
90            {
91                Store (0x59, SMIP)
92            }
93
94            If (LEqual (OSFX, 0x04))
95            {
96                Store (0x59, SMIP)
97            }
98        }
99
100        SWAK (Arg0)
101        If (LEqual (OSFL, 0x01))
102        {
103            Notify (\_SB.PWRB, 0x02)
104        }
105        Else
106        {
107            If (LEqual (Arg0, 0x01))
108            {
109                And (P1, 0x04, Local0)
110                If (LEqual (Local0, 0x00))
111                {
112                    Notify (\_SB.PWRB, 0x02)
113                }
114            }
115
116            If (LEqual (Arg0, 0x03))
117            {
118                If (LEqual (RTCW, Zero))
119                {
120                    Notify (\_SB.PWRB, 0x02)
121                }
122            }
123        }
124
125        If (LEqual (Arg0, 0x04))
126        {
127            Notify (\_SB.PWRB, 0x02)
128        }
129    }
130
131    Scope (\_SI)
132    {
133    }
134
135    Scope (\_GPE)
136    {
137        Method (_L04, 0, NotSerialized)
138        {
139            Notify (\_SB.PCI0.P2P, 0x02)
140        }
141
142        Method (_L18, 0, NotSerialized)
143        {
144            Notify (\_SB.PCI0.PCE2, 0x02)
145            Notify (\_SB.PCI0.PCE3, 0x02)
146            Notify (\_SB.PCI0.PCE4, 0x02)
147            Notify (\_SB.PCI0.PCE5, 0x02)
148            Notify (\_SB.PCI0.PCE6, 0x02)
149            Notify (\_SB.PCI0.PCE7, 0x02)
150            Notify (\_SB.PCI0.PCE9, 0x02)
151            Notify (\_SB.PCI0.PCEA, 0x02)
152            Notify (\_SB.PCI0.PCEB, 0x02)
153            Notify (\_SB.PCI0.PCEC, 0x02)
154        }
155
156        Method (_L03, 0, NotSerialized)
157        {
158            Notify (\_SB.PCI0.PS2K, 0x02)
159            Notify (\_SB.PCI0.PS2M, 0x02)
160        }
161
162        Method (_L0B, 0, NotSerialized)
163        {
164            Notify (\_SB.PCI0.USB0, 0x02)
165            Notify (\_SB.PCI0.USB1, 0x02)
166            Notify (\_SB.PCI0.USB2, 0x02)
167            Notify (\_SB.PCI0.USB3, 0x02)
168            Notify (\_SB.PCI0.USB4, 0x02)
169            Notify (\_SB.PCI0.USB5, 0x02)
170            Notify (\_SB.PCI0.USB6, 0x02)
171        }
172
173        Method (_L1B, 0, NotSerialized)
174        {
175            Notify (\_SB.PCI0.SBAZ, 0x02)
176        }
177    }
178
179    Scope (\_SB)
180    {
181        Device (\AWY)
182        {
183            Name (_HID, "AWY0001")
184            Method (_STA, 0, NotSerialized)
185            {
186                If (AWMD)
187                {
188                    Return (0x0F)
189                }
190
191                Return (0x00)
192            }
193        }
194
195        Method (SMOD, 1, NotSerialized)
196        {
197        }
198
199        Device (PWRB)
200        {
201            Name (_HID, EisaId ("PNP0C0C"))
202            Method (_STA, 0, NotSerialized)
203            {
204                Return (0x0B)
205            }
206        }
207
208        Device (PCI0)
209        {
210            Name (_HID, EisaId ("PNP0A03"))
211            Name (_ADR, 0x00)
212            Scope (\)
213            {
214                OperationRegion (\SCPP, SystemIO, 0xB0, 0x01)
215                Field (\SCPP, ByteAcc, NoLock, Preserve)
216                {
217                    SMIP,   8
218                }
219            }
220
221            Method (\_SB.PCI0._INI, 0, NotSerialized)
222            {
223                If (STRC (\_OS, "Microsoft Windows")) {}
224                Else
225                {
226                    If (STRC (\_OS, "Microsoft Windows NT"))
227                    {
228                        If (CondRefOf (\_OSI, Local0))
229                        {
230                            If (\_OSI ("Windows 2001"))
231                            {
232                                Store (0x59, SMIP)
233                                Store (0x00, OSFL)
234                                Store (0x03, OSFX)
235                            }
236                        }
237                        Else
238                        {
239                            Store (0x58, SMIP)
240                            Store (0x00, OSFL)
241                        }
242                    }
243                    Else
244                    {
245                        Store (0x02, OSFL)
246                    }
247                }
248
249                Store (OSFX, OSTY)
250                If (LEqual (OSFX, 0x00))
251                {
252                    Store (0x04, OSTY)
253                }
254
255                If (LEqual (OSFX, 0x03))
256                {
257                    Store (0x05, OSTY)
258                }
259
260                If (LEqual (OSFX, 0x04))
261                {
262                    Store (0x06, OSTY)
263                }
264            }
265
266            Device (SYSR)
267            {
268                Name (_HID, EisaId ("PNP0C02"))
269                Name (_UID, 0x01)
270                Name (_CRS, ResourceTemplate ()
271                {
272                    IO (Decode16,
273                        0x0010,             // Range Minimum
274                        0x0010,             // Range Maximum
275                        0x01,               // Alignment
276                        0x10,               // Length
277                        )
278                    IO (Decode16,
279                        0x0022,             // Range Minimum
280                        0x0022,             // Range Maximum
281                        0x01,               // Alignment
282                        0x1E,               // Length
283                        )
284                    IO (Decode16,
285                        0x0044,             // Range Minimum
286                        0x0044,             // Range Maximum
287                        0x01,               // Alignment
288                        0x1C,               // Length
289                        )
290                    IO (Decode16,
291                        0x0062,             // Range Minimum
292                        0x0062,             // Range Maximum
293                        0x01,               // Alignment
294                        0x02,               // Length
295                        )
296                    IO (Decode16,
297                        0x0065,             // Range Minimum
298                        0x0065,             // Range Maximum
299                        0x01,               // Alignment
300                        0x0B,               // Length
301                        )
302                    IO (Decode16,
303                        0x0074,             // Range Minimum
304                        0x0074,             // Range Maximum
305                        0x01,               // Alignment
306                        0x0C,               // Length
307                        )
308                    IO (Decode16,
309                        0x0091,             // Range Minimum
310                        0x0091,             // Range Maximum
311                        0x01,               // Alignment
312                        0x03,               // Length
313                        )
314                    IO (Decode16,
315                        0x00A2,             // Range Minimum
316                        0x00A2,             // Range Maximum
317                        0x01,               // Alignment
318                        0x1E,               // Length
319                        )
320                    IO (Decode16,
321                        0x00E0,             // Range Minimum
322                        0x00E0,             // Range Maximum
323                        0x01,               // Alignment
324                        0x10,               // Length
325                        )
326                    IO (Decode16,
327                        0x04D0,             // Range Minimum
328                        0x04D0,             // Range Maximum
329                        0x01,               // Alignment
330                        0x02,               // Length
331                        )
332                    IO (Decode16,
333                        0x0220,             // Range Minimum
334                        0x0220,             // Range Maximum
335                        0x01,               // Alignment
336                        0x06,               // Length
337                        )
338                    IO (Decode16,
339                        0x0290,             // Range Minimum
340                        0x0290,             // Range Maximum
341                        0x01,               // Alignment
342                        0x05,               // Length
343                        )
344                })
345            }
346
347            OperationRegion (BAR1, PCI_Config, 0x14, 0x04)
348            Field (BAR1, ByteAcc, NoLock, Preserve)
349            {
350                MMIO,   32
351            }
352
353            Method (SS3D, 0, NotSerialized)
354            {
355                If (LEqual (OSFL, 0x02))
356                {
357                    Return (0x02)
358                }
359                Else
360                {
361                    Return (0x03)
362                }
363            }
364
365            Method (_STA, 0, NotSerialized)
366            {
367                Return (0x0F)
368            }
369
370            Method (_CRS, 0, NotSerialized)
371            {
372                Name (BUF0, ResourceTemplate ()
373                {
374                    WordBusNumber (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode,
375                        0x0000,             // Granularity
376                        0x0000,             // Range Minimum
377                        0x00FF,             // Range Maximum
378                        0x0000,             // Translation Offset
379                        0x0100,             // Length
380                        ,, )
381                    IO (Decode16,
382                        0x0CF8,             // Range Minimum
383                        0x0CF8,             // Range Maximum
384                        0x01,               // Alignment
385                        0x08,               // Length
386                        )
387                    WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
388                        0x0000,             // Granularity
389                        0x0000,             // Range Minimum
390                        0x0CF7,             // Range Maximum
391                        0x0000,             // Translation Offset
392                        0x0CF8,             // Length
393                        ,, , TypeStatic)
394                    WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
395                        0x0000,             // Granularity
396                        0x0D00,             // Range Minimum
397                        0xFFFF,             // Range Maximum
398                        0x0000,             // Translation Offset
399                        0xF300,             // Length
400                        ,, , TypeStatic)
401                    DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
402                        0x00000000,         // Granularity
403                        0x000A0000,         // Range Minimum
404                        0x000BFFFF,         // Range Maximum
405                        0x00000000,         // Translation Offset
406                        0x00020000,         // Length
407                        ,, , AddressRangeMemory, TypeStatic)
408                    DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
409                        0x00000000,         // Granularity
410                        0x000C0000,         // Range Minimum
411                        0x000DFFFF,         // Range Maximum
412                        0x00000000,         // Translation Offset
413                        0x00020000,         // Length
414                        ,, , AddressRangeMemory, TypeStatic)
415                    DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
416                        0x00000000,         // Granularity
417                        0x00100000,         // Range Minimum
418                        0xFEBFFFFF,         // Range Maximum
419                        0x00000000,         // Translation Offset
420                        0xFFF00000,         // Length
421                        ,, _Y00, AddressRangeMemory, TypeStatic)
422                })
423                CreateDWordField (BUF0, \_SB.PCI0._CRS._Y00._MIN, TCMM)
424                CreateDWordField (BUF0, \_SB.PCI0._CRS._Y00._LEN, TOMM)
425                Add (AMEM, 0x00010000, TCMM)
426                Subtract (0xFEC00000, TCMM, TOMM)
427                Add (TCMM, SMEM, TCMM)
428                Add (TCMM, 0x00100000, TCMM)
429                Add (TCMM, 0x00010000, TCMM)
430                Return (BUF0)
431            }
432
433            Name (PICM, Package (0x38)
434            {
435                Package (0x04)
436                {
437                    0x0002FFFF,
438                    0x00,
439                    \_SB.PCI0.LPC0.LNKC,
440                    0x00
441                },
442
443                Package (0x04)
444                {
445                    0x0002FFFF,
446                    0x01,
447                    \_SB.PCI0.LPC0.LNKD,
448                    0x00
449                },
450
451                Package (0x04)
452                {
453                    0x0002FFFF,
454                    0x02,
455                    \_SB.PCI0.LPC0.LNKA,
456                    0x00
457                },
458
459                Package (0x04)
460                {
461                    0x0002FFFF,
462                    0x03,
463                    \_SB.PCI0.LPC0.LNKB,
464                    0x00
465                },
466
467                Package (0x04)
468                {
469                    0x0003FFFF,
470                    0x00,
471                    \_SB.PCI0.LPC0.LNKD,
472                    0x00
473                },
474
475                Package (0x04)
476                {
477                    0x0003FFFF,
478                    0x01,
479                    \_SB.PCI0.LPC0.LNKA,
480                    0x00
481                },
482
483                Package (0x04)
484                {
485                    0x0003FFFF,
486                    0x02,
487                    \_SB.PCI0.LPC0.LNKB,
488                    0x00
489                },
490
491                Package (0x04)
492                {
493                    0x0003FFFF,
494                    0x03,
495                    \_SB.PCI0.LPC0.LNKC,
496                    0x00
497                },
498
499                Package (0x04)
500                {
501                    0x0004FFFF,
502                    0x00,
503                    \_SB.PCI0.LPC0.LNKA,
504                    0x00
505                },
506
507                Package (0x04)
508                {
509                    0x0004FFFF,
510                    0x01,
511                    \_SB.PCI0.LPC0.LNKB,
512                    0x00
513                },
514
515                Package (0x04)
516                {
517                    0x0004FFFF,
518                    0x02,
519                    \_SB.PCI0.LPC0.LNKC,
520                    0x00
521                },
522
523                Package (0x04)
524                {
525                    0x0004FFFF,
526                    0x03,
527                    \_SB.PCI0.LPC0.LNKD,
528                    0x00
529                },
530
531                Package (0x04)
532                {
533                    0x0005FFFF,
534                    0x00,
535                    \_SB.PCI0.LPC0.LNKB,
536                    0x00
537                },
538
539                Package (0x04)
540                {
541                    0x0005FFFF,
542                    0x01,
543                    \_SB.PCI0.LPC0.LNKC,
544                    0x00
545                },
546
547                Package (0x04)
548                {
549                    0x0005FFFF,
550                    0x02,
551                    \_SB.PCI0.LPC0.LNKD,
552                    0x00
553                },
554
555                Package (0x04)
556                {
557                    0x0005FFFF,
558                    0x03,
559                    \_SB.PCI0.LPC0.LNKA,
560                    0x00
561                },
562
563                Package (0x04)
564                {
565                    0x0006FFFF,
566                    0x00,
567                    \_SB.PCI0.LPC0.LNKC,
568                    0x00
569                },
570
571                Package (0x04)
572                {
573                    0x0006FFFF,
574                    0x01,
575                    \_SB.PCI0.LPC0.LNKD,
576                    0x00
577                },
578
579                Package (0x04)
580                {
581                    0x0006FFFF,
582                    0x02,
583                    \_SB.PCI0.LPC0.LNKA,
584                    0x00
585                },
586
587                Package (0x04)
588                {
589                    0x0006FFFF,
590                    0x03,
591                    \_SB.PCI0.LPC0.LNKB,
592                    0x00
593                },
594
595                Package (0x04)
596                {
597                    0x0007FFFF,
598                    0x00,
599                    \_SB.PCI0.LPC0.LNKD,
600                    0x00
601                },
602
603                Package (0x04)
604                {
605                    0x0007FFFF,
606                    0x01,
607                    \_SB.PCI0.LPC0.LNKA,
608                    0x00
609                },
610
611                Package (0x04)
612                {
613                    0x0007FFFF,
614                    0x02,
615                    \_SB.PCI0.LPC0.LNKB,
616                    0x00
617                },
618
619                Package (0x04)
620                {
621                    0x0007FFFF,
622                    0x03,
623                    \_SB.PCI0.LPC0.LNKC,
624                    0x00
625                },
626
627                Package (0x04)
628                {
629                    0x0009FFFF,
630                    0x00,
631                    \_SB.PCI0.LPC0.LNKB,
632                    0x00
633                },
634
635                Package (0x04)
636                {
637                    0x0009FFFF,
638                    0x01,
639                    \_SB.PCI0.LPC0.LNKC,
640                    0x00
641                },
642
643                Package (0x04)
644                {
645                    0x0009FFFF,
646                    0x02,
647                    \_SB.PCI0.LPC0.LNKD,
648                    0x00
649                },
650
651                Package (0x04)
652                {
653                    0x0009FFFF,
654                    0x03,
655                    \_SB.PCI0.LPC0.LNKA,
656                    0x00
657                },
658
659                Package (0x04)
660                {
661                    0x000AFFFF,
662                    0x00,
663                    \_SB.PCI0.LPC0.LNKC,
664                    0x00
665                },
666
667                Package (0x04)
668                {
669                    0x000AFFFF,
670                    0x01,
671                    \_SB.PCI0.LPC0.LNKD,
672                    0x00
673                },
674
675                Package (0x04)
676                {
677                    0x000AFFFF,
678                    0x02,
679                    \_SB.PCI0.LPC0.LNKA,
680                    0x00
681                },
682
683                Package (0x04)
684                {
685                    0x000AFFFF,
686                    0x03,
687                    \_SB.PCI0.LPC0.LNKB,
688                    0x00
689                },
690
691                Package (0x04)
692                {
693                    0x000BFFFF,
694                    0x00,
695                    \_SB.PCI0.LPC0.LNKD,
696                    0x00
697                },
698
699                Package (0x04)
700                {
701                    0x000BFFFF,
702                    0x01,
703                    \_SB.PCI0.LPC0.LNKA,
704                    0x00
705                },
706
707                Package (0x04)
708                {
709                    0x000BFFFF,
710                    0x02,
711                    \_SB.PCI0.LPC0.LNKB,
712                    0x00
713                },
714
715                Package (0x04)
716                {
717                    0x000BFFFF,
718                    0x03,
719                    \_SB.PCI0.LPC0.LNKC,
720                    0x00
721                },
722
723                Package (0x04)
724                {
725                    0x000CFFFF,
726                    0x00,
727                    \_SB.PCI0.LPC0.LNKA,
728                    0x00
729                },
730
731                Package (0x04)
732                {
733                    0x000CFFFF,
734                    0x01,
735                    \_SB.PCI0.LPC0.LNKB,
736                    0x00
737                },
738
739                Package (0x04)
740                {
741                    0x000CFFFF,
742                    0x02,
743                    \_SB.PCI0.LPC0.LNKC,
744                    0x00
745                },
746
747                Package (0x04)
748                {
749                    0x000CFFFF,
750                    0x03,
751                    \_SB.PCI0.LPC0.LNKD,
752                    0x00
753                },
754
755                Package (0x04)
756                {
757                    0x0014FFFF,
758                    0x00,
759                    \_SB.PCI0.LPC0.LNKA,
760                    0x00
761                },
762
763                Package (0x04)
764                {
765                    0x0014FFFF,
766                    0x01,
767                    \_SB.PCI0.LPC0.LNKB,
768                    0x00
769                },
770
771                Package (0x04)
772                {
773                    0x0014FFFF,
774                    0x02,
775                    \_SB.PCI0.LPC0.LNKC,
776                    0x00
777                },
778
779                Package (0x04)
780                {
781                    0x0014FFFF,
782                    0x03,
783                    \_SB.PCI0.LPC0.LNKD,
784                    0x00
785                },
786
787                Package (0x04)
788                {
789                    0x0012FFFF,
790                    0x00,
791                    \_SB.PCI0.LPC0.LNKA,
792                    0x00
793                },
794
795                Package (0x04)
796                {
797                    0x0012FFFF,
798                    0x01,
799                    \_SB.PCI0.LPC0.LNKB,
800                    0x00
801                },
802
803                Package (0x04)
804                {
805                    0x0012FFFF,
806                    0x02,
807                    \_SB.PCI0.LPC0.LNKC,
808                    0x00
809                },
810
811                Package (0x04)
812                {
813                    0x0012FFFF,
814                    0x03,
815                    \_SB.PCI0.LPC0.LNKD,
816                    0x00
817                },
818
819                Package (0x04)
820                {
821                    0x0013FFFF,
822                    0x00,
823                    \_SB.PCI0.LPC0.LNKC,
824                    0x00
825                },
826
827                Package (0x04)
828                {
829                    0x0013FFFF,
830                    0x01,
831                    \_SB.PCI0.LPC0.LNKD,
832                    0x00
833                },
834
835                Package (0x04)
836                {
837                    0x0013FFFF,
838                    0x02,
839                    \_SB.PCI0.LPC0.LNKA,
840                    0x00
841                },
842
843                Package (0x04)
844                {
845                    0x0013FFFF,
846                    0x03,
847                    \_SB.PCI0.LPC0.LNKB,
848                    0x00
849                },
850
851                Package (0x04)
852                {
853                    0x0011FFFF,
854                    0x00,
855                    \_SB.PCI0.LPC0.LNK0,
856                    0x00
857                },
858
859                Package (0x04)
860                {
861                    0x0011FFFF,
862                    0x01,
863                    \_SB.PCI0.LPC0.LNK0,
864                    0x00
865                },
866
867                Package (0x04)
868                {
869                    0x0011FFFF,
870                    0x02,
871                    \_SB.PCI0.LPC0.LNK0,
872                    0x00
873                },
874
875                Package (0x04)
876                {
877                    0x0011FFFF,
878                    0x03,
879                    \_SB.PCI0.LPC0.LNK0,
880                    0x00
881                }
882            })
883            Name (APIC, Package (0x35)
884            {
885                Package (0x04)
886                {
887                    0x0002FFFF,
888                    0x00,
889                    0x00,
890                    0x12
891                },
892
893                Package (0x04)
894                {
895                    0x0002FFFF,
896                    0x01,
897                    0x00,
898                    0x13
899                },
900
901                Package (0x04)
902                {
903                    0x0002FFFF,
904                    0x02,
905                    0x00,
906                    0x10
907                },
908
909                Package (0x04)
910                {
911                    0x0002FFFF,
912                    0x03,
913                    0x00,
914                    0x11
915                },
916
917                Package (0x04)
918                {
919                    0x0003FFFF,
920                    0x00,
921                    0x00,
922                    0x13
923                },
924
925                Package (0x04)
926                {
927                    0x0003FFFF,
928                    0x01,
929                    0x00,
930                    0x10
931                },
932
933                Package (0x04)
934                {
935                    0x0003FFFF,
936                    0x02,
937                    0x00,
938                    0x11
939                },
940
941                Package (0x04)
942                {
943                    0x0003FFFF,
944                    0x03,
945                    0x00,
946                    0x12
947                },
948
949                Package (0x04)
950                {
951                    0x0004FFFF,
952                    0x00,
953                    0x00,
954                    0x10
955                },
956
957                Package (0x04)
958                {
959                    0x0004FFFF,
960                    0x01,
961                    0x00,
962                    0x11
963                },
964
965                Package (0x04)
966                {
967                    0x0004FFFF,
968                    0x02,
969                    0x00,
970                    0x12
971                },
972
973                Package (0x04)
974                {
975                    0x0004FFFF,
976                    0x03,
977                    0x00,
978                    0x13
979                },
980
981                Package (0x04)
982                {
983                    0x0005FFFF,
984                    0x00,
985                    0x00,
986                    0x11
987                },
988
989                Package (0x04)
990                {
991                    0x0005FFFF,
992                    0x01,
993                    0x00,
994                    0x12
995                },
996
997                Package (0x04)
998                {
999                    0x0005FFFF,
1000                    0x02,
1001                    0x00,
1002                    0x13
1003                },
1004
1005                Package (0x04)
1006                {
1007                    0x0005FFFF,
1008                    0x03,
1009                    0x00,
1010                    0x10
1011                },
1012
1013                Package (0x04)
1014                {
1015                    0x0006FFFF,
1016                    0x00,
1017                    0x00,
1018                    0x12
1019                },
1020
1021                Package (0x04)
1022                {
1023                    0x0006FFFF,
1024                    0x01,
1025                    0x00,
1026                    0x13
1027                },
1028
1029                Package (0x04)
1030                {
1031                    0x0006FFFF,
1032                    0x02,
1033                    0x00,
1034                    0x10
1035                },
1036
1037                Package (0x04)
1038                {
1039                    0x0006FFFF,
1040                    0x03,
1041                    0x00,
1042                    0x11
1043                },
1044
1045                Package (0x04)
1046                {
1047                    0x0007FFFF,
1048                    0x00,
1049                    0x00,
1050                    0x13
1051                },
1052
1053                Package (0x04)
1054                {
1055                    0x0007FFFF,
1056                    0x01,
1057                    0x00,
1058                    0x10
1059                },
1060
1061                Package (0x04)
1062                {
1063                    0x0007FFFF,
1064                    0x02,
1065                    0x00,
1066                    0x11
1067                },
1068
1069                Package (0x04)
1070                {
1071                    0x0007FFFF,
1072                    0x03,
1073                    0x00,
1074                    0x12
1075                },
1076
1077                Package (0x04)
1078                {
1079                    0x0009FFFF,
1080                    0x00,
1081                    0x00,
1082                    0x11
1083                },
1084
1085                Package (0x04)
1086                {
1087                    0x0009FFFF,
1088                    0x01,
1089                    0x00,
1090                    0x12
1091                },
1092
1093                Package (0x04)
1094                {
1095                    0x0009FFFF,
1096                    0x02,
1097                    0x00,
1098                    0x13
1099                },
1100
1101                Package (0x04)
1102                {
1103                    0x0009FFFF,
1104                    0x03,
1105                    0x00,
1106                    0x10
1107                },
1108
1109                Package (0x04)
1110                {
1111                    0x000AFFFF,
1112                    0x00,
1113                    0x00,
1114                    0x12
1115                },
1116
1117                Package (0x04)
1118                {
1119                    0x000AFFFF,
1120                    0x01,
1121                    0x00,
1122                    0x13
1123                },
1124
1125                Package (0x04)
1126                {
1127                    0x000AFFFF,
1128                    0x02,
1129                    0x00,
1130                    0x10
1131                },
1132
1133                Package (0x04)
1134                {
1135                    0x000AFFFF,
1136                    0x03,
1137                    0x00,
1138                    0x11
1139                },
1140
1141                Package (0x04)
1142                {
1143                    0x000BFFFF,
1144                    0x00,
1145                    0x00,
1146                    0x13
1147                },
1148
1149                Package (0x04)
1150                {
1151                    0x000BFFFF,
1152                    0x01,
1153                    0x00,
1154                    0x10
1155                },
1156
1157                Package (0x04)
1158                {
1159                    0x000BFFFF,
1160                    0x02,
1161                    0x00,
1162                    0x11
1163                },
1164
1165                Package (0x04)
1166                {
1167                    0x000BFFFF,
1168                    0x03,
1169                    0x00,
1170                    0x12
1171                },
1172
1173                Package (0x04)
1174                {
1175                    0x000CFFFF,
1176                    0x00,
1177                    0x00,
1178                    0x10
1179                },
1180
1181                Package (0x04)
1182                {
1183                    0x000CFFFF,
1184                    0x01,
1185                    0x00,
1186                    0x11
1187                },
1188
1189                Package (0x04)
1190                {
1191                    0x000CFFFF,
1192                    0x02,
1193                    0x00,
1194                    0x12
1195                },
1196
1197                Package (0x04)
1198                {
1199                    0x000CFFFF,
1200                    0x03,
1201                    0x00,
1202                    0x13
1203                },
1204
1205                Package (0x04)
1206                {
1207                    0x0014FFFF,
1208                    0x00,
1209                    0x00,
1210                    0x10
1211                },
1212
1213                Package (0x04)
1214                {
1215                    0x0014FFFF,
1216                    0x01,
1217                    0x00,
1218                    0x11
1219                },
1220
1221                Package (0x04)
1222                {
1223                    0x0014FFFF,
1224                    0x02,
1225                    0x00,
1226                    0x12
1227                },
1228
1229                Package (0x04)
1230                {
1231                    0x0014FFFF,
1232                    0x03,
1233                    0x00,
1234                    0x13
1235                },
1236
1237                Package (0x04)
1238                {
1239                    0x0012FFFF,
1240                    0x00,
1241                    0x00,
1242                    0x10
1243                },
1244
1245                Package (0x04)
1246                {
1247                    0x0012FFFF,
1248                    0x01,
1249                    0x00,
1250                    0x11
1251                },
1252
1253                Package (0x04)
1254                {
1255                    0x0012FFFF,
1256                    0x02,
1257                    0x00,
1258                    0x12
1259                },
1260
1261                Package (0x04)
1262                {
1263                    0x0012FFFF,
1264                    0x03,
1265                    0x00,
1266                    0x13
1267                },
1268
1269                Package (0x04)
1270                {
1271                    0x0013FFFF,
1272                    0x00,
1273                    0x00,
1274                    0x12
1275                },
1276
1277                Package (0x04)
1278                {
1279                    0x0013FFFF,
1280                    0x01,
1281                    0x00,
1282                    0x13
1283                },
1284
1285                Package (0x04)
1286                {
1287                    0x0013FFFF,
1288                    0x02,
1289                    0x00,
1290                    0x10
1291                },
1292
1293                Package (0x04)
1294                {
1295                    0x0013FFFF,
1296                    0x03,
1297                    0x00,
1298                    0x11
1299                },
1300
1301                Package (0x04)
1302                {
1303                    0x0011FFFF,
1304                    0x00,
1305                    0x00,
1306                    0x16
1307                }
1308            })
1309            Method (_PRT, 0, NotSerialized)
1310            {
1311                If (LNot (PICF))
1312                {
1313                    Return (PICM)
1314                }
1315                Else
1316                {
1317                    Return (APIC)
1318                }
1319            }
1320
1321            Device (SMB0)
1322            {
1323                Name (_ADR, 0x00140000)
1324                OperationRegion (\_SB.PCI0.SMB0.HETT, PCI_Config, 0x64, 0x02)
1325                Scope (\)
1326                {
1327                    Field (\_SB.PCI0.SMB0.HETT, ByteAcc, NoLock, Preserve)
1328                    {
1329                        HP0,    8,
1330                            ,   2,
1331                        HPTF,   1,
1332                                Offset (0x02)
1333                    }
1334                }
1335            }
1336
1337            Device (USB0)
1338            {
1339                Name (_ADR, 0x00120000)
1340                Name (_PRW, Package (0x02)
1341                {
1342                    0x0B,
1343                    0x03
1344                })
1345                Method (SS3D, 0, NotSerialized)
1346                {
1347                    If (LEqual (OSFL, 0x02))
1348                    {
1349                        Return (0x02)
1350                    }
1351                    Else
1352                    {
1353                        Return (0x03)
1354                    }
1355                }
1356            }
1357
1358            Device (USB1)
1359            {
1360                Name (_ADR, 0x00120001)
1361                Name (_PRW, Package (0x02)
1362                {
1363                    0x0B,
1364                    0x03
1365                })
1366                Method (SS3D, 0, NotSerialized)
1367                {
1368                    If (LEqual (OSFL, 0x02))
1369                    {
1370                        Return (0x02)
1371                    }
1372                    Else
1373                    {
1374                        Return (0x03)
1375                    }
1376                }
1377            }
1378
1379            Device (USB2)
1380            {
1381                Name (_ADR, 0x00120002)
1382                Name (_PRW, Package (0x02)
1383                {
1384                    0x0B,
1385                    0x03
1386                })
1387                Method (SS3D, 0, NotSerialized)
1388                {
1389                    If (LEqual (OSFL, 0x02))
1390                    {
1391                        Return (0x02)
1392                    }
1393                    Else
1394                    {
1395                        Return (0x03)
1396                    }
1397                }
1398            }
1399
1400            Device (USB3)
1401            {
1402                Name (_ADR, 0x00130000)
1403                Name (_PRW, Package (0x02)
1404                {
1405                    0x0B,
1406                    0x03
1407                })
1408                Method (SS3D, 0, NotSerialized)
1409                {
1410                    If (LEqual (OSFL, 0x02))
1411                    {
1412                        Return (0x02)
1413                    }
1414                    Else
1415                    {
1416                        Return (0x03)
1417                    }
1418                }
1419            }
1420
1421            Device (USB4)
1422            {
1423                Name (_ADR, 0x00130001)
1424                Name (_PRW, Package (0x02)
1425                {
1426                    0x0B,
1427                    0x03
1428                })
1429                Method (SS3D, 0, NotSerialized)
1430                {
1431                    If (LEqual (OSFL, 0x02))
1432                    {
1433                        Return (0x02)
1434                    }
1435                    Else
1436                    {
1437                        Return (0x03)
1438                    }
1439                }
1440            }
1441
1442            Device (USB5)
1443            {
1444                Name (_ADR, 0x00130002)
1445                Name (_PRW, Package (0x02)
1446                {
1447                    0x0B,
1448                    0x03
1449                })
1450                Method (SS3D, 0, NotSerialized)
1451                {
1452                    If (LEqual (OSFL, 0x02))
1453                    {
1454                        Return (0x02)
1455                    }
1456                    Else
1457                    {
1458                        Return (0x03)
1459                    }
1460                }
1461            }
1462
1463            Device (USB6)
1464            {
1465                Name (_ADR, 0x00140005)
1466                Name (_PRW, Package (0x02)
1467                {
1468                    0x0B,
1469                    0x03
1470                })
1471                Method (SS3D, 0, NotSerialized)
1472                {
1473                    If (LEqual (OSFL, 0x02))
1474                    {
1475                        Return (0x02)
1476                    }
1477                    Else
1478                    {
1479                        Return (0x03)
1480                    }
1481                }
1482            }
1483
1484            Device (SBAZ)
1485            {
1486                Name (_ADR, 0x00140002)
1487                OperationRegion (PCI, PCI_Config, 0x00, 0x0100)
1488                Field (PCI, AnyAcc, NoLock, Preserve)
1489                {
1490                            Offset (0x42),
1491                    DNSP,   1,
1492                    DNSO,   1,
1493                    ENSR,   1
1494                }
1495
1496                Name (_PRW, Package (0x02)
1497                {
1498                    0x1B,
1499                    0x04
1500                })
1501            }
1502
1503            Device (SATA)
1504            {
1505                Name (_ADR, 0x00110000)
1506                OperationRegion (SACS, PCI_Config, 0x00, 0x40)
1507                Field (SACS, AnyAcc, NoLock, Preserve)
1508                {
1509                            Offset (0x24),
1510                    STB5,   32
1511                }
1512
1513                Name (SPTM, Buffer (0x14)
1514                {
1515                    /* 0000 */    0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,
1516                    /* 0008 */    0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,
1517                    /* 0010 */    0x1F, 0x00, 0x00, 0x00
1518                })
1519                Device (PRID)
1520                {
1521                    Name (_ADR, 0x00)
1522                    Method (_GTM, 0, NotSerialized)
1523                    {
1524                        Return (SPTM)
1525                    }
1526
1527                    Method (_STM, 3, NotSerialized)
1528                    {
1529                    }
1530
1531                    Name (PRIS, 0x00)
1532                    Method (_PS0, 0, NotSerialized)
1533                    {
1534                        OperationRegion (BAR, SystemMemory, STB5, 0x0400)
1535                        Field (BAR, AnyAcc, NoLock, Preserve)
1536                        {
1537                                    Offset (0x120),
1538                                ,   7,
1539                            PMBY,   1,
1540                                    Offset (0x128),
1541                            PMS0,   4,
1542                                    Offset (0x129),
1543                            PMS1,   4,
1544                                    Offset (0x220),
1545                                ,   7,
1546                            PSBY,   1,
1547                                    Offset (0x228),
1548                            PSS0,   4,
1549                                    Offset (0x229),
1550                            PSS1,   4,
1551                                    Offset (0x2A0),
1552                                ,   7
1553                        }
1554
1555                        If (LOr (LEqual (OSTY, 0x06), LEqual (OSTY, 0x04)))
1556                        {
1557                            If (PMS1)
1558                            {
1559                                Store (0x32, Local0)
1560                                While (LAnd (LEqual (PMBY, 0x01), Local0))
1561                                {
1562                                    Sleep (0xFA)
1563                                    Decrement (Local0)
1564                                }
1565                            }
1566
1567                            If (PSS1)
1568                            {
1569                                Store (0x32, Local0)
1570                                While (LAnd (LEqual (PSBY, 0x01), Local0))
1571                                {
1572                                    Sleep (0xFA)
1573                                    Decrement (Local0)
1574                                }
1575                            }
1576                        }
1577
1578                        Store (0x00, PRIS)
1579                    }
1580
1581                    Method (_PS3, 0, NotSerialized)
1582                    {
1583                        Store (0x03, PRIS)
1584                    }
1585
1586                    Method (_PSC, 0, NotSerialized)
1587                    {
1588                        Return (PRIS)
1589                    }
1590
1591                    Device (P_D0)
1592                    {
1593                        Name (_ADR, 0x00)
1594                        Method (_STA, 0, NotSerialized)
1595                        {
1596                            OperationRegion (BAR, SystemMemory, STB5, 0x0400)
1597                            Field (BAR, AnyAcc, NoLock, Preserve)
1598                            {
1599                                        Offset (0x128),
1600                                PMS0,   4,
1601                                        Offset (0x129),
1602                                PMS1,   4
1603                            }
1604
1605                            If (Not (LEqual (PMS1, 0x00)))
1606                            {
1607                                Return (0x0F)
1608                            }
1609                            Else
1610                            {
1611                                Return (0x00)
1612                            }
1613                        }
1614
1615                        Name (S12P, 0x00)
1616                        Method (_PS0, 0, NotSerialized)
1617                        {
1618                            OperationRegion (BAR, SystemMemory, STB5, 0x0400)
1619                            Field (BAR, AnyAcc, NoLock, Preserve)
1620                            {
1621                                        Offset (0x120),
1622                                    ,   7,
1623                                PMBY,   1
1624                            }
1625
1626                            Store (0x32, Local0)
1627                            While (LAnd (LEqual (PMBY, 0x01), Local0))
1628                            {
1629                                Sleep (0xFA)
1630                                Decrement (Local0)
1631                            }
1632
1633                            Store (0x00, S12P)
1634                        }
1635
1636                        Method (_PS3, 0, NotSerialized)
1637                        {
1638                            Store (0x03, S12P)
1639                        }
1640
1641                        Method (_PSC, 0, NotSerialized)
1642                        {
1643                            Return (S12P)
1644                        }
1645                    }
1646
1647                    Device (P_D1)
1648                    {
1649                        Name (_ADR, 0x01)
1650                        Method (_STA, 0, NotSerialized)
1651                        {
1652                            OperationRegion (BAR, SystemMemory, STB5, 0x0400)
1653                            Field (BAR, AnyAcc, NoLock, Preserve)
1654                            {
1655                                        Offset (0x228),
1656                                PSS0,   4,
1657                                        Offset (0x229),
1658                                PSS1,   4
1659                            }
1660
1661                            If (Not (LEqual (PSS1, 0x00)))
1662                            {
1663                                Return (0x0F)
1664                            }
1665                            Else
1666                            {
1667                                Return (0x00)
1668                            }
1669                        }
1670
1671                        Name (S12P, 0x00)
1672                        Method (_PS0, 0, NotSerialized)
1673                        {
1674                            OperationRegion (BAR, SystemMemory, STB5, 0x0400)
1675                            Field (BAR, AnyAcc, NoLock, Preserve)
1676                            {
1677                                        Offset (0x220),
1678                                    ,   7,
1679                                PSBY,   1
1680                            }
1681
1682                            Store (0x32, Local0)
1683                            While (LAnd (LEqual (PSBY, 0x01), Local0))
1684                            {
1685                                Sleep (0xFA)
1686                                Decrement (Local0)
1687                            }
1688
1689                            Store (0x00, S12P)
1690                        }
1691
1692                        Method (_PS3, 0, NotSerialized)
1693                        {
1694                            Store (0x03, S12P)
1695                        }
1696
1697                        Method (_PSC, 0, NotSerialized)
1698                        {
1699                            Return (S12P)
1700                        }
1701                    }
1702                }
1703
1704                Device (SECD)
1705                {
1706                    Name (_ADR, 0x01)
1707                    Method (_GTM, 0, NotSerialized)
1708                    {
1709                        Return (SPTM)
1710                    }
1711
1712                    Method (_STM, 3, NotSerialized)
1713                    {
1714                    }
1715
1716                    Name (SECS, 0x00)
1717                    Method (_PS0, 0, NotSerialized)
1718                    {
1719                        OperationRegion (BAR, SystemMemory, STB5, 0x0400)
1720                        Field (BAR, AnyAcc, NoLock, Preserve)
1721                        {
1722                                    Offset (0x1A0),
1723                                ,   7,
1724                            SMBY,   1,
1725                                    Offset (0x1A8),
1726                            SMS0,   4,
1727                                    Offset (0x1A9),
1728                            SMS1,   4,
1729                                    Offset (0x2A0),
1730                                ,   7,
1731                            SSBY,   1,
1732                                    Offset (0x2A8),
1733                            SSS0,   4,
1734                                    Offset (0x2A9),
1735                            SSS1,   4,
1736                                    Offset (0x2AC)
1737                        }
1738
1739                        If (LOr (LEqual (OSTY, 0x06), LEqual (OSTY, 0x04)))
1740                        {
1741                            If (SMS1)
1742                            {
1743                                Store (0x32, Local0)
1744                                While (LAnd (LEqual (SMBY, 0x01), Local0))
1745                                {
1746                                    Sleep (0xFA)
1747                                    Decrement (Local0)
1748                                }
1749                            }
1750
1751                            If (SSS1)
1752                            {
1753                                Store (0x32, Local0)
1754                                While (LAnd (LEqual (SSBY, 0x01), Local0))
1755                                {
1756                                    Sleep (0xFA)
1757                                    Decrement (Local0)
1758                                }
1759                            }
1760                        }
1761
1762                        Store (0x00, SECS)
1763                    }
1764
1765                    Method (_PS3, 0, NotSerialized)
1766                    {
1767                        Store (0x03, SECS)
1768                    }
1769
1770                    Method (_PSC, 0, NotSerialized)
1771                    {
1772                        Return (SECS)
1773                    }
1774
1775                    Device (S_D0)
1776                    {
1777                        Name (_ADR, 0x00)
1778                        Method (_STA, 0, NotSerialized)
1779                        {
1780                            OperationRegion (BAR, SystemMemory, STB5, 0x0400)
1781                            Field (BAR, AnyAcc, NoLock, Preserve)
1782                            {
1783                                        Offset (0x1A8),
1784                                SMS0,   4,
1785                                        Offset (0x1A9),
1786                                SMS1,   4
1787                            }
1788
1789                            If (Not (LEqual (SMS1, 0x00)))
1790                            {
1791                                Return (0x0F)
1792                            }
1793                            Else
1794                            {
1795                                Return (0x00)
1796                            }
1797                        }
1798
1799                        Name (S12P, 0x00)
1800                        Method (_PS0, 0, NotSerialized)
1801                        {
1802                            OperationRegion (BAR, SystemMemory, STB5, 0x1000)
1803                            Field (BAR, AnyAcc, NoLock, Preserve)
1804                            {
1805                                        Offset (0x1A0),
1806                                    ,   7,
1807                                SMBY,   1
1808                            }
1809
1810                            Store (0x32, Local0)
1811                            While (LAnd (LEqual (SMBY, 0x01), Local0))
1812                            {
1813                                Sleep (0xFA)
1814                                Decrement (Local0)
1815                            }
1816
1817                            Store (0x00, S12P)
1818                        }
1819
1820                        Method (_PS3, 0, NotSerialized)
1821                        {
1822                            Store (0x03, S12P)
1823                        }
1824
1825                        Method (_PSC, 0, NotSerialized)
1826                        {
1827                            Return (S12P)
1828                        }
1829                    }
1830
1831                    Device (S_D1)
1832                    {
1833                        Name (_ADR, 0x01)
1834                        Method (_STA, 0, NotSerialized)
1835                        {
1836                            OperationRegion (BAR, SystemMemory, STB5, 0x0400)
1837                            Field (BAR, AnyAcc, NoLock, Preserve)
1838                            {
1839                                        Offset (0x2A8),
1840                                SSS0,   4,
1841                                        Offset (0x2A9),
1842                                SSS1,   4
1843                            }
1844
1845                            If (Not (LEqual (SSS1, 0x00)))
1846                            {
1847                                Return (0x0F)
1848                            }
1849                            Else
1850                            {
1851                                Return (0x00)
1852                            }
1853                        }
1854
1855                        Name (S12P, 0x00)
1856                        Method (_PS0, 0, NotSerialized)
1857                        {
1858                            OperationRegion (BAR, SystemMemory, STB5, 0x0400)
1859                            Field (BAR, AnyAcc, NoLock, Preserve)
1860                            {
1861                                        Offset (0x2A0),
1862                                    ,   7,
1863                                SSBY,   1
1864                            }
1865
1866                            Store (0x32, Local0)
1867                            While (LAnd (LEqual (SSBY, 0x01), Local0))
1868                            {
1869                                Sleep (0xFA)
1870                                Decrement (Local0)
1871                            }
1872
1873                            Store (0x00, S12P)
1874                        }
1875
1876                        Method (_PS3, 0, NotSerialized)
1877                        {
1878                            Store (0x03, S12P)
1879                        }
1880
1881                        Method (_PSC, 0, NotSerialized)
1882                        {
1883                            Return (S12P)
1884                        }
1885                    }
1886                }
1887            }
1888
1889            Device (LPC0)
1890            {
1891                Name (_ADR, 0x00140003)
1892                Device (PMIO)
1893                {
1894                    Name (_HID, EisaId ("PNP0C02"))
1895                    Name (_UID, 0x03)
1896                    Method (_CRS, 0, NotSerialized)
1897                    {
1898                        Name (BUF0, ResourceTemplate ()
1899                        {
1900                            IO (Decode16,
1901                                0x4100,             // Range Minimum
1902                                0x4100,             // Range Maximum
1903                                0x01,               // Alignment
1904                                0x20,               // Length
1905                                )
1906                            IO (Decode16,
1907                                0x0228,             // Range Minimum
1908                                0x0228,             // Range Maximum
1909                                0x01,               // Alignment
1910                                0x08,               // Length
1911                                )
1912                            IO (Decode16,
1913                                0x040B,             // Range Minimum
1914                                0x040B,             // Range Maximum
1915                                0x01,               // Alignment
1916                                0x01,               // Length
1917                                )
1918                            IO (Decode16,
1919                                0x04D6,             // Range Minimum
1920                                0x04D6,             // Range Maximum
1921                                0x01,               // Alignment
1922                                0x01,               // Length
1923                                )
1924                            IO (Decode16,
1925                                0x0C00,             // Range Minimum
1926                                0x0C00,             // Range Maximum
1927                                0x01,               // Alignment
1928                                0x02,               // Length
1929                                )
1930                            IO (Decode16,
1931                                0x0C14,             // Range Minimum
1932                                0x0C14,             // Range Maximum
1933                                0x01,               // Alignment
1934                                0x01,               // Length
1935                                )
1936                            IO (Decode16,
1937                                0x0C50,             // Range Minimum
1938                                0x0C50,             // Range Maximum
1939                                0x01,               // Alignment
1940                                0x03,               // Length
1941                                )
1942                            IO (Decode16,
1943                                0x0C6C,             // Range Minimum
1944                                0x0C6C,             // Range Maximum
1945                                0x01,               // Alignment
1946                                0x02,               // Length
1947                                )
1948                            IO (Decode16,
1949                                0x0C6F,             // Range Minimum
1950                                0x0C6F,             // Range Maximum
1951                                0x01,               // Alignment
1952                                0x01,               // Length
1953                                )
1954                            IO (Decode16,
1955                                0x0CD0,             // Range Minimum
1956                                0x0CD0,             // Range Maximum
1957                                0x01,               // Alignment
1958                                0x02,               // Length
1959                                )
1960                            IO (Decode16,
1961                                0x0CD2,             // Range Minimum
1962                                0x0CD2,             // Range Maximum
1963                                0x01,               // Alignment
1964                                0x02,               // Length
1965                                )
1966                            IO (Decode16,
1967                                0x0CD4,             // Range Minimum
1968                                0x0CD4,             // Range Maximum
1969                                0x01,               // Alignment
1970                                0x0C,               // Length
1971                                )
1972                            IO (Decode16,
1973                                0x4000,             // Range Minimum
1974                                0x4000,             // Range Maximum
1975                                0x01,               // Alignment
1976                                0xFF,               // Length
1977                                )
1978                            IO (Decode16,
1979                                0x4210,             // Range Minimum
1980                                0x4210,             // Range Maximum
1981                                0x01,               // Alignment
1982                                0x08,               // Length
1983                                )
1984                            IO (Decode16,
1985                                0x0B00,             // Range Minimum
1986                                0x0B00,             // Range Maximum
1987                                0x01,               // Alignment
1988                                0x10,               // Length
1989                                )
1990                            IO (Decode16,
1991                                0x0B10,             // Range Minimum
1992                                0x0B10,             // Range Maximum
1993                                0x01,               // Alignment
1994                                0x10,               // Length
1995                                )
1996                            IO (Decode16,
1997                                0x0B20,             // Range Minimum
1998                                0x0B20,             // Range Maximum
1999                                0x01,               // Alignment
2000                                0x20,               // Length
2001                                )
2002                            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
2003                                0x00000000,         // Granularity
2004                                0xE0000000,         // Range Minimum
2005                                0xE0000000,         // Range Maximum
2006                                0x00000000,         // Translation Offset
2007                                0x00000000,         // Length
2008                                ,, _Y01, AddressRangeMemory, TypeStatic)
2009                            DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
2010                                0x00000000,         // Granularity
2011                                0xFEE00400,         // Range Minimum
2012                                0xFEE00FFF,         // Range Maximum
2013                                0x00000000,         // Translation Offset
2014                                0x00000BFF,         // Length
2015                                ,, , AddressRangeMemory, TypeStatic)
2016                        })
2017                        CreateDWordField (BUF0, \_SB.PCI0.LPC0.PMIO._CRS._Y01._MIN, BARX)
2018                        CreateDWordField (BUF0, \_SB.PCI0.LPC0.PMIO._CRS._Y01._LEN, GALN)
2019                        CreateDWordField (BUF0, \_SB.PCI0.LPC0.PMIO._CRS._Y01._MAX, GAMX)
2020                        Store (0x1000, GALN)
2021                        Store (\_SB.PCI0.MMIO, Local0)
2022                        And (Local0, 0xFFFFFFF0, BARX)
2023                        Add (Local0, GALN, GAMX)
2024                        Subtract (GAMX, 0x01, GAMX)
2025                        Return (BUF0)
2026                    }
2027                }
2028
2029                OperationRegion (PIRQ, SystemIO, 0x0C00, 0x02)
2030                Field (PIRQ, ByteAcc, NoLock, Preserve)
2031                {
2032                    PIID,   8,
2033                    PIDA,   8
2034                }
2035
2036                Name (IPRS, ResourceTemplate ()
2037                {
2038                    IRQ (Level, ActiveLow, Shared, )
2039                        {3,4,5,6,7,10,11}
2040                })
2041                IndexField (PIID, PIDA, ByteAcc, NoLock, Preserve)
2042                {
2043                    PIRA,   8,
2044                    PIRB,   8,
2045                    PIRC,   8,
2046                    PIRD,   8,
2047                    PIRS,   8,
2048                            Offset (0x09),
2049                    PIRE,   8,
2050                    PIRF,   8,
2051                    PIR0,   8,
2052                    PIR1,   8
2053                }
2054
2055                Method (DSPI, 0, NotSerialized)
2056                {
2057                    Store (0x00, PIRA)
2058                    Store (0x00, PIRB)
2059                    Store (0x00, PIRC)
2060                    Store (0x00, PIRD)
2061                    Store (0x00, PIRE)
2062                    Store (0x00, PIRF)
2063                    Store (0x00, PIR0)
2064                    Store (0x00, PIR1)
2065                }
2066
2067                Device (LNKA)
2068                {
2069                    Name (_HID, EisaId ("PNP0C0F"))
2070                    Name (_UID, 0x01)
2071                    Method (_STA, 0, NotSerialized)
2072                    {
2073                        If (PIRA)
2074                        {
2075                            Return (0x0B)
2076                        }
2077                        Else
2078                        {
2079                            Return (0x09)
2080                        }
2081                    }
2082
2083                    Method (_PRS, 0, NotSerialized)
2084                    {
2085                        Return (IPRS)
2086                    }
2087
2088                    Method (_DIS, 0, NotSerialized)
2089                    {
2090                        Store (0x00, PIRA)
2091                    }
2092
2093                    Method (_CRS, 0, NotSerialized)
2094                    {
2095                        Store (IPRS, Local0)
2096                        CreateWordField (Local0, 0x01, IRQ0)
2097                        ShiftLeft (0x01, PIRA, IRQ0)
2098                        Return (Local0)
2099                    }
2100
2101                    Method (_SRS, 1, NotSerialized)
2102                    {
2103                        CreateWordField (Arg0, 0x01, IRQ0)
2104                        FindSetRightBit (IRQ0, Local0)
2105                        Decrement (Local0)
2106                        Store (Local0, PIRA)
2107                    }
2108                }
2109
2110                Device (LNKB)
2111                {
2112                    Name (_HID, EisaId ("PNP0C0F"))
2113                    Name (_UID, 0x02)
2114                    Method (_STA, 0, NotSerialized)
2115                    {
2116                        If (PIRB)
2117                        {
2118                            Return (0x0B)
2119                        }
2120                        Else
2121                        {
2122                            Return (0x09)
2123                        }
2124                    }
2125
2126                    Method (_PRS, 0, NotSerialized)
2127                    {
2128                        Return (IPRS)
2129                    }
2130
2131                    Method (_DIS, 0, NotSerialized)
2132                    {
2133                        Store (0x00, PIRB)
2134                    }
2135
2136                    Method (_CRS, 0, NotSerialized)
2137                    {
2138                        Store (IPRS, Local0)
2139                        CreateWordField (Local0, 0x01, IRQ0)
2140                        ShiftLeft (0x01, PIRB, IRQ0)
2141                        Return (Local0)
2142                    }
2143
2144                    Method (_SRS, 1, NotSerialized)
2145                    {
2146                        CreateWordField (Arg0, 0x01, IRQ0)
2147                        FindSetRightBit (IRQ0, Local0)
2148                        Decrement (Local0)
2149                        Store (Local0, PIRB)
2150                    }
2151                }
2152
2153                Device (LNKC)
2154                {
2155                    Name (_HID, EisaId ("PNP0C0F"))
2156                    Name (_UID, 0x03)
2157                    Method (_STA, 0, NotSerialized)
2158                    {
2159                        If (PIRC)
2160                        {
2161                            Return (0x0B)
2162                        }
2163                        Else
2164                        {
2165                            Return (0x09)
2166                        }
2167                    }
2168
2169                    Method (_PRS, 0, NotSerialized)
2170                    {
2171                        Return (IPRS)
2172                    }
2173
2174                    Method (_DIS, 0, NotSerialized)
2175                    {
2176                        Store (0x00, PIRC)
2177                    }
2178
2179                    Method (_CRS, 0, NotSerialized)
2180                    {
2181                        Store (IPRS, Local0)
2182                        CreateWordField (Local0, 0x01, IRQ0)
2183                        ShiftLeft (0x01, PIRC, IRQ0)
2184                        Return (Local0)
2185                    }
2186
2187                    Method (_SRS, 1, NotSerialized)
2188                    {
2189                        CreateWordField (Arg0, 0x01, IRQ0)
2190                        FindSetRightBit (IRQ0, Local0)
2191                        Decrement (Local0)
2192                        Store (Local0, PIRC)
2193                    }
2194                }
2195
2196                Device (LNKD)
2197                {
2198                    Name (_HID, EisaId ("PNP0C0F"))
2199                    Name (_UID, 0x04)
2200                    Method (_STA, 0, NotSerialized)
2201                    {
2202                        If (PIRD)
2203                        {
2204                            Return (0x0B)
2205                        }
2206                        Else
2207                        {
2208                            Return (0x09)
2209                        }
2210                    }
2211
2212                    Method (_PRS, 0, NotSerialized)
2213                    {
2214                        Return (IPRS)
2215                    }
2216
2217                    Method (_DIS, 0, NotSerialized)
2218                    {
2219                        Store (0x00, PIRD)
2220                    }
2221
2222                    Method (_CRS, 0, NotSerialized)
2223                    {
2224                        Store (IPRS, Local0)
2225                        CreateWordField (Local0, 0x01, IRQ0)
2226                        ShiftLeft (0x01, PIRD, IRQ0)
2227                        Return (Local0)
2228                    }
2229
2230                    Method (_SRS, 1, NotSerialized)
2231                    {
2232                        CreateWordField (Arg0, 0x01, IRQ0)
2233                        FindSetRightBit (IRQ0, Local0)
2234                        Decrement (Local0)
2235                        Store (Local0, PIRD)
2236                    }
2237                }
2238
2239                Device (LNKE)
2240                {
2241                    Name (_HID, EisaId ("PNP0C0F"))
2242                    Name (_UID, 0x05)
2243                    Method (_STA, 0, NotSerialized)
2244                    {
2245                        If (PIRE)
2246                        {
2247                            Return (0x0B)
2248                        }
2249                        Else
2250                        {
2251                            Return (0x09)
2252                        }
2253                    }
2254
2255                    Method (_PRS, 0, NotSerialized)
2256                    {
2257                        Return (IPRS)
2258                    }
2259
2260                    Method (_DIS, 0, NotSerialized)
2261                    {
2262                        Store (0x00, PIRE)
2263                    }
2264
2265                    Method (_CRS, 0, NotSerialized)
2266                    {
2267                        Store (IPRS, Local0)
2268                        CreateWordField (Local0, 0x01, IRQ0)
2269                        ShiftLeft (0x01, PIRE, IRQ0)
2270                        Return (Local0)
2271                    }
2272
2273                    Method (_SRS, 1, NotSerialized)
2274                    {
2275                        CreateWordField (Arg0, 0x01, IRQ0)
2276                        FindSetRightBit (IRQ0, Local0)
2277                        Decrement (Local0)
2278                        Store (Local0, PIRE)
2279                    }
2280                }
2281
2282                Device (LNKF)
2283                {
2284                    Name (_HID, EisaId ("PNP0C0F"))
2285                    Name (_UID, 0x06)
2286                    Method (_STA, 0, NotSerialized)
2287                    {
2288                        If (PIRF)
2289                        {
2290                            Return (0x0B)
2291                        }
2292                        Else
2293                        {
2294                            Return (0x09)
2295                        }
2296                    }
2297
2298                    Method (_PRS, 0, NotSerialized)
2299                    {
2300                        Return (IPRS)
2301                    }
2302
2303                    Method (_DIS, 0, NotSerialized)
2304                    {
2305                        Store (0x00, PIRF)
2306                    }
2307
2308                    Method (_CRS, 0, NotSerialized)
2309                    {
2310                        Store (IPRS, Local0)
2311                        CreateWordField (Local0, 0x01, IRQ0)
2312                        ShiftLeft (0x01, PIRF, IRQ0)
2313                        Return (Local0)
2314                    }
2315
2316                    Method (_SRS, 1, NotSerialized)
2317                    {
2318                        CreateWordField (Arg0, 0x01, IRQ0)
2319                        FindSetRightBit (IRQ0, Local0)
2320                        Decrement (Local0)
2321                        Store (Local0, PIRF)
2322                    }
2323                }
2324
2325                Device (LNK0)
2326                {
2327                    Name (_HID, EisaId ("PNP0C0F"))
2328                    Name (_UID, 0x07)
2329                    Method (_STA, 0, NotSerialized)
2330                    {
2331                        If (PIR0)
2332                        {
2333                            Return (0x0B)
2334                        }
2335                        Else
2336                        {
2337                            Return (0x09)
2338                        }
2339                    }
2340
2341                    Method (_PRS, 0, NotSerialized)
2342                    {
2343                        Return (IPRS)
2344                    }
2345
2346                    Method (_DIS, 0, NotSerialized)
2347                    {
2348                        Store (0x00, PIR0)
2349                    }
2350
2351                    Method (_CRS, 0, NotSerialized)
2352                    {
2353                        Store (IPRS, Local0)
2354                        CreateWordField (Local0, 0x01, IRQ0)
2355                        ShiftLeft (0x01, PIR0, IRQ0)
2356                        Return (Local0)
2357                    }
2358
2359                    Method (_SRS, 1, NotSerialized)
2360                    {
2361                        CreateWordField (Arg0, 0x01, IRQ0)
2362                        FindSetRightBit (IRQ0, Local0)
2363                        Decrement (Local0)
2364                        Store (Local0, PIR0)
2365                    }
2366                }
2367
2368                Device (LNK1)
2369                {
2370                    Name (_HID, EisaId ("PNP0C0F"))
2371                    Name (_UID, 0x08)
2372                    Method (_STA, 0, NotSerialized)
2373                    {
2374                        If (PIR1)
2375                        {
2376                            Return (0x0B)
2377                        }
2378                        Else
2379                        {
2380                            Return (0x09)
2381                        }
2382                    }
2383
2384                    Method (_PRS, 0, NotSerialized)
2385                    {
2386                        Return (IPRS)
2387                    }
2388
2389                    Method (_DIS, 0, NotSerialized)
2390                    {
2391                        Store (0x00, PIR1)
2392                    }
2393
2394                    Method (_CRS, 0, NotSerialized)
2395                    {
2396                        Store (IPRS, Local0)
2397                        CreateWordField (Local0, 0x01, IRQ0)
2398                        ShiftLeft (0x01, PIR1, IRQ0)
2399                        Return (Local0)
2400                    }
2401
2402                    Method (_SRS, 1, NotSerialized)
2403                    {
2404                        CreateWordField (Arg0, 0x01, IRQ0)
2405                        FindSetRightBit (IRQ0, Local0)
2406                        Decrement (Local0)
2407                        Store (Local0, PIR1)
2408                    }
2409                }
2410
2411                Device (PIC)
2412                {
2413                    Name (_HID, EisaId ("PNP0000"))
2414                    Name (_CRS, ResourceTemplate ()
2415                    {
2416                        IO (Decode16,
2417                            0x0020,             // Range Minimum
2418                            0x0020,             // Range Maximum
2419                            0x01,               // Alignment
2420                            0x02,               // Length
2421                            )
2422                        IO (Decode16,
2423                            0x00A0,             // Range Minimum
2424                            0x00A0,             // Range Maximum
2425                            0x01,               // Alignment
2426                            0x02,               // Length
2427                            )
2428                        IRQNoFlags ()
2429                            {2}
2430                    })
2431                }
2432
2433                Device (DMA1)
2434                {
2435                    Name (_HID, EisaId ("PNP0200"))
2436                    Name (_CRS, ResourceTemplate ()
2437                    {
2438                        DMA (Compatibility, BusMaster, Transfer8, )
2439                            {4}
2440                        IO (Decode16,
2441                            0x0000,             // Range Minimum
2442                            0x0000,             // Range Maximum
2443                            0x01,               // Alignment
2444                            0x10,               // Length
2445                            )
2446                        IO (Decode16,
2447                            0x0080,             // Range Minimum
2448                            0x0080,             // Range Maximum
2449                            0x01,               // Alignment
2450                            0x11,               // Length
2451                            )
2452                        IO (Decode16,
2453                            0x0094,             // Range Minimum
2454                            0x0094,             // Range Maximum
2455                            0x01,               // Alignment
2456                            0x0C,               // Length
2457                            )
2458                        IO (Decode16,
2459                            0x00C0,             // Range Minimum
2460                            0x00C0,             // Range Maximum
2461                            0x01,               // Alignment
2462                            0x20,               // Length
2463                            )
2464                    })
2465                }
2466
2467                Device (TMR)
2468                {
2469                    Name (_HID, EisaId ("PNP0100"))
2470                    Name (ATT5, ResourceTemplate ()
2471                    {
2472                        IO (Decode16,
2473                            0x0040,             // Range Minimum
2474                            0x0040,             // Range Maximum
2475                            0x00,               // Alignment
2476                            0x04,               // Length
2477                            )
2478                        IRQNoFlags ()
2479                            {0}
2480                    })
2481                    Name (ATT6, ResourceTemplate ()
2482                    {
2483                        IO (Decode16,
2484                            0x0040,             // Range Minimum
2485                            0x0040,             // Range Maximum
2486                            0x00,               // Alignment
2487                            0x04,               // Length
2488                            )
2489                    })
2490                    Method (_CRS, 0, NotSerialized)
2491                    {
2492                        If (LGreaterEqual (OSFX, 0x03))
2493                        {
2494                            If (HPTF)
2495                            {
2496                                Return (ATT6)
2497                            }
2498                            Else
2499                            {
2500                                Return (ATT5)
2501                            }
2502                        }
2503                        Else
2504                        {
2505                            Return (ATT5)
2506                        }
2507                    }
2508                }
2509
2510                Device (HPET)
2511                {
2512                    Name (_HID, EisaId ("PNP0103"))
2513                    Name (ATT3, ResourceTemplate ()
2514                    {
2515                        IRQNoFlags ()
2516                            {0}
2517                        IRQNoFlags ()
2518                            {8}
2519                        Memory32Fixed (ReadWrite,
2520                            0xFED00000,         // Address Base
2521                            0x00000400,         // Address Length
2522                            )
2523                    })
2524                    Name (ATT4, ResourceTemplate ()
2525                    {
2526                    })
2527                    Method (_STA, 0, NotSerialized)
2528                    {
2529                        If (LGreaterEqual (OSFX, 0x03))
2530                        {
2531                            If (HPTF)
2532                            {
2533                                Return (0x0F)
2534                            }
2535                            Else
2536                            {
2537                                Return (0x00)
2538                            }
2539                        }
2540                        Else
2541                        {
2542                            Return (0x00)
2543                        }
2544                    }
2545
2546                    Method (_CRS, 0, NotSerialized)
2547                    {
2548                        If (LGreaterEqual (OSFX, 0x03))
2549                        {
2550                            If (HPTF)
2551                            {
2552                                Return (ATT3)
2553                            }
2554                            Else
2555                            {
2556                                Return (ATT4)
2557                            }
2558                        }
2559                        Else
2560                        {
2561                            Return (ATT4)
2562                        }
2563                    }
2564                }
2565
2566                Device (RTC)
2567                {
2568                    Name (_HID, EisaId ("PNP0B00"))
2569                    Name (ATT0, ResourceTemplate ()
2570                    {
2571                        IO (Decode16,
2572                            0x0070,             // Range Minimum
2573                            0x0070,             // Range Maximum
2574                            0x00,               // Alignment
2575                            0x04,               // Length
2576                            )
2577                        IRQNoFlags ()
2578                            {8}
2579                    })
2580                    Name (ATT1, ResourceTemplate ()
2581                    {
2582                        IO (Decode16,
2583                            0x0070,             // Range Minimum
2584                            0x0070,             // Range Maximum
2585                            0x00,               // Alignment
2586                            0x04,               // Length
2587                            )
2588                    })
2589                    Method (_CRS, 0, NotSerialized)
2590                    {
2591                        If (LGreaterEqual (OSFX, 0x03))
2592                        {
2593                            If (HPTF)
2594                            {
2595                                Return (ATT1)
2596                            }
2597                            Else
2598                            {
2599                                Return (ATT0)
2600                            }
2601                        }
2602                        Else
2603                        {
2604                            Return (ATT0)
2605                        }
2606                    }
2607                }
2608
2609                Device (SPKR)
2610                {
2611                    Name (_HID, EisaId ("PNP0800"))
2612                    Name (_CRS, ResourceTemplate ()
2613                    {
2614                        IO (Decode16,
2615                            0x0061,             // Range Minimum
2616                            0x0061,             // Range Maximum
2617                            0x01,               // Alignment
2618                            0x01,               // Length
2619                            )
2620                    })
2621                }
2622
2623                Device (COPR)
2624                {
2625                    Name (_HID, EisaId ("PNP0C04"))
2626                    Name (_CRS, ResourceTemplate ()
2627                    {
2628                        IO (Decode16,
2629                            0x00F0,             // Range Minimum
2630                            0x00F0,             // Range Maximum
2631                            0x01,               // Alignment
2632                            0x10,               // Length
2633                            )
2634                        IRQNoFlags ()
2635                            {13}
2636                    })
2637                }
2638            }
2639
2640            Device (P2P)
2641            {
2642                Name (_ADR, 0x00140004)
2643                Method (SS3D, 0, NotSerialized)
2644                {
2645                    If (LEqual (OSFL, 0x02))
2646                    {
2647                        Return (0x02)
2648                    }
2649                    Else
2650                    {
2651                        Return (0x03)
2652                    }
2653                }
2654
2655                Method (_PRW, 0, NotSerialized)
2656                {
2657                    Return (Package (0x02)
2658                    {
2659                        0x04,
2660                        0x05
2661                    })
2662                }
2663
2664                Name (PICM, Package (0x0C)
2665                {
2666                    Package (0x04)
2667                    {
2668                        0x0007FFFF,
2669                        0x00,
2670                        \_SB.PCI0.LPC0.LNKF,
2671                        0x00
2672                    },
2673
2674                    Package (0x04)
2675                    {
2676                        0x0007FFFF,
2677                        0x01,
2678                        \_SB.PCI0.LPC0.LNK0,
2679                        0x00
2680                    },
2681
2682                    Package (0x04)
2683                    {
2684                        0x0007FFFF,
2685                        0x02,
2686                        \_SB.PCI0.LPC0.LNK1,
2687                        0x00
2688                    },
2689
2690                    Package (0x04)
2691                    {
2692                        0x0007FFFF,
2693                        0x03,
2694                        \_SB.PCI0.LPC0.LNKE,
2695                        0x00
2696                    },
2697
2698                    Package (0x04)
2699                    {
2700                        0x0006FFFF,
2701                        0x00,
2702                        \_SB.PCI0.LPC0.LNKE,
2703                        0x00
2704                    },
2705
2706                    Package (0x04)
2707                    {
2708                        0x0006FFFF,
2709                        0x01,
2710                        \_SB.PCI0.LPC0.LNKF,
2711                        0x00
2712                    },
2713
2714                    Package (0x04)
2715                    {
2716                        0x0006FFFF,
2717                        0x02,
2718                        \_SB.PCI0.LPC0.LNK0,
2719                        0x00
2720                    },
2721
2722                    Package (0x04)
2723                    {
2724                        0x0006FFFF,
2725                        0x03,
2726                        \_SB.PCI0.LPC0.LNK1,
2727                        0x00
2728                    },
2729
2730                    Package (0x04)
2731                    {
2732                        0x000EFFFF,
2733                        0x00,
2734                        \_SB.PCI0.LPC0.LNK0,
2735                        0x00
2736                    },
2737
2738                    Package (0x04)
2739                    {
2740                        0x000EFFFF,
2741                        0x01,
2742                        \_SB.PCI0.LPC0.LNK0,
2743                        0x00
2744                    },
2745
2746                    Package (0x04)
2747                    {
2748                        0x000EFFFF,
2749                        0x02,
2750                        \_SB.PCI0.LPC0.LNK0,
2751                        0x00
2752                    },
2753
2754                    Package (0x04)
2755                    {
2756                        0x000EFFFF,
2757                        0x03,
2758                        \_SB.PCI0.LPC0.LNK0,
2759                        0x00
2760                    }
2761                })
2762                Name (APIC, Package (0x0C)
2763                {
2764                    Package (0x04)
2765                    {
2766                        0x0007FFFF,
2767                        0x00,
2768                        0x00,
2769                        0x15
2770                    },
2771
2772                    Package (0x04)
2773                    {
2774                        0x0007FFFF,
2775                        0x01,
2776                        0x00,
2777                        0x16
2778                    },
2779
2780                    Package (0x04)
2781                    {
2782                        0x0007FFFF,
2783                        0x02,
2784                        0x00,
2785                        0x17
2786                    },
2787
2788                    Package (0x04)
2789                    {
2790                        0x0007FFFF,
2791                        0x03,
2792                        0x00,
2793                        0x14
2794                    },
2795
2796                    Package (0x04)
2797                    {
2798                        0x0006FFFF,
2799                        0x00,
2800                        0x00,
2801                        0x14
2802                    },
2803
2804                    Package (0x04)
2805                    {
2806                        0x0006FFFF,
2807                        0x01,
2808                        0x00,
2809                        0x15
2810                    },
2811
2812                    Package (0x04)
2813                    {
2814                        0x0006FFFF,
2815                        0x02,
2816                        0x00,
2817                        0x16
2818                    },
2819
2820                    Package (0x04)
2821                    {
2822                        0x0006FFFF,
2823                        0x03,
2824                        0x00,
2825                        0x17
2826                    },
2827
2828                    Package (0x04)
2829                    {
2830                        0x000EFFFF,
2831                        0x00,
2832                        0x00,
2833                        0x16
2834                    },
2835
2836                    Package (0x04)
2837                    {
2838                        0x000EFFFF,
2839                        0x01,
2840                        0x00,
2841                        0x16
2842                    },
2843
2844                    Package (0x04)
2845                    {
2846                        0x000EFFFF,
2847                        0x02,
2848                        0x00,
2849                        0x16
2850                    },
2851
2852                    Package (0x04)
2853                    {
2854                        0x000EFFFF,
2855                        0x03,
2856                        0x00,
2857                        0x16
2858                    }
2859                })
2860                Method (_PRT, 0, NotSerialized)
2861                {
2862                    If (LNot (PICF))
2863                    {
2864                        Return (PICM)
2865                    }
2866                    Else
2867                    {
2868                        Return (APIC)
2869                    }
2870                }
2871            }
2872
2873            Device (IDE)
2874            {
2875                Name (_ADR, 0x00140001)
2876                Name (UDMT, Package (0x08)
2877                {
2878                    0x78,
2879                    0x5A,
2880                    0x3C,
2881                    0x2D,
2882                    0x1E,
2883                    0x14,
2884                    0x0F,
2885                    0x00
2886                })
2887                Name (PIOT, Package (0x06)
2888                {
2889                    0x0258,
2890                    0x0186,
2891                    0x010E,
2892                    0xB4,
2893                    0x78,
2894                    0x00
2895                })
2896                Name (PITR, Package (0x06)
2897                {
2898                    0x99,
2899                    0x47,
2900                    0x34,
2901                    0x22,
2902                    0x20,
2903                    0x99
2904                })
2905                Name (MDMT, Package (0x04)
2906                {
2907                    0x01E0,
2908                    0x96,
2909                    0x78,
2910                    0x00
2911                })
2912                Name (MDTR, Package (0x04)
2913                {
2914                    0x77,
2915                    0x21,
2916                    0x20,
2917                    0xFF
2918                })
2919                OperationRegion (IDE, PCI_Config, 0x40, 0x20)
2920                Field (IDE, AnyAcc, NoLock, Preserve)
2921                {
2922                    PPIT,   16,
2923                    SPIT,   16,
2924                    PMDT,   16,
2925                    SMDT,   16,
2926                    PPIC,   8,
2927                    SPIC,   8,
2928                    PPIM,   8,
2929                    SPIM,   8,
2930                            Offset (0x14),
2931                    PUDC,   2,
2932                    SUDC,   2,
2933                            Offset (0x16),
2934                    PUDM,   8,
2935                    SUDM,   8
2936                }
2937
2938                Method (GETT, 1, NotSerialized)
2939                {
2940                    Store (And (Arg0, 0x0F), Local0)
2941                    Store (ShiftRight (Arg0, 0x04), Local1)
2942                    Return (Multiply (0x1E, Add (Add (Local0, 0x01), Add (Local1,
2943                        0x01))))
2944                }
2945
2946                Method (GTM, 1, NotSerialized)
2947                {
2948                    CreateByteField (Arg0, 0x00, PIT1)
2949                    CreateByteField (Arg0, 0x01, PIT0)
2950                    CreateByteField (Arg0, 0x02, MDT1)
2951                    CreateByteField (Arg0, 0x03, MDT0)
2952                    CreateByteField (Arg0, 0x04, PICX)
2953                    CreateByteField (Arg0, 0x05, UDCX)
2954                    CreateByteField (Arg0, 0x06, UDMX)
2955                    Name (BUF, Buffer (0x14)
2956                    {
2957                        /* 0000 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
2958                        /* 0008 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
2959                        /* 0010 */    0x00, 0x00, 0x00, 0x00
2960                    })
2961                    CreateDWordField (BUF, 0x00, PIO0)
2962                    CreateDWordField (BUF, 0x04, DMA0)
2963                    CreateDWordField (BUF, 0x08, PIO1)
2964                    CreateDWordField (BUF, 0x0C, DMA1)
2965                    CreateDWordField (BUF, 0x10, FLAG)
2966                    If (And (PICX, 0x01))
2967                    {
2968                        Return (BUF)
2969                    }
2970
2971                    Store (GETT (PIT0), PIO0)
2972                    Store (GETT (PIT1), PIO1)
2973                    If (And (UDCX, 0x01))
2974                    {
2975                        Or (FLAG, 0x01, FLAG)
2976                        Store (DerefOf (Index (^UDMT, And (UDMX, 0x0F))), DMA0)
2977                    }
2978                    Else
2979                    {
2980                        Store (GETT (MDT0), DMA0)
2981                    }
2982
2983                    If (And (UDCX, 0x02))
2984                    {
2985                        Or (FLAG, 0x04, FLAG)
2986                        Store (DerefOf (Index (^UDMT, ShiftRight (UDMX, 0x04))), DMA1)
2987                    }
2988                    Else
2989                    {
2990                        Store (GETT (MDT1), DMA1)
2991                    }
2992
2993                    Or (FLAG, 0x1A, FLAG)
2994                    Return (BUF)
2995                }
2996
2997                Method (STM, 3, NotSerialized)
2998                {
2999                    CreateDWordField (Arg0, 0x00, PIO0)
3000                    CreateDWordField (Arg0, 0x04, DMA0)
3001                    CreateDWordField (Arg0, 0x08, PIO1)
3002                    CreateDWordField (Arg0, 0x0C, DMA1)
3003                    CreateDWordField (Arg0, 0x10, FLAG)
3004                    Name (BUF, Buffer (0x07)
3005                    {
3006                        /* 0000 */    0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00
3007                    })
3008                    CreateByteField (BUF, 0x00, PIT1)
3009                    CreateByteField (BUF, 0x01, PIT0)
3010                    CreateByteField (BUF, 0x02, MDT1)
3011                    CreateByteField (BUF, 0x03, MDT0)
3012                    CreateByteField (BUF, 0x04, PIMX)
3013                    CreateByteField (BUF, 0x05, UDCX)
3014                    CreateByteField (BUF, 0x06, UDMX)
3015                    Store (Match (^PIOT, MLE, PIO0, MTR, 0x00, 0x00), Local0)
3016                    Divide (Local0, 0x05, Local0)
3017                    Store (Match (^PIOT, MLE, PIO1, MTR, 0x00, 0x00), Local1)
3018                    Divide (Local1, 0x05, Local1)
3019                    Store (Or (ShiftLeft (Local1, 0x04), Local0), PIMX)
3020                    Store (DerefOf (Index (^PITR, Local0)), PIT0)
3021                    Store (DerefOf (Index (^PITR, Local1)), PIT1)
3022                    If (And (FLAG, 0x01))
3023                    {
3024                        Store (Match (^UDMT, MLE, DMA0, MTR, 0x00, 0x00), Local0)
3025                        Divide (Local0, 0x07, Local0)
3026                        Or (UDMX, Local0, UDMX)
3027                        Or (UDCX, 0x01, UDCX)
3028                    }
3029                    Else
3030                    {
3031                        If (LNotEqual (DMA0, 0xFFFFFFFF))
3032                        {
3033                            Store (Match (^MDMT, MLE, DMA0, MTR, 0x00, 0x00), Local0)
3034                            Store (DerefOf (Index (^MDTR, Local0)), MDT0)
3035                        }
3036                    }
3037
3038                    If (And (FLAG, 0x04))
3039                    {
3040                        Store (Match (^UDMT, MLE, DMA1, MTR, 0x00, 0x00), Local0)
3041                        Divide (Local0, 0x07, Local0)
3042                        Or (UDMX, ShiftLeft (Local0, 0x04), UDMX)
3043                        Or (UDCX, 0x02, UDCX)
3044                    }
3045                    Else
3046                    {
3047                        If (LNotEqual (DMA1, 0xFFFFFFFF))
3048                        {
3049                            Store (Match (^MDMT, MLE, DMA1, MTR, 0x00, 0x00), Local0)
3050                            Store (DerefOf (Index (^MDTR, Local0)), MDT1)
3051                        }
3052                    }
3053
3054                    Return (BUF)
3055                }
3056
3057                Method (GTF, 2, NotSerialized)
3058                {
3059                    CreateByteField (Arg1, 0x00, MDT1)
3060                    CreateByteField (Arg1, 0x01, MDT0)
3061                    CreateByteField (Arg1, 0x02, PIMX)
3062                    CreateByteField (Arg1, 0x03, UDCX)
3063                    CreateByteField (Arg1, 0x04, UDMX)
3064                    If (LEqual (Arg0, 0xA0))
3065                    {
3066                        Store (And (PIMX, 0x0F), Local0)
3067                        Store (MDT0, Local1)
3068                        And (UDCX, 0x01, Local2)
3069                        Store (And (UDMX, 0x0F), Local3)
3070                    }
3071                    Else
3072                    {
3073                        Store (ShiftRight (PIMX, 0x04), Local0)
3074                        Store (MDT1, Local1)
3075                        And (UDCX, 0x02, Local2)
3076                        Store (ShiftRight (UDMX, 0x04), Local3)
3077                    }
3078
3079                    Name (BUF, Buffer (0x0E)
3080                    {
3081                        /* 0000 */    0x03, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xEF, 0x03,
3082                        /* 0008 */    0x00, 0x00, 0x00, 0x00, 0xFF, 0xEF
3083                    })
3084                    CreateByteField (BUF, 0x01, PMOD)
3085                    CreateByteField (BUF, 0x08, DMOD)
3086                    CreateByteField (BUF, 0x05, CMDA)
3087                    CreateByteField (BUF, 0x0C, CMDB)
3088                    Store (Arg0, CMDA)
3089                    Store (Arg0, CMDB)
3090                    Or (Local0, 0x08, PMOD)
3091                    If (Local2)
3092                    {
3093                        Or (Local3, 0x40, DMOD)
3094                    }
3095                    Else
3096                    {
3097                        Store (Match (^MDMT, MLE, GETT (Local1), MTR, 0x00, 0x00), Local4)
3098                        If (LLess (Local4, 0x03))
3099                        {
3100                            Or (0x20, Local4, DMOD)
3101                        }
3102                    }
3103
3104                    Return (BUF)
3105                }
3106
3107                Device (PRID)
3108                {
3109                    Name (_ADR, 0x00)
3110                    Method (_GTM, 0, NotSerialized)
3111                    {
3112                        Name (BUF, Buffer (0x07)
3113                        {
3114                            /* 0000 */    0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00
3115                        })
3116                        CreateWordField (BUF, 0x00, VPIT)
3117                        CreateWordField (BUF, 0x02, VMDT)
3118                        CreateByteField (BUF, 0x04, VPIC)
3119                        CreateByteField (BUF, 0x05, VUDC)
3120                        CreateByteField (BUF, 0x06, VUDM)
3121                        Store (^^PPIT, VPIT)
3122                        Store (^^PMDT, VMDT)
3123                        Store (^^PPIC, VPIC)
3124                        Store (^^PUDC, VUDC)
3125                        Store (^^PUDM, VUDM)
3126                        Return (GTM (BUF))
3127                    }
3128
3129                    Method (_STM, 3, NotSerialized)
3130                    {
3131                        Name (BUF, Buffer (0x07)
3132                        {
3133                            /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
3134                        })
3135                        CreateWordField (BUF, 0x00, VPIT)
3136                        CreateWordField (BUF, 0x02, VMDT)
3137                        CreateByteField (BUF, 0x04, VPIM)
3138                        CreateByteField (BUF, 0x05, VUDC)
3139                        CreateByteField (BUF, 0x06, VUDM)
3140                        Store (STM (Arg0, Arg1, Arg2), BUF)
3141                        Store (VPIT, ^^PPIT)
3142                        Store (VMDT, ^^PMDT)
3143                        Store (VPIM, ^^PPIM)
3144                        Store (VUDC, ^^PUDC)
3145                        Store (VUDM, ^^PUDM)
3146                    }
3147
3148                    Device (P_D0)
3149                    {
3150                        Name (_ADR, 0x00)
3151                        Method (_GTF, 0, NotSerialized)
3152                        {
3153                            Name (BUF, Buffer (0x05)
3154                            {
3155                                /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00
3156                            })
3157                            CreateWordField (BUF, 0x00, VMDT)
3158                            CreateByteField (BUF, 0x02, VPIM)
3159                            CreateByteField (BUF, 0x03, VUDC)
3160                            CreateByteField (BUF, 0x04, VUDM)
3161                            Store (^^^PMDT, VMDT)
3162                            Store (^^^PPIM, VPIM)
3163                            Store (^^^PUDC, VUDC)
3164                            Store (^^^PUDM, VUDM)
3165                            Return (GTF (0xA0, BUF))
3166                        }
3167                    }
3168
3169                    Device (P_D1)
3170                    {
3171                        Name (_ADR, 0x01)
3172                        Method (_GTF, 0, NotSerialized)
3173                        {
3174                            Name (BUF, Buffer (0x05)
3175                            {
3176                                /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00
3177                            })
3178                            CreateWordField (BUF, 0x00, VMDT)
3179                            CreateByteField (BUF, 0x02, VPIM)
3180                            CreateByteField (BUF, 0x03, VUDC)
3181                            CreateByteField (BUF, 0x04, VUDM)
3182                            Store (^^^PMDT, VMDT)
3183                            Store (^^^PPIM, VPIM)
3184                            Store (^^^PUDC, VUDC)
3185                            Store (^^^PUDM, VUDM)
3186                            Return (GTF (0xB0, BUF))
3187                        }
3188                    }
3189                }
3190
3191                Device (SECD)
3192                {
3193                    Name (_ADR, 0x01)
3194                    Method (_GTM, 0, NotSerialized)
3195                    {
3196                        Name (BUF, Buffer (0x07)
3197                        {
3198                            /* 0000 */    0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00
3199                        })
3200                        CreateWordField (BUF, 0x00, VPIT)
3201                        CreateWordField (BUF, 0x02, VMDT)
3202                        CreateByteField (BUF, 0x04, VPIC)
3203                        CreateByteField (BUF, 0x05, VUDC)
3204                        CreateByteField (BUF, 0x06, VUDM)
3205                        Store (^^SPIT, VPIT)
3206                        Store (^^SMDT, VMDT)
3207                        Store (^^SPIC, VPIC)
3208                        Store (^^SUDC, VUDC)
3209                        Store (^^SUDM, VUDM)
3210                        Return (GTM (BUF))
3211                    }
3212
3213                    Method (_STM, 3, NotSerialized)
3214                    {
3215                        Name (BUF, Buffer (0x07)
3216                        {
3217                            /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
3218                        })
3219                        CreateWordField (BUF, 0x00, VPIT)
3220                        CreateWordField (BUF, 0x02, VMDT)
3221                        CreateByteField (BUF, 0x04, VPIM)
3222                        CreateByteField (BUF, 0x05, VUDC)
3223                        CreateByteField (BUF, 0x06, VUDM)
3224                        Store (STM (Arg0, Arg1, Arg2), BUF)
3225                        Store (VPIT, ^^SPIT)
3226                        Store (VMDT, ^^SMDT)
3227                        Store (VPIM, ^^SPIM)
3228                        Store (VUDC, ^^SUDC)
3229                        Store (VUDM, ^^SUDM)
3230                    }
3231
3232                    Device (S_D0)
3233                    {
3234                        Name (_ADR, 0x00)
3235                        Method (_GTF, 0, NotSerialized)
3236                        {
3237                            Name (BUF, Buffer (0x05)
3238                            {
3239                                /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00
3240                            })
3241                            CreateWordField (BUF, 0x00, VMDT)
3242                            CreateByteField (BUF, 0x02, VPIM)
3243                            CreateByteField (BUF, 0x03, VUDC)
3244                            CreateByteField (BUF, 0x04, VUDM)
3245                            Store (^^^SMDT, VMDT)
3246                            Store (^^^SPIM, VPIM)
3247                            Store (^^^SUDC, VUDC)
3248                            Store (^^^SUDM, VUDM)
3249                            Return (GTF (0xA0, BUF))
3250                        }
3251                    }
3252
3253                    Device (S_D1)
3254                    {
3255                        Name (_ADR, 0x01)
3256                        Method (_GTF, 0, NotSerialized)
3257                        {
3258                            Name (BUF, Buffer (0x05)
3259                            {
3260                                /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00
3261                            })
3262                            CreateWordField (BUF, 0x00, VMDT)
3263                            CreateByteField (BUF, 0x02, VPIM)
3264                            CreateByteField (BUF, 0x03, VUDC)
3265                            CreateByteField (BUF, 0x04, VUDM)
3266                            Store (^^^SMDT, VMDT)
3267                            Store (^^^SPIM, VPIM)
3268                            Store (^^^SUDC, VUDC)
3269                            Store (^^^SUDM, VUDM)
3270                            Return (GTF (0xB0, BUF))
3271                        }
3272                    }
3273                }
3274            }
3275
3276            Device (PCE2)
3277            {
3278                Name (_ADR, 0x00020000)
3279                Method (_PRW, 0, NotSerialized)
3280                {
3281                    Return (Package (0x02)
3282                    {
3283                        0x18,
3284                        0x04
3285                    })
3286                }
3287
3288                Name (PICM, Package (0x04)
3289                {
3290                    Package (0x04)
3291                    {
3292                        0xFFFF,
3293                        0x00,
3294                        LNKC,
3295                        0x00
3296                    },
3297
3298                    Package (0x04)
3299                    {
3300                        0xFFFF,
3301                        0x01,
3302                        LNKD,
3303                        0x00
3304                    },
3305
3306                    Package (0x04)
3307                    {
3308                        0xFFFF,
3309                        0x02,
3310                        LNKA,
3311                        0x00
3312                    },
3313
3314                    Package (0x04)
3315                    {
3316                        0xFFFF,
3317                        0x03,
3318                        LNKB,
3319                        0x00
3320                    }
3321                })
3322                Name (APIC, Package (0x04)
3323                {
3324                    Package (0x04)
3325                    {
3326                        0xFFFF,
3327                        0x00,
3328                        0x00,
3329                        0x12
3330                    },
3331
3332                    Package (0x04)
3333                    {
3334                        0xFFFF,
3335                        0x01,
3336                        0x00,
3337                        0x13
3338                    },
3339
3340                    Package (0x04)
3341                    {
3342                        0xFFFF,
3343                        0x02,
3344                        0x00,
3345                        0x10
3346                    },
3347
3348                    Package (0x04)
3349                    {
3350                        0xFFFF,
3351                        0x03,
3352                        0x00,
3353                        0x11
3354                    }
3355                })
3356                Method (_PRT, 0, NotSerialized)
3357                {
3358                    If (LNot (PICF))
3359                    {
3360                        Return (PICM)
3361                    }
3362                    Else
3363                    {
3364                        Return (APIC)
3365                    }
3366                }
3367            }
3368
3369            Device (PCE3)
3370            {
3371                Name (_ADR, 0x00030000)
3372                Method (_PRW, 0, NotSerialized)
3373                {
3374                    Return (Package (0x02)
3375                    {
3376                        0x18,
3377                        0x04
3378                    })
3379                }
3380
3381                Name (PICM, Package (0x04)
3382                {
3383                    Package (0x04)
3384                    {
3385                        0xFFFF,
3386                        0x00,
3387                        LNKD,
3388                        0x00
3389                    },
3390
3391                    Package (0x04)
3392                    {
3393                        0xFFFF,
3394                        0x01,
3395                        LNKA,
3396                        0x00
3397                    },
3398
3399                    Package (0x04)
3400                    {
3401                        0xFFFF,
3402                        0x02,
3403                        LNKB,
3404                        0x00
3405                    },
3406
3407                    Package (0x04)
3408                    {
3409                        0xFFFF,
3410                        0x03,
3411                        LNKC,
3412                        0x00
3413                    }
3414                })
3415                Name (APIC, Package (0x04)
3416                {
3417                    Package (0x04)
3418                    {
3419                        0xFFFF,
3420                        0x00,
3421                        0x00,
3422                        0x13
3423                    },
3424
3425                    Package (0x04)
3426                    {
3427                        0xFFFF,
3428                        0x01,
3429                        0x00,
3430                        0x10
3431                    },
3432
3433                    Package (0x04)
3434                    {
3435                        0xFFFF,
3436                        0x02,
3437                        0x00,
3438                        0x11
3439                    },
3440
3441                    Package (0x04)
3442                    {
3443                        0xFFFF,
3444                        0x03,
3445                        0x00,
3446                        0x12
3447                    }
3448                })
3449                Method (_PRT, 0, NotSerialized)
3450                {
3451                    If (LNot (PICF))
3452                    {
3453                        Return (PICM)
3454                    }
3455                    Else
3456                    {
3457                        Return (APIC)
3458                    }
3459                }
3460            }
3461
3462            Device (PCE4)
3463            {
3464                Name (_ADR, 0x00040000)
3465                Method (_PRW, 0, NotSerialized)
3466                {
3467                    Return (Package (0x02)
3468                    {
3469                        0x18,
3470                        0x04
3471                    })
3472                }
3473
3474                Name (PICM, Package (0x04)
3475                {
3476                    Package (0x04)
3477                    {
3478                        0xFFFF,
3479                        0x00,
3480                        LNKA,
3481                        0x00
3482                    },
3483
3484                    Package (0x04)
3485                    {
3486                        0xFFFF,
3487                        0x01,
3488                        LNKB,
3489                        0x00
3490                    },
3491
3492                    Package (0x04)
3493                    {
3494                        0xFFFF,
3495                        0x02,
3496                        LNKC,
3497                        0x00
3498                    },
3499
3500                    Package (0x04)
3501                    {
3502                        0xFFFF,
3503                        0x03,
3504                        LNKD,
3505                        0x00
3506                    }
3507                })
3508                Name (APIC, Package (0x04)
3509                {
3510                    Package (0x04)
3511                    {
3512                        0xFFFF,
3513                        0x00,
3514                        0x00,
3515                        0x10
3516                    },
3517
3518                    Package (0x04)
3519                    {
3520                        0xFFFF,
3521                        0x01,
3522                        0x00,
3523                        0x11
3524                    },
3525
3526                    Package (0x04)
3527                    {
3528                        0xFFFF,
3529                        0x02,
3530                        0x00,
3531                        0x12
3532                    },
3533
3534                    Package (0x04)
3535                    {
3536                        0xFFFF,
3537                        0x03,
3538                        0x00,
3539                        0x13
3540                    }
3541                })
3542                Method (_PRT, 0, NotSerialized)
3543                {
3544                    If (LNot (PICF))
3545                    {
3546                        Return (PICM)
3547                    }
3548                    Else
3549                    {
3550                        Return (APIC)
3551                    }
3552                }
3553            }
3554
3555            Device (PCE5)
3556            {
3557                Name (_ADR, 0x00050000)
3558                Method (_PRW, 0, NotSerialized)
3559                {
3560                    Return (Package (0x02)
3561                    {
3562                        0x18,
3563                        0x04
3564                    })
3565                }
3566
3567                Name (PICM, Package (0x04)
3568                {
3569                    Package (0x04)
3570                    {
3571                        0xFFFF,
3572                        0x00,
3573                        LNKB,
3574                        0x00
3575                    },
3576
3577                    Package (0x04)
3578                    {
3579                        0xFFFF,
3580                        0x01,
3581                        LNKC,
3582                        0x00
3583                    },
3584
3585                    Package (0x04)
3586                    {
3587                        0xFFFF,
3588                        0x02,
3589                        LNKD,
3590                        0x00
3591                    },
3592
3593                    Package (0x04)
3594                    {
3595                        0xFFFF,
3596                        0x03,
3597                        LNKA,
3598                        0x00
3599                    }
3600                })
3601                Name (APIC, Package (0x04)
3602                {
3603                    Package (0x04)
3604                    {
3605                        0xFFFF,
3606                        0x00,
3607                        0x00,
3608                        0x11
3609                    },
3610
3611                    Package (0x04)
3612                    {
3613                        0xFFFF,
3614                        0x01,
3615                        0x00,
3616                        0x12
3617                    },
3618
3619                    Package (0x04)
3620                    {
3621                        0xFFFF,
3622                        0x02,
3623                        0x00,
3624                        0x13
3625                    },
3626
3627                    Package (0x04)
3628                    {
3629                        0xFFFF,
3630                        0x03,
3631                        0x00,
3632                        0x10
3633                    }
3634                })
3635                Method (_PRT, 0, NotSerialized)
3636                {
3637                    If (LNot (PICF))
3638                    {
3639                        Return (PICM)
3640                    }
3641                    Else
3642                    {
3643                        Return (APIC)
3644                    }
3645                }
3646            }
3647
3648            Device (PCE6)
3649            {
3650                Name (_ADR, 0x00060000)
3651                Method (_PRW, 0, NotSerialized)
3652                {
3653                    Return (Package (0x02)
3654                    {
3655                        0x18,
3656                        0x04
3657                    })
3658                }
3659
3660                Name (PICM, Package (0x04)
3661                {
3662                    Package (0x04)
3663                    {
3664                        0xFFFF,
3665                        0x00,
3666                        LNKC,
3667                        0x00
3668                    },
3669
3670                    Package (0x04)
3671                    {
3672                        0xFFFF,
3673                        0x01,
3674                        LNKD,
3675                        0x00
3676                    },
3677
3678                    Package (0x04)
3679                    {
3680                        0xFFFF,
3681                        0x02,
3682                        LNKA,
3683                        0x00
3684                    },
3685
3686                    Package (0x04)
3687                    {
3688                        0xFFFF,
3689                        0x03,
3690                        LNKB,
3691                        0x00
3692                    }
3693                })
3694                Name (APIC, Package (0x04)
3695                {
3696                    Package (0x04)
3697                    {
3698                        0xFFFF,
3699                        0x00,
3700                        0x00,
3701                        0x12
3702                    },
3703
3704                    Package (0x04)
3705                    {
3706                        0xFFFF,
3707                        0x01,
3708                        0x00,
3709                        0x13
3710                    },
3711
3712                    Package (0x04)
3713                    {
3714                        0xFFFF,
3715                        0x02,
3716                        0x00,
3717                        0x10
3718                    },
3719
3720                    Package (0x04)
3721                    {
3722                        0xFFFF,
3723                        0x03,
3724                        0x00,
3725                        0x11
3726                    }
3727                })
3728                Method (_PRT, 0, NotSerialized)
3729                {
3730                    If (LNot (PICF))
3731                    {
3732                        Return (PICM)
3733                    }
3734                    Else
3735                    {
3736                        Return (APIC)
3737                    }
3738                }
3739            }
3740
3741            Device (PCE7)
3742            {
3743                Name (_ADR, 0x00070000)
3744                Method (_PRW, 0, NotSerialized)
3745                {
3746                    Return (Package (0x02)
3747                    {
3748                        0x18,
3749                        0x04
3750                    })
3751                }
3752
3753                Name (PICM, Package (0x04)
3754                {
3755                    Package (0x04)
3756                    {
3757                        0xFFFF,
3758                        0x00,
3759                        LNKD,
3760                        0x00
3761                    },
3762
3763                    Package (0x04)
3764                    {
3765                        0xFFFF,
3766                        0x01,
3767                        LNKA,
3768                        0x00
3769                    },
3770
3771                    Package (0x04)
3772                    {
3773                        0xFFFF,
3774                        0x02,
3775                        LNKB,
3776                        0x00
3777                    },
3778
3779                    Package (0x04)
3780                    {
3781                        0xFFFF,
3782                        0x03,
3783                        LNKC,
3784                        0x00
3785                    }
3786                })
3787                Name (APIC, Package (0x04)
3788                {
3789                    Package (0x04)
3790                    {
3791                        0xFFFF,
3792                        0x00,
3793                        0x00,
3794                        0x13
3795                    },
3796
3797                    Package (0x04)
3798                    {
3799                        0xFFFF,
3800                        0x01,
3801                        0x00,
3802                        0x10
3803                    },
3804
3805                    Package (0x04)
3806                    {
3807                        0xFFFF,
3808                        0x02,
3809                        0x00,
3810                        0x11
3811                    },
3812
3813                    Package (0x04)
3814                    {
3815                        0xFFFF,
3816                        0x03,
3817                        0x00,
3818                        0x12
3819                    }
3820                })
3821                Method (_PRT, 0, NotSerialized)
3822                {
3823                    If (LNot (PICF))
3824                    {
3825                        Return (PICM)
3826                    }
3827                    Else
3828                    {
3829                        Return (APIC)
3830                    }
3831                }
3832            }
3833
3834            Device (PCE9)
3835            {
3836                Name (_ADR, 0x00090000)
3837                Method (_PRW, 0, NotSerialized)
3838                {
3839                    Return (Package (0x02)
3840                    {
3841                        0x18,
3842                        0x04
3843                    })
3844                }
3845
3846                Name (PICM, Package (0x04)
3847                {
3848                    Package (0x04)
3849                    {
3850                        0xFFFF,
3851                        0x00,
3852                        LNKB,
3853                        0x00
3854                    },
3855
3856                    Package (0x04)
3857                    {
3858                        0xFFFF,
3859                        0x01,
3860                        LNKC,
3861                        0x00
3862                    },
3863
3864                    Package (0x04)
3865                    {
3866                        0xFFFF,
3867                        0x02,
3868                        LNKD,
3869                        0x00
3870                    },
3871
3872                    Package (0x04)
3873                    {
3874                        0xFFFF,
3875                        0x03,
3876                        LNKA,
3877                        0x00
3878                    }
3879                })
3880                Name (APIC, Package (0x04)
3881                {
3882                    Package (0x04)
3883                    {
3884                        0xFFFF,
3885                        0x00,
3886                        0x00,
3887                        0x11
3888                    },
3889
3890                    Package (0x04)
3891                    {
3892                        0xFFFF,
3893                        0x01,
3894                        0x00,
3895                        0x12
3896                    },
3897
3898                    Package (0x04)
3899                    {
3900                        0xFFFF,
3901                        0x02,
3902                        0x00,
3903                        0x13
3904                    },
3905
3906                    Package (0x04)
3907                    {
3908                        0xFFFF,
3909                        0x03,
3910                        0x00,
3911                        0x10
3912                    }
3913                })
3914                Method (_PRT, 0, NotSerialized)
3915                {
3916                    If (LNot (PICF))
3917                    {
3918                        Return (PICM)
3919                    }
3920                    Else
3921                    {
3922                        Return (APIC)
3923                    }
3924                }
3925            }
3926
3927            Device (PCEA)
3928            {
3929                Name (_ADR, 0x000A0000)
3930                Method (_PRW, 0, NotSerialized)
3931                {
3932                    Return (Package (0x02)
3933                    {
3934                        0x18,
3935                        0x04
3936                    })
3937                }
3938
3939                Name (PICM, Package (0x04)
3940                {
3941                    Package (0x04)
3942                    {
3943                        0xFFFF,
3944                        0x00,
3945                        LNKC,
3946                        0x00
3947                    },
3948
3949                    Package (0x04)
3950                    {
3951                        0xFFFF,
3952                        0x01,
3953                        LNKD,
3954                        0x00
3955                    },
3956
3957                    Package (0x04)
3958                    {
3959                        0xFFFF,
3960                        0x02,
3961                        LNKA,
3962                        0x00
3963                    },
3964
3965                    Package (0x04)
3966                    {
3967                        0xFFFF,
3968                        0x03,
3969                        LNKB,
3970                        0x00
3971                    }
3972                })
3973                Name (APIC, Package (0x04)
3974                {
3975                    Package (0x04)
3976                    {
3977                        0xFFFF,
3978                        0x00,
3979                        0x00,
3980                        0x12
3981                    },
3982
3983                    Package (0x04)
3984                    {
3985                        0xFFFF,
3986                        0x01,
3987                        0x00,
3988                        0x13
3989                    },
3990
3991                    Package (0x04)
3992                    {
3993                        0xFFFF,
3994                        0x02,
3995                        0x00,
3996                        0x10
3997                    },
3998
3999                    Package (0x04)
4000                    {
4001                        0xFFFF,
4002                        0x03,
4003                        0x00,
4004                        0x11
4005                    }
4006                })
4007                Method (_PRT, 0, NotSerialized)
4008                {
4009                    If (LNot (PICF))
4010                    {
4011                        Return (PICM)
4012                    }
4013                    Else
4014                    {
4015                        Return (APIC)
4016                    }
4017                }
4018            }
4019
4020            Device (PCEB)
4021            {
4022                Name (_ADR, 0x000B0000)
4023                Method (_PRW, 0, NotSerialized)
4024                {
4025                    Return (Package (0x02)
4026                    {
4027                        0x18,
4028                        0x04
4029                    })
4030                }
4031
4032                Name (PICM, Package (0x04)
4033                {
4034                    Package (0x04)
4035                    {
4036                        0xFFFF,
4037                        0x00,
4038                        LNKD,
4039                        0x00
4040                    },
4041
4042                    Package (0x04)
4043                    {
4044                        0xFFFF,
4045                        0x01,
4046                        LNKA,
4047                        0x00
4048                    },
4049
4050                    Package (0x04)
4051                    {
4052                        0xFFFF,
4053                        0x02,
4054                        LNKB,
4055                        0x00
4056                    },
4057
4058                    Package (0x04)
4059                    {
4060                        0xFFFF,
4061                        0x03,
4062                        LNKC,
4063                        0x00
4064                    }
4065                })
4066                Name (APIC, Package (0x04)
4067                {
4068                    Package (0x04)
4069                    {
4070                        0xFFFF,
4071                        0x00,
4072                        0x00,
4073                        0x13
4074                    },
4075
4076                    Package (0x04)
4077                    {
4078                        0xFFFF,
4079                        0x01,
4080                        0x00,
4081                        0x10
4082                    },
4083
4084                    Package (0x04)
4085                    {
4086                        0xFFFF,
4087                        0x02,
4088                        0x00,
4089                        0x11
4090                    },
4091
4092                    Package (0x04)
4093                    {
4094                        0xFFFF,
4095                        0x03,
4096                        0x00,
4097                        0x12
4098                    }
4099                })
4100                Method (_PRT, 0, NotSerialized)
4101                {
4102                    If (LNot (PICF))
4103                    {
4104                        Return (PICM)
4105                    }
4106                    Else
4107                    {
4108                        Return (APIC)
4109                    }
4110                }
4111            }
4112
4113            Device (PCEC)
4114            {
4115                Name (_ADR, 0x000C0000)
4116                Method (_PRW, 0, NotSerialized)
4117                {
4118                    Return (Package (0x02)
4119                    {
4120                        0x18,
4121                        0x04
4122                    })
4123                }
4124
4125                Name (PICM, Package (0x04)
4126                {
4127                    Package (0x04)
4128                    {
4129                        0xFFFF,
4130                        0x00,
4131                        LNKA,
4132                        0x00
4133                    },
4134
4135                    Package (0x04)
4136                    {
4137                        0xFFFF,
4138                        0x01,
4139                        LNKB,
4140                        0x00
4141                    },
4142
4143                    Package (0x04)
4144                    {
4145                        0xFFFF,
4146                        0x02,
4147                        LNKC,
4148                        0x00
4149                    },
4150
4151                    Package (0x04)
4152                    {
4153                        0xFFFF,
4154                        0x03,
4155                        LNKD,
4156                        0x00
4157                    }
4158                })
4159                Name (APIC, Package (0x04)
4160                {
4161                    Package (0x04)
4162                    {
4163                        0xFFFF,
4164                        0x00,
4165                        0x00,
4166                        0x10
4167                    },
4168
4169                    Package (0x04)
4170                    {
4171                        0xFFFF,
4172                        0x01,
4173                        0x00,
4174                        0x11
4175                    },
4176
4177                    Package (0x04)
4178                    {
4179                        0xFFFF,
4180                        0x02,
4181                        0x00,
4182                        0x12
4183                    },
4184
4185                    Package (0x04)
4186                    {
4187                        0xFFFF,
4188                        0x03,
4189                        0x00,
4190                        0x13
4191                    }
4192                })
4193                Method (_PRT, 0, NotSerialized)
4194                {
4195                    If (LNot (PICF))
4196                    {
4197                        Return (PICM)
4198                    }
4199                    Else
4200                    {
4201                        Return (APIC)
4202                    }
4203                }
4204            }
4205
4206            Scope (\)
4207            {
4208                Method (DISD, 1, NotSerialized)
4209                {
4210                }
4211
4212                Method (CKIO, 2, NotSerialized)
4213                {
4214                }
4215
4216                Method (SLDM, 2, NotSerialized)
4217                {
4218                }
4219            }
4220
4221            Scope (\)
4222            {
4223                OperationRegion (WIN1, SystemIO, 0x2E, 0x02)
4224                Field (WIN1, ByteAcc, NoLock, Preserve)
4225                {
4226                    INDP,   8,
4227                    DATP,   8
4228                }
4229
4230                OperationRegion (GPIO, SystemIO, 0x0800, 0x05)
4231                Field (GPIO, ByteAcc, NoLock, Preserve)
4232                {
4233                    GO01,   8,
4234                    GO02,   8,
4235                    GO03,   8,
4236                    GO04,   8,
4237                    GO05,   8
4238                }
4239
4240                IndexField (INDP, DATP, ByteAcc, NoLock, Preserve)
4241                {
4242                            Offset (0x02),
4243                    CFG,    8,
4244                            Offset (0x07),
4245                    LDN,    8,
4246                            Offset (0x20),
4247                    IDHI,   8,
4248                    IDLO,   8,
4249                    POWC,   8,
4250                            Offset (0x30),
4251                    ACTR,   8,
4252                            Offset (0x60),
4253                    IOAH,   8,
4254                    IOAL,   8,
4255                    IO2H,   8,
4256                    IO2L,   8,
4257                            Offset (0x70),
4258                    INTR,   8,
4259                            Offset (0x72),
4260                    INT1,   8,
4261                            Offset (0x74),
4262                    DMCH,   8,
4263                            Offset (0xC0),
4264                    GP40,   8,
4265                            Offset (0xF0),
4266                    OPT1,   8,
4267                    OPT2,   8,
4268                    OPT3,   8,
4269                    OPT4,   8
4270                }
4271
4272                Method (ENFG, 0, NotSerialized)
4273                {
4274                    Store (0x87, INDP)
4275                    Store (0x01, INDP)
4276                    Store (0x55, INDP)
4277                    Store (0x55, INDP)
4278                }
4279
4280                Method (EXFG, 0, NotSerialized)
4281                {
4282                    Store (0x02, CFG)
4283                }
4284
4285                Method (GSRG, 1, NotSerialized)
4286                {
4287                    Store (Arg0, INDP)
4288                    Return (DATP)
4289                }
4290
4291                Method (SSRG, 2, NotSerialized)
4292                {
4293                    Store (Arg0, INDP)
4294                    Store (Arg1, DATP)
4295                }
4296            }
4297
4298            Device (FDC0)
4299            {
4300                Name (_HID, EisaId ("PNP0700"))
4301                Method (_STA, 0, NotSerialized)
4302                {
4303                    ENFG ()
4304                    Store (Zero, LDN)
4305                    If (ACTR)
4306                    {
4307                        EXFG ()
4308                        Return (0x0F)
4309                    }
4310                    Else
4311                    {
4312                        If (LOr (IOAH, IOAL))
4313                        {
4314                            EXFG ()
4315                            Return (0x0D)
4316                        }
4317                        Else
4318                        {
4319                            EXFG ()
4320                            Return (0x00)
4321                        }
4322                    }
4323                }
4324
4325                Method (_DIS, 0, NotSerialized)
4326                {
4327                    ENFG ()
4328                    Store (0x00, LDN)
4329                    Store (Zero, ACTR)
4330                    SLDM (DMCH, 0x04)
4331                    EXFG ()
4332                    DISD (0x03)
4333                }
4334
4335                Method (_CRS, 0, NotSerialized)
4336                {
4337                    Name (BUF0, ResourceTemplate ()
4338                    {
4339                        IO (Decode16,
4340                            0x03F0,             // Range Minimum
4341                            0x03F0,             // Range Maximum
4342                            0x01,               // Alignment
4343                            0x06,               // Length
4344                            _Y02)
4345                        IO (Decode16,
4346                            0x03F7,             // Range Minimum
4347                            0x03F7,             // Range Maximum
4348                            0x01,               // Alignment
4349                            0x01,               // Length
4350                            )
4351                        IRQNoFlags ()
4352                            {6}
4353                        DMA (Compatibility, NotBusMaster, Transfer8, )
4354                            {2}
4355                    })
4356                    CreateByteField (BUF0, \_SB.PCI0.FDC0._CRS._Y02._MIN, IOLO)
4357                    CreateByteField (BUF0, 0x03, IOHI)
4358                    CreateByteField (BUF0, \_SB.PCI0.FDC0._CRS._Y02._MAX, IORL)
4359                    CreateByteField (BUF0, 0x05, IORH)
4360                    ENFG ()
4361                    EXFG ()
4362                    Return (BUF0)
4363                }
4364
4365                Name (_PRS, ResourceTemplate ()
4366                {
4367                    StartDependentFnNoPri ()
4368                    {
4369                        IO (Decode16,
4370                            0x03F0,             // Range Minimum
4371                            0x03F0,             // Range Maximum
4372                            0x01,               // Alignment
4373                            0x06,               // Length
4374                            )
4375                        IO (Decode16,
4376                            0x03F7,             // Range Minimum
4377                            0x03F7,             // Range Maximum
4378                            0x01,               // Alignment
4379                            0x01,               // Length
4380                            )
4381                        IRQNoFlags ()
4382                            {6}
4383                        DMA (Compatibility, NotBusMaster, Transfer8, )
4384                            {2}
4385                    }
4386                    EndDependentFn ()
4387                })
4388                Method (_SRS, 1, NotSerialized)
4389                {
4390                    CreateByteField (Arg0, 0x02, IOLO)
4391                    CreateByteField (Arg0, 0x03, IOHI)
4392                    CreateWordField (Arg0, 0x02, IOAD)
4393                    CreateWordField (Arg0, 0x19, IRQW)
4394                    CreateByteField (Arg0, 0x1C, DMAV)
4395                    ENFG ()
4396                    Store (Zero, LDN)
4397                    Store (One, ACTR)
4398                    SLDM (DMCH, DMCH)
4399                    CKIO (IOAD, 0x03)
4400                    EXFG ()
4401                }
4402            }
4403
4404            Device (UAR1)
4405            {
4406                Name (_HID, EisaId ("PNP0501"))
4407                Name (_UID, 0x01)
4408                Method (_STA, 0, NotSerialized)
4409                {
4410                    ENFG ()
4411                    Store (0x01, LDN)
4412                    If (ACTR)
4413                    {
4414                        EXFG ()
4415                        Return (0x0F)
4416                    }
4417                    Else
4418                    {
4419                        If (LOr (IOAH, IOAL))
4420                        {
4421                            EXFG ()
4422                            Return (0x0D)
4423                        }
4424                        Else
4425                        {
4426                            EXFG ()
4427                            Return (0x00)
4428                        }
4429                    }
4430
4431                    EXFG ()
4432                }
4433
4434                Method (_DIS, 0, NotSerialized)
4435                {
4436                    ENFG ()
4437                    Store (0x01, LDN)
4438                    Store (Zero, ACTR)
4439                    EXFG ()
4440                    DISD (0x00)
4441                }
4442
4443                Method (_CRS, 0, NotSerialized)
4444                {
4445                    Name (BUF1, ResourceTemplate ()
4446                    {
4447                        IO (Decode16,
4448                            0x0000,             // Range Minimum
4449                            0x0000,             // Range Maximum
4450                            0x01,               // Alignment
4451                            0x08,               // Length
4452                            _Y03)
4453                        IRQNoFlags (_Y04)
4454                            {}
4455                    })
4456                    CreateByteField (BUF1, \_SB.PCI0.UAR1._CRS._Y03._MIN, IOLO)
4457                    CreateByteField (BUF1, 0x03, IOHI)
4458                    CreateByteField (BUF1, \_SB.PCI0.UAR1._CRS._Y03._MAX, IORL)
4459                    CreateByteField (BUF1, 0x05, IORH)
4460                    CreateWordField (BUF1, \_SB.PCI0.UAR1._CRS._Y04._INT, IRQW)
4461                    ENFG ()
4462                    Store (0x01, LDN)
4463                    Store (IOAL, IOLO)
4464                    Store (IOAL, IORL)
4465                    Store (IOAH, IOHI)
4466                    Store (IOAH, IORH)
4467                    Store (One, Local0)
4468                    ShiftLeft (Local0, INTR, IRQW)
4469                    EXFG ()
4470                    Return (BUF1)
4471                }
4472
4473                Name (_PRS, ResourceTemplate ()
4474                {
4475                    StartDependentFnNoPri ()
4476                    {
4477                        IO (Decode16,
4478                            0x03F8,             // Range Minimum
4479                            0x03F8,             // Range Maximum
4480                            0x01,               // Alignment
4481                            0x08,               // Length
4482                            )
4483                        IRQNoFlags ()
4484                            {3,4,5,7,9,10,11,12}
4485                    }
4486                    StartDependentFnNoPri ()
4487                    {
4488                        IO (Decode16,
4489                            0x02F8,             // Range Minimum
4490                            0x02F8,             // Range Maximum
4491                            0x01,               // Alignment
4492                            0x08,               // Length
4493                            )
4494                        IRQNoFlags ()
4495                            {3,4,5,7,9,10,11,12}
4496                    }
4497                    StartDependentFnNoPri ()
4498                    {
4499                        IO (Decode16,
4500                            0x03E8,             // Range Minimum
4501                            0x03E8,             // Range Maximum
4502                            0x01,               // Alignment
4503                            0x08,               // Length
4504                            )
4505                        IRQNoFlags ()
4506                            {3,4,5,7,9,10,11,12}
4507                    }
4508                    StartDependentFnNoPri ()
4509                    {
4510                        IO (Decode16,
4511                            0x02E8,             // Range Minimum
4512                            0x02E8,             // Range Maximum
4513                            0x01,               // Alignment
4514                            0x08,               // Length
4515                            )
4516                        IRQNoFlags ()
4517                            {3,4,5,7,9,10,11,12}
4518                    }
4519                    EndDependentFn ()
4520                })
4521                Method (_SRS, 1, NotSerialized)
4522                {
4523                    CreateByteField (Arg0, 0x02, IOLO)
4524                    CreateByteField (Arg0, 0x03, IOHI)
4525                    CreateWordField (Arg0, 0x02, IOAD)
4526                    CreateWordField (Arg0, 0x09, IRQW)
4527                    ENFG ()
4528                    Store (0x01, LDN)
4529                    Store (One, ACTR)
4530                    Store (IOLO, IOAL)
4531                    Store (IOHI, IOAH)
4532                    FindSetRightBit (IRQW, Local0)
4533                    Subtract (Local0, 0x01, INTR)
4534                    EXFG ()
4535                    CKIO (IOAD, 0x00)
4536                }
4537            }
4538
4539            Device (LPT1)
4540            {
4541                Name (_HID, EisaId ("PNP0400"))
4542                Method (_STA, 0, NotSerialized)
4543                {
4544                    ENFG ()
4545                    Store (0x03, LDN)
4546                    And (OPT1, 0x02, Local0)
4547                    If (LNotEqual (Local0, 0x02))
4548                    {
4549                        If (ACTR)
4550                        {
4551                            EXFG ()
4552                            Return (0x0F)
4553                        }
4554                        Else
4555                        {
4556                            If (LOr (IOAH, IOAL))
4557                            {
4558                                EXFG ()
4559                                Return (0x0D)
4560                            }
4561                            Else
4562                            {
4563                                EXFG ()
4564                                Return (0x00)
4565                            }
4566                        }
4567                    }
4568                    Else
4569                    {
4570                        EXFG ()
4571                        Return (0x00)
4572                    }
4573                }
4574
4575                Method (_DIS, 0, NotSerialized)
4576                {
4577                    ENFG ()
4578                    Store (0x03, LDN)
4579                    Store (Zero, ACTR)
4580                    EXFG ()
4581                    DISD (0x02)
4582                }
4583
4584                Method (_CRS, 0, NotSerialized)
4585                {
4586                    Name (BUF5, ResourceTemplate ()
4587                    {
4588                        IO (Decode16,
4589                            0x0000,             // Range Minimum
4590                            0x0000,             // Range Maximum
4591                            0x01,               // Alignment
4592                            0x08,               // Length
4593                            _Y05)
4594                        IRQNoFlags (_Y06)
4595                            {}
4596                    })
4597                    CreateByteField (BUF5, \_SB.PCI0.LPT1._CRS._Y05._MIN, IOLO)
4598                    CreateByteField (BUF5, 0x03, IOHI)
4599                    CreateByteField (BUF5, \_SB.PCI0.LPT1._CRS._Y05._MAX, IORL)
4600                    CreateByteField (BUF5, 0x05, IORH)
4601                    CreateByteField (BUF5, \_SB.PCI0.LPT1._CRS._Y05._LEN, IOLE)
4602                    CreateWordField (BUF5, \_SB.PCI0.LPT1._CRS._Y06._INT, IRQW)
4603                    ENFG ()
4604                    Store (0x03, LDN)
4605                    Store (IOAL, IOLO)
4606                    Store (IOLO, IORL)
4607                    Store (IOAH, IOHI)
4608                    Store (IOHI, IORH)
4609                    If (LEqual (IOLO, 0xBC))
4610                    {
4611                        Store (0x04, IOLE)
4612                    }
4613                    Else
4614                    {
4615                        Store (0x08, IOLE)
4616                    }
4617
4618                    Store (One, Local0)
4619                    Store (INTR, Local5)
4620                    ShiftLeft (Local0, Local5, IRQW)
4621                    EXFG ()
4622                    Return (BUF5)
4623                }
4624
4625                Name (_PRS, ResourceTemplate ()
4626                {
4627                    StartDependentFnNoPri ()
4628                    {
4629                        IO (Decode16,
4630                            0x0378,             // Range Minimum
4631                            0x0378,             // Range Maximum
4632                            0x01,               // Alignment
4633                            0x08,               // Length
4634                            )
4635                        IRQNoFlags ()
4636                            {3,4,5,7,9,10,11,12}
4637                    }
4638                    StartDependentFnNoPri ()
4639                    {
4640                        IO (Decode16,
4641                            0x0278,             // Range Minimum
4642                            0x0278,             // Range Maximum
4643                            0x01,               // Alignment
4644                            0x08,               // Length
4645                            )
4646                        IRQNoFlags ()
4647                            {3,4,5,7,9,10,11,12}
4648                    }
4649                    StartDependentFnNoPri ()
4650                    {
4651                        IO (Decode16,
4652                            0x03BC,             // Range Minimum
4653                            0x03BC,             // Range Maximum
4654                            0x01,               // Alignment
4655                            0x04,               // Length
4656                            )
4657                        IRQNoFlags ()
4658                            {3,4,5,7,9,10,11,12}
4659                    }
4660                    EndDependentFn ()
4661                })
4662                Method (_SRS, 1, NotSerialized)
4663                {
4664                    CreateByteField (Arg0, 0x02, IOLO)
4665                    CreateByteField (Arg0, 0x03, IOHI)
4666                    CreateWordField (Arg0, 0x02, IOAD)
4667                    CreateByteField (Arg0, 0x04, IORL)
4668                    CreateByteField (Arg0, 0x05, IORH)
4669                    CreateWordField (Arg0, 0x09, IRQW)
4670                    ENFG ()
4671                    Store (0x03, LDN)
4672                    Store (One, ACTR)
4673                    Store (IOLO, IOAL)
4674                    Store (IOHI, IOAH)
4675                    FindSetLeftBit (IRQW, Local0)
4676                    Subtract (Local0, 0x01, Local0)
4677                    Store (Local0, INTR)
4678                    EXFG ()
4679                    CKIO (IOAD, 0x02)
4680                }
4681            }
4682
4683            Device (ECP1)
4684            {
4685                Name (_HID, EisaId ("PNP0401"))
4686                Method (_STA, 0, NotSerialized)
4687                {
4688                    ENFG ()
4689                    Store (0x03, LDN)
4690                    And (OPT1, 0x02, Local0)
4691                    If (LEqual (Local0, 0x02))
4692                    {
4693                        If (ACTR)
4694                        {
4695                            EXFG ()
4696                            Return (0x0F)
4697                        }
4698                        Else
4699                        {
4700                            If (LOr (IOAH, IOAL))
4701                            {
4702                                EXFG ()
4703                                Return (0x0D)
4704                            }
4705                            Else
4706                            {
4707                                EXFG ()
4708                                Return (0x00)
4709                            }
4710                        }
4711                    }
4712                    Else
4713                    {
4714                        EXFG ()
4715                        Return (0x00)
4716                    }
4717                }
4718
4719                Method (_DIS, 0, NotSerialized)
4720                {
4721                    ENFG ()
4722                    Store (0x03, LDN)
4723                    Store (Zero, ACTR)
4724                    SLDM (DMCH, 0x04)
4725                    EXFG ()
4726                    DISD (0x02)
4727                }
4728
4729                Method (_CRS, 0, NotSerialized)
4730                {
4731                    Name (BUF6, ResourceTemplate ()
4732                    {
4733                        IO (Decode16,
4734                            0x0000,             // Range Minimum
4735                            0x0000,             // Range Maximum
4736                            0x01,               // Alignment
4737                            0x04,               // Length
4738                            _Y07)
4739                        IO (Decode16,
4740                            0x0000,             // Range Minimum
4741                            0x0000,             // Range Maximum
4742                            0x01,               // Alignment
4743                            0x04,               // Length
4744                            _Y08)
4745                        IRQNoFlags (_Y09)
4746                            {}
4747                        DMA (Compatibility, NotBusMaster, Transfer8, _Y0A)
4748                            {}
4749                    })
4750                    CreateByteField (BUF6, \_SB.PCI0.ECP1._CRS._Y07._MIN, IOLO)
4751                    CreateByteField (BUF6, 0x03, IOHI)
4752                    CreateByteField (BUF6, \_SB.PCI0.ECP1._CRS._Y07._MAX, IORL)
4753                    CreateByteField (BUF6, 0x05, IORH)
4754                    CreateByteField (BUF6, \_SB.PCI0.ECP1._CRS._Y07._LEN, IOLE)
4755                    CreateByteField (BUF6, \_SB.PCI0.ECP1._CRS._Y08._MIN, IOEL)
4756                    CreateByteField (BUF6, 0x0B, IOEH)
4757                    CreateByteField (BUF6, \_SB.PCI0.ECP1._CRS._Y08._MAX, IOML)
4758                    CreateByteField (BUF6, 0x0D, IOMH)
4759                    CreateWordField (BUF6, \_SB.PCI0.ECP1._CRS._Y09._INT, IRQW)
4760                    CreateByteField (BUF6, \_SB.PCI0.ECP1._CRS._Y0A._DMA, DMAC)
4761                    ENFG ()
4762                    Store (0x03, LDN)
4763                    Store (IOAL, Local2)
4764                    Store (Local2, IOLO)
4765                    Store (IOAH, Local3)
4766                    Store (Local3, IOHI)
4767                    Or (Local3, 0x04, Local3)
4768                    Store (Local3, IOEH)
4769                    Store (Local3, IOMH)
4770                    Store (IOLO, IORL)
4771                    Store (IOLO, IOEL)
4772                    Store (IOLO, IOML)
4773                    Store (IOHI, IORH)
4774                    If (LEqual (IOLO, 0xBC))
4775                    {
4776                        Store (0x04, IOLE)
4777                    }
4778                    Else
4779                    {
4780                        Store (0x08, IOLE)
4781                    }
4782
4783                    Store (One, Local0)
4784                    Store (INTR, Local5)
4785                    ShiftLeft (Local0, Local5, IRQW)
4786                    Store (One, Local0)
4787                    Store (DMCH, Local5)
4788                    ShiftLeft (Local0, Local5, DMAC)
4789                    EXFG ()
4790                    Return (BUF6)
4791                }
4792
4793                Name (_PRS, ResourceTemplate ()
4794                {
4795                    StartDependentFnNoPri ()
4796                    {
4797                        IO (Decode16,
4798                            0x0378,             // Range Minimum
4799                            0x0378,             // Range Maximum
4800                            0x00,               // Alignment
4801                            0x08,               // Length
4802                            )
4803                        IO (Decode16,
4804                            0x0778,             // Range Minimum
4805                            0x0778,             // Range Maximum
4806                            0x00,               // Alignment
4807                            0x04,               // Length
4808                            )
4809                        IRQNoFlags ()
4810                            {3,4,5,7,9,10,11,12}
4811                        DMA (Compatibility, NotBusMaster, Transfer8, )
4812                            {0,1,3}
4813                    }
4814                    StartDependentFnNoPri ()
4815                    {
4816                        IO (Decode16,
4817                            0x0278,             // Range Minimum
4818                            0x0278,             // Range Maximum
4819                            0x00,               // Alignment
4820                            0x08,               // Length
4821                            )
4822                        IO (Decode16,
4823                            0x0678,             // Range Minimum
4824                            0x0678,             // Range Maximum
4825                            0x00,               // Alignment
4826                            0x04,               // Length
4827                            )
4828                        IRQNoFlags ()
4829                            {3,4,5,7,9,10,11,12}
4830                        DMA (Compatibility, NotBusMaster, Transfer8, )
4831                            {0,1,3}
4832                    }
4833                    StartDependentFnNoPri ()
4834                    {
4835                        IO (Decode16,
4836                            0x03BC,             // Range Minimum
4837                            0x03BC,             // Range Maximum
4838                            0x00,               // Alignment
4839                            0x04,               // Length
4840                            )
4841                        IO (Decode16,
4842                            0x07BC,             // Range Minimum
4843                            0x07BC,             // Range Maximum
4844                            0x00,               // Alignment
4845                            0x04,               // Length
4846                            )
4847                        IRQNoFlags ()
4848                            {3,4,5,7,9,10,11,12}
4849                        DMA (Compatibility, NotBusMaster, Transfer8, )
4850                            {0,1,3}
4851                    }
4852                    EndDependentFn ()
4853                })
4854                Method (_SRS, 1, NotSerialized)
4855                {
4856                    CreateByteField (Arg0, 0x02, IOLO)
4857                    CreateByteField (Arg0, 0x03, IOHI)
4858                    CreateWordField (Arg0, 0x02, IOAD)
4859                    CreateWordField (Arg0, 0x11, IRQW)
4860                    CreateByteField (Arg0, 0x14, DMAC)
4861                    ENFG ()
4862                    Store (0x03, LDN)
4863                    Store (One, ACTR)
4864                    Store (IOLO, IOAL)
4865                    Store (IOHI, IOAH)
4866                    FindSetLeftBit (IRQW, Local0)
4867                    Subtract (Local0, 0x01, Local0)
4868                    Store (Local0, INTR)
4869                    FindSetLeftBit (DMAC, Local1)
4870                    Store (DMCH, Local0)
4871                    Subtract (Local1, 0x01, DMCH)
4872                    SLDM (Local0, DMCH)
4873                    EXFG ()
4874                    CKIO (IOAD, 0x02)
4875                }
4876            }
4877
4878            OperationRegion (KBCT, SystemIO, 0x60, 0x05)
4879            Field (KBCT, ByteAcc, NoLock, Preserve)
4880            {
4881                P060,   8,
4882                        Offset (0x04),
4883                P064,   8
4884            }
4885
4886            Device (PS2M)
4887            {
4888                Name (_HID, EisaId ("PNP0F13"))
4889                Method (_STA, 0, NotSerialized)
4890                {
4891                    If (LEqual (PS2F, 0x00))
4892                    {
4893                        Return (0x0F)
4894                    }
4895                    Else
4896                    {
4897                        Return (0x00)
4898                    }
4899                }
4900
4901                Method (_CRS, 0, NotSerialized)
4902                {
4903                    Name (BUF1, ResourceTemplate ()
4904                    {
4905                        IRQNoFlags ()
4906                            {12}
4907                    })
4908                    Name (BUF2, ResourceTemplate ()
4909                    {
4910                        IO (Decode16,
4911                            0x0060,             // Range Minimum
4912                            0x0060,             // Range Maximum
4913                            0x01,               // Alignment
4914                            0x01,               // Length
4915                            )
4916                        IO (Decode16,
4917                            0x0064,             // Range Minimum
4918                            0x0064,             // Range Maximum
4919                            0x01,               // Alignment
4920                            0x01,               // Length
4921                            )
4922                        IRQNoFlags ()
4923                            {12}
4924                    })
4925                    If (LEqual (KBDI, 0x01))
4926                    {
4927                        If (LEqual (OSFL, 0x02))
4928                        {
4929                            Return (BUF1)
4930                        }
4931
4932                        If (LEqual (OSFL, 0x01))
4933                        {
4934                            Return (BUF1)
4935                        }
4936                        Else
4937                        {
4938                            Return (BUF2)
4939                        }
4940                    }
4941                    Else
4942                    {
4943                        Return (BUF1)
4944                    }
4945                }
4946            }
4947
4948            Device (PS2K)
4949            {
4950                Name (_HID, EisaId ("PNP0303"))
4951                Method (_STA, 0, NotSerialized)
4952                {
4953                    If (LEqual (KBDI, 0x01))
4954                    {
4955                        Return (0x00)
4956                    }
4957                    Else
4958                    {
4959                        Return (0x0F)
4960                    }
4961                }
4962
4963                Name (_CRS, ResourceTemplate ()
4964                {
4965                    IO (Decode16,
4966                        0x0060,             // Range Minimum
4967                        0x0060,             // Range Maximum
4968                        0x01,               // Alignment
4969                        0x01,               // Length
4970                        )
4971                    IO (Decode16,
4972                        0x0064,             // Range Minimum
4973                        0x0064,             // Range Maximum
4974                        0x01,               // Alignment
4975                        0x01,               // Length
4976                        )
4977                    IRQNoFlags ()
4978                        {1}
4979                })
4980            }
4981
4982            Device (PSMR)
4983            {
4984                Name (_HID, EisaId ("PNP0C02"))
4985                Name (_UID, 0x03)
4986                Method (_STA, 0, NotSerialized)
4987                {
4988                    If (LEqual (KBDI, 0x00))
4989                    {
4990                        Return (0x00)
4991                    }
4992
4993                    If (LEqual (PS2F, 0x00))
4994                    {
4995                        If (LEqual (OSFL, 0x02))
4996                        {
4997                            Return (0x0F)
4998                        }
4999
5000                        If (LEqual (OSFL, 0x01))
5001                        {
5002                            Return (0x0F)
5003                        }
5004
5005                        Return (0x00)
5006                    }
5007
5008                    Return (0x00)
5009                }
5010
5011                Name (_CRS, ResourceTemplate ()
5012                {
5013                    IO (Decode16,
5014                        0x0060,             // Range Minimum
5015                        0x0060,             // Range Maximum
5016                        0x01,               // Alignment
5017                        0x01,               // Length
5018                        )
5019                    IO (Decode16,
5020                        0x0064,             // Range Minimum
5021                        0x0064,             // Range Maximum
5022                        0x01,               // Alignment
5023                        0x01,               // Length
5024                        )
5025                })
5026            }
5027
5028            Method (\_SB.PCI0.PS2M._PRW, 0, NotSerialized)
5029            {
5030                Return (Package (0x02)
5031                {
5032                    0x03,
5033                    0x05
5034                })
5035            }
5036
5037            Method (\_SB.PCI0.PS2K._PRW, 0, NotSerialized)
5038            {
5039                Return (Package (0x02)
5040                {
5041                    0x03,
5042                    0x05
5043                })
5044            }
5045
5046            Method (_PRW, 0, NotSerialized)
5047            {
5048                Return (Package (0x02)
5049                {
5050                    0x04,
5051                    0x05
5052                })
5053            }
5054
5055            Device (AGP)
5056            {
5057                Name (_ADR, 0x00010000)
5058                Name (PICM, Package (0x06)
5059                {
5060                    Package (0x04)
5061                    {
5062                        0x0005FFFF,
5063                        0x00,
5064                        \_SB.PCI0.LPC0.LNKC,
5065                        0x00
5066                    },
5067
5068                    Package (0x04)
5069                    {
5070                        0x0005FFFF,
5071                        0x01,
5072                        \_SB.PCI0.LPC0.LNKD,
5073                        0x00
5074                    },
5075
5076                    Package (0x04)
5077                    {
5078                        0x0005FFFF,
5079                        0x02,
5080                        \_SB.PCI0.LPC0.LNKA,
5081                        0x00
5082                    },
5083
5084                    Package (0x04)
5085                    {
5086                        0x0005FFFF,
5087                        0x03,
5088                        \_SB.PCI0.LPC0.LNKB,
5089                        0x00
5090                    },
5091
5092                    Package (0x04)
5093                    {
5094                        0x0007FFFF,
5095                        0x00,
5096                        \_SB.PCI0.LPC0.LNKA,
5097                        0x00
5098                    },
5099
5100                    Package (0x04)
5101                    {
5102                        0x0007FFFF,
5103                        0x01,
5104                        \_SB.PCI0.LPC0.LNKD,
5105                        0x00
5106                    }
5107                })
5108                Name (APIC, Package (0x06)
5109                {
5110                    Package (0x04)
5111                    {
5112                        0x0005FFFF,
5113                        0x00,
5114                        0x00,
5115                        0x12
5116                    },
5117
5118                    Package (0x04)
5119                    {
5120                        0x0005FFFF,
5121                        0x01,
5122                        0x00,
5123                        0x13
5124                    },
5125
5126                    Package (0x04)
5127                    {
5128                        0x0005FFFF,
5129                        0x02,
5130                        0x00,
5131                        0x10
5132                    },
5133
5134                    Package (0x04)
5135                    {
5136                        0x0005FFFF,
5137                        0x03,
5138                        0x00,
5139                        0x11
5140                    },
5141
5142                    Package (0x04)
5143                    {
5144                        0x0007FFFF,
5145                        0x00,
5146                        0x00,
5147                        0x10
5148                    },
5149
5150                    Package (0x04)
5151                    {
5152                        0x0007FFFF,
5153                        0x01,
5154                        0x00,
5155                        0x13
5156                    }
5157                })
5158                Method (_PRT, 0, NotSerialized)
5159                {
5160                    If (LNot (PICF))
5161                    {
5162                        Return (PICM)
5163                    }
5164                    Else
5165                    {
5166                        Return (APIC)
5167                    }
5168                }
5169            }
5170        }
5171
5172        OperationRegion (SXTM, SystemMemory, 0x000FFEA1, 0x04)
5173        Field (SXTM, WordAcc, NoLock, Preserve)
5174        {
5175            SMEM,   32
5176        }
5177
5178        Device (MEM)
5179        {
5180            Name (_HID, EisaId ("PNP0C01"))
5181            Method (_CRS, 0, NotSerialized)
5182            {
5183                Name (BUF0, ResourceTemplate ()
5184                {
5185                    Memory32Fixed (ReadWrite,
5186                        0x000F0000,         // Address Base
5187                        0x00004000,         // Address Length
5188                        _Y0C)
5189                    Memory32Fixed (ReadWrite,
5190                        0x000F4000,         // Address Base
5191                        0x00004000,         // Address Length
5192                        _Y0D)
5193                    Memory32Fixed (ReadWrite,
5194                        0x000F8000,         // Address Base
5195                        0x00004000,         // Address Length
5196                        _Y0E)
5197                    Memory32Fixed (ReadWrite,
5198                        0x000FC000,         // Address Base
5199                        0x00004000,         // Address Length
5200                        _Y0F)
5201                    Memory32Fixed (ReadWrite,
5202                        0x00000000,         // Address Base
5203                        0x00010000,         // Address Length
5204                        _Y0B)
5205                    Memory32Fixed (ReadWrite,
5206                        0xFFFF0000,         // Address Base
5207                        0x00010000,         // Address Length
5208                        )
5209                    Memory32Fixed (ReadWrite,
5210                        0x00000000,         // Address Base
5211                        0x000A0000,         // Address Length
5212                        )
5213                    Memory32Fixed (ReadWrite,
5214                        0x00100000,         // Address Base
5215                        0x00000000,         // Address Length
5216                        _Y10)
5217                    Memory32Fixed (ReadWrite,
5218                        0x00000000,         // Address Base
5219                        0x00000000,         // Address Length
5220                        _Y11)
5221                    Memory32Fixed (ReadWrite,
5222                        0xFEC00000,         // Address Base
5223                        0x00001000,         // Address Length
5224                        )
5225                    Memory32Fixed (ReadWrite,
5226                        0xFEE00000,         // Address Base
5227                        0x00001000,         // Address Length
5228                        )
5229                    Memory32Fixed (ReadWrite,
5230                        0xFFF80000,         // Address Base
5231                        0x00070000,         // Address Length
5232                        )
5233                })
5234                CreateDWordField (BUF0, \_SB.MEM._CRS._Y0B._BAS, ACMM)
5235                CreateDWordField (BUF0, \_SB.MEM._CRS._Y0B._LEN, ASSM)
5236                CreateDWordField (BUF0, \_SB.MEM._CRS._Y0C._BAS, RMA1)
5237                CreateDWordField (BUF0, \_SB.MEM._CRS._Y0C._LEN, RSS1)
5238                CreateDWordField (BUF0, \_SB.MEM._CRS._Y0D._BAS, RMA2)
5239                CreateDWordField (BUF0, \_SB.MEM._CRS._Y0D._LEN, RSS2)
5240                CreateDWordField (BUF0, \_SB.MEM._CRS._Y0E._BAS, RMA3)
5241                CreateDWordField (BUF0, \_SB.MEM._CRS._Y0E._LEN, RSS3)
5242                CreateDWordField (BUF0, \_SB.MEM._CRS._Y0F._BAS, RMA4)
5243                CreateDWordField (BUF0, \_SB.MEM._CRS._Y0F._LEN, RSS4)
5244                CreateDWordField (BUF0, \_SB.MEM._CRS._Y10._LEN, EXTM)
5245                CreateDWordField (BUF0, \_SB.MEM._CRS._Y11._BAS, SXT1)
5246                CreateDWordField (BUF0, \_SB.MEM._CRS._Y11._LEN, SXT2)
5247                If (LNotEqual (SMEM, Zero))
5248                {
5249                    Add (AMEM, 0x00010000, SXT1)
5250                    Add (SXT1, 0x00100000, SXT1)
5251                }
5252                Else
5253                {
5254                    Store (Zero, SXT1)
5255                }
5256
5257                Store (SMEM, SXT2)
5258                Subtract (AMEM, 0x00100000, EXTM)
5259                If (LNotEqual (ROM1, Zero))
5260                {
5261                    Store (RMA1, RMA2)
5262                    ShiftLeft (ROM1, 0x08, Local0)
5263                    Store (Local0, RMA1)
5264                    ShiftLeft (RMS1, 0x08, Local0)
5265                    Store (Local0, RSS1)
5266                    Store (0x8000, RSS2)
5267                }
5268
5269                If (LNotEqual (ROM2, Zero))
5270                {
5271                    Store (RMA2, RMA3)
5272                    ShiftLeft (ROM2, 0x08, Local0)
5273                    Store (Local0, RMA2)
5274                    ShiftLeft (RMS2, 0x08, Local0)
5275                    Store (Local0, RSS2)
5276                    Store (0xC000, RSS3)
5277                }
5278
5279                If (LNotEqual (ROM3, Zero))
5280                {
5281                    Store (RMA3, RMA4)
5282                    ShiftLeft (ROM3, 0x08, Local0)
5283                    Store (Local0, RMA3)
5284                    ShiftLeft (RMS3, 0x08, Local0)
5285                    Store (Local0, RSS3)
5286                    Store (0x00010000, RSS4)
5287                }
5288
5289                Store (AMEM, ACMM)
5290                And (AMEM, 0x000FFFFF, Local0)
5291                Subtract (0x00100000, Local0, ASSM)
5292                Return (BUF0)
5293            }
5294        }
5295
5296        Device (\_SB.PCI0.EXPL)
5297        {
5298            Name (_HID, EisaId ("PNP0C02"))
5299            Name (_UID, 0x04)
5300            Method (_CRS, 0, NotSerialized)
5301            {
5302                Name (BUF0, ResourceTemplate ()
5303                {
5304                    Memory32Fixed (ReadWrite,
5305                        0xE0000000,         // Address Base
5306                        0x10000000,         // Address Length
5307                        )
5308                })
5309                Return (BUF0)
5310            }
5311        }
5312    }
5313}
5314