14d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima/*
24d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima * Bochs/QEMU ACPI DSDT ASL definition
34d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima *
44d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima * Copyright (c) 2006 Fabrice Bellard
54d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima *
64d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima * This library is free software; you can redistribute it and/or
74d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima * modify it under the terms of the GNU Lesser General Public
84d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima * License version 2 as published by the Free Software Foundation.
94d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima *
104d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima * This library is distributed in the hope that it will be useful,
114d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima * but WITHOUT ANY WARRANTY; without even the implied warranty of
124d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
134d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima * Lesser General Public License for more details.
144d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima *
154d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima * You should have received a copy of the GNU Lesser General Public
164d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima * License along with this library; if not, write to the Free Software
174d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
184d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima */
194d07f569799aaae0d7fccf8e76386d450664987fJun NakajimaDefinitionBlock (
204d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    "acpi-dsdt.aml",    // Output Filename
214d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    "DSDT",             // Signature
224d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    0x01,               // DSDT Compliance Revision
234d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    "BXPC",             // OEMID
244d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    "BXDSDT",           // TABLE ID
254d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    0x1                 // OEM Revision
264d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    )
274d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima{
284d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    Scope (\)
294d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    {
304d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        /* Debug Output */
314d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        OperationRegion (DBG, SystemIO, 0xb044, 0x04)
324d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Field (DBG, DWordAcc, NoLock, Preserve)
334d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        {
344d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            DBGL,   32,
354d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        }
364d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    }
374d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
384d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
394d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    /* PCI Bus definition */
404d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    Scope(\_SB) {
414d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Device(PCI0) {
424d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Name (_HID, EisaId ("PNP0A03"))
434d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Name (_ADR, 0x00)
444d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Name (_UID, 1)
454d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Name(_PRT, Package() {
464d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                /* PCI IRQ routing table, example from ACPI 2.0a specification,
474d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                   section 6.2.8.1 */
484d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                /* Note: we provide the same info as the PCI routing
494d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                   table of the Bochs BIOS */
504d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define prt_slot(nr, lnk0, lnk1, lnk2, lnk3) \
514d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima       Package() { nr##ffff, 0, lnk0, 0 }, \
524d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima       Package() { nr##ffff, 1, lnk1, 0 }, \
534d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima       Package() { nr##ffff, 2, lnk2, 0 }, \
544d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima       Package() { nr##ffff, 3, lnk3, 0 }
554d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
564d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define prt_slot0(nr) prt_slot(nr, LNKD, LNKA, LNKB, LNKC)
574d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define prt_slot1(nr) prt_slot(nr, LNKA, LNKB, LNKC, LNKD)
584d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define prt_slot2(nr) prt_slot(nr, LNKB, LNKC, LNKD, LNKA)
594d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define prt_slot3(nr) prt_slot(nr, LNKC, LNKD, LNKA, LNKB)
604d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot0(0x0000),
614d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot1(0x0001),
624d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot2(0x0002),
634d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot3(0x0003),
644d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot0(0x0004),
654d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot1(0x0005),
664d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot2(0x0006),
674d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot3(0x0007),
684d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot0(0x0008),
694d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot1(0x0009),
704d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot2(0x000a),
714d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot3(0x000b),
724d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot0(0x000c),
734d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot1(0x000d),
744d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot2(0x000e),
754d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot3(0x000f),
764d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot0(0x0010),
774d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot1(0x0011),
784d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot2(0x0012),
794d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot3(0x0013),
804d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot0(0x0014),
814d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot1(0x0015),
824d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot2(0x0016),
834d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot3(0x0017),
844d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot0(0x0018),
854d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot1(0x0019),
864d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot2(0x001a),
874d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot3(0x001b),
884d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot0(0x001c),
894d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot1(0x001d),
904d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot2(0x001e),
914d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               prt_slot3(0x001f),
924d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            })
934d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
944d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            OperationRegion(PCST, SystemIO, 0xae00, 0x08)
954d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Field (PCST, DWordAcc, NoLock, WriteAsZeros)
964d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            {
974d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                PCIU, 32,
984d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                PCID, 32,
994d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            }
1004d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
1014d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            OperationRegion(SEJ, SystemIO, 0xae08, 0x04)
1024d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Field (SEJ, DWordAcc, NoLock, WriteAsZeros)
1034d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            {
1044d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                B0EJ, 32,
1054d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            }
1064d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
1074d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define hotplug_slot(name, nr) \
1084d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Device (S##name) {                    \
1094d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               Name (_ADR, nr##0000)              \
1104d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               Method (_EJ0,1) {                  \
1114d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Store(ShiftLeft(1, nr), B0EJ) \
1124d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Return (0x0)                  \
1134d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               }                                  \
1144d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima               Name (_SUN, name)                  \
1154d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            }
1164d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
1174d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(1, 0x0001)
1184d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(2, 0x0002)
1194d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(3, 0x0003)
1204d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(4, 0x0004)
1214d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(5, 0x0005)
1224d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(6, 0x0006)
1234d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(7, 0x0007)
1244d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(8, 0x0008)
1254d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(9, 0x0009)
1264d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(10, 0x000a)
1274d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(11, 0x000b)
1284d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(12, 0x000c)
1294d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(13, 0x000d)
1304d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(14, 0x000e)
1314d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(15, 0x000f)
1324d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(16, 0x0010)
1334d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(17, 0x0011)
1344d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(18, 0x0012)
1354d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(19, 0x0013)
1364d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(20, 0x0014)
1374d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(21, 0x0015)
1384d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(22, 0x0016)
1394d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(23, 0x0017)
1404d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(24, 0x0018)
1414d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(25, 0x0019)
1424d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(26, 0x001a)
1434d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(27, 0x001b)
1444d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(28, 0x001c)
1454d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(29, 0x001d)
1464d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(30, 0x001e)
1474d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    hotplug_slot(31, 0x001f)
1484d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
1494d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Name (_CRS, ResourceTemplate ()
1504d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            {
1514d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
1524d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0x0000,             // Address Space Granularity
1534d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0x0000,             // Address Range Minimum
1544d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0x00FF,             // Address Range Maximum
1554d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0x0000,             // Address Translation Offset
1564d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0x0100,             // Address Length
1574d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    ,, )
1584d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                IO (Decode16,
1594d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0x0CF8,             // Address Range Minimum
1604d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0x0CF8,             // Address Range Maximum
1614d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0x01,               // Address Alignment
1624d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0x08,               // Address Length
1634d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    )
1644d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
1654d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0x0000,             // Address Space Granularity
1664d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0x0000,             // Address Range Minimum
1674d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0x0CF7,             // Address Range Maximum
1684d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0x0000,             // Address Translation Offset
1694d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0x0CF8,             // Address Length
1704d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    ,, , TypeStatic)
1714d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
1724d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0x0000,             // Address Space Granularity
1734d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0x0D00,             // Address Range Minimum
1744d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0xFFFF,             // Address Range Maximum
1754d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0x0000,             // Address Translation Offset
1764d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0xF300,             // Address Length
1774d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    ,, , TypeStatic)
1784d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1794d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0x00000000,         // Address Space Granularity
1804d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0x000A0000,         // Address Range Minimum
1814d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0x000BFFFF,         // Address Range Maximum
1824d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0x00000000,         // Address Translation Offset
1834d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0x00020000,         // Address Length
1844d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    ,, , AddressRangeMemory, TypeStatic)
1854d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
1864d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0x00000000,         // Address Space Granularity
1874d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0xE0000000,         // Address Range Minimum
1884d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0xFEBFFFFF,         // Address Range Maximum
1894d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0x00000000,         // Address Translation Offset
1904d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0x1EC00000,         // Address Length
1914d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    ,, , AddressRangeMemory, TypeStatic)
1924d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            })
1934d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        }
1944d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#ifdef BX_QEMU
1954d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Device(HPET) {
1964d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Name(_HID,  EISAID("PNP0103"))
1974d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Name(_UID, 0)
1984d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Method (_STA, 0, NotSerialized) {
1994d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Return(0x0F)
2004d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            }
2014d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Name(_CRS, ResourceTemplate() {
2024d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                DWordMemory(
2034d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    ResourceConsumer, PosDecode, MinFixed, MaxFixed,
2044d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    NonCacheable, ReadWrite,
2054d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0x00000000,
2064d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0xFED00000,
2074d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0xFED003FF,
2084d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0x00000000,
2094d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    0x00000400 /* 1K memory: FED00000 - FED003FF */
2104d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                )
2114d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            })
2124d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        }
2134d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#endif
2144d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    }
2154d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
2164d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    Scope(\_SB.PCI0) {
2174d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Device (VGA) {
2184d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                 Name (_ADR, 0x00020000)
2194d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                 Method (_S1D, 0, NotSerialized)
2204d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                 {
2214d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                         Return (0x00)
2224d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                 }
2234d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                 Method (_S2D, 0, NotSerialized)
2244d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                 {
2254d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                         Return (0x00)
2264d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                 }
2274d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                 Method (_S3D, 0, NotSerialized)
2284d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                 {
2294d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                         Return (0x00)
2304d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                 }
2314d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        }
2324d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
2334d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	/* PIIX3 ISA bridge */
2344d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Device (ISA) {
2354d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Name (_ADR, 0x00010000)
2364d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
2374d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            /* PIIX PCI to ISA irq remapping */
2384d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            OperationRegion (P40C, PCI_Config, 0x60, 0x04)
2394d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
2404d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            /* Real-time clock */
2414d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Device (RTC)
2424d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            {
2434d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Name (_HID, EisaId ("PNP0B00"))
2444d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Name (_CRS, ResourceTemplate ()
2454d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                {
2464d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    IO (Decode16, 0x0070, 0x0070, 0x10, 0x02)
2474d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    IRQNoFlags () {8}
2484d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    IO (Decode16, 0x0072, 0x0072, 0x02, 0x06)
2494d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                })
2504d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            }
2514d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
2524d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            /* Keyboard seems to be important for WinXP install */
2534d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Device (KBD)
2544d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            {
2554d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Name (_HID, EisaId ("PNP0303"))
2564d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Method (_STA, 0, NotSerialized)
2574d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                {
2584d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Return (0x0f)
2594d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                }
2604d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
2614d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Method (_CRS, 0, NotSerialized)
2624d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                {
2634d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                     Name (TMP, ResourceTemplate ()
2644d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                     {
2654d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    IO (Decode16,
2664d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        0x0060,             // Address Range Minimum
2674d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        0x0060,             // Address Range Maximum
2684d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        0x01,               // Address Alignment
2694d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        0x01,               // Address Length
2704d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        )
2714d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    IO (Decode16,
2724d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        0x0064,             // Address Range Minimum
2734d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        0x0064,             // Address Range Maximum
2744d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        0x01,               // Address Alignment
2754d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        0x01,               // Address Length
2764d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        )
2774d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    IRQNoFlags ()
2784d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        {1}
2794d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    })
2804d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Return (TMP)
2814d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                }
2824d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            }
2834d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
2844d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    /* PS/2 mouse */
2854d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Device (MOU)
2864d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            {
2874d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Name (_HID, EisaId ("PNP0F13"))
2884d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Method (_STA, 0, NotSerialized)
2894d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                {
2904d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Return (0x0f)
2914d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                }
2924d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
2934d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Method (_CRS, 0, NotSerialized)
2944d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                {
2954d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Name (TMP, ResourceTemplate ()
2964d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    {
2974d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                         IRQNoFlags () {12}
2984d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    })
2994d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Return (TMP)
3004d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                }
3014d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            }
3024d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
3034d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    /* PS/2 floppy controller */
3044d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    Device (FDC0)
3054d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    {
3064d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	        Name (_HID, EisaId ("PNP0700"))
3074d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		Method (_STA, 0, NotSerialized)
3084d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		{
3094d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    Return (0x0F)
3104d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		}
3114d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		Method (_CRS, 0, NotSerialized)
3124d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		{
3134d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    Name (BUF0, ResourceTemplate ()
3144d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    {
3154d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        IO (Decode16, 0x03F2, 0x03F2, 0x00, 0x04)
3164d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        IO (Decode16, 0x03F7, 0x03F7, 0x00, 0x01)
3174d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        IRQNoFlags () {6}
3184d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        DMA (Compatibility, NotBusMaster, Transfer8) {2}
3194d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    })
3204d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    Return (BUF0)
3214d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		}
3224d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    }
3234d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
3244d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    /* Parallel port */
3254d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    Device (LPT)
3264d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    {
3274d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	        Name (_HID, EisaId ("PNP0400"))
3284d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		Method (_STA, 0, NotSerialized)
3294d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		{
3304d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    Store (\_SB.PCI0.PX13.DRSA, Local0)
3314d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    And (Local0, 0x80000000, Local0)
3324d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    If (LEqual (Local0, 0))
3334d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    {
3344d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima			Return (0x00)
3354d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    }
3364d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    Else
3374d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    {
3384d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima			Return (0x0F)
3394d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    }
3404d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		}
3414d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		Method (_CRS, 0, NotSerialized)
3424d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		{
3434d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    Name (BUF0, ResourceTemplate ()
3444d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    {
3454d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima			IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
3464d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima			IRQNoFlags () {7}
3474d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    })
3484d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    Return (BUF0)
3494d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		}
3504d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    }
3514d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
3524d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    /* Serial Ports */
3534d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    Device (COM1)
3544d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    {
3554d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	        Name (_HID, EisaId ("PNP0501"))
3564d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		Name (_UID, 0x01)
3574d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		Method (_STA, 0, NotSerialized)
3584d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		{
3594d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    Store (\_SB.PCI0.PX13.DRSC, Local0)
3604d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    And (Local0, 0x08000000, Local0)
3614d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    If (LEqual (Local0, 0))
3624d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    {
3634d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima			Return (0x00)
3644d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    }
3654d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    Else
3664d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    {
3674d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima			Return (0x0F)
3684d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    }
3694d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		}
3704d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		Method (_CRS, 0, NotSerialized)
3714d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		{
3724d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    Name (BUF0, ResourceTemplate ()
3734d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    {
3744d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima			IO (Decode16, 0x03F8, 0x03F8, 0x00, 0x08)
3754d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                	IRQNoFlags () {4}
3764d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    })
3774d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    Return (BUF0)
3784d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		}
3794d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    }
3804d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
3814d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    Device (COM2)
3824d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    {
3834d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	        Name (_HID, EisaId ("PNP0501"))
3844d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		Name (_UID, 0x02)
3854d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		Method (_STA, 0, NotSerialized)
3864d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		{
3874d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    Store (\_SB.PCI0.PX13.DRSC, Local0)
3884d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    And (Local0, 0x80000000, Local0)
3894d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    If (LEqual (Local0, 0))
3904d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    {
3914d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima			Return (0x00)
3924d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    }
3934d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    Else
3944d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    {
3954d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima			Return (0x0F)
3964d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    }
3974d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		}
3984d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		Method (_CRS, 0, NotSerialized)
3994d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		{
4004d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    Name (BUF0, ResourceTemplate ()
4014d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    {
4024d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima			IO (Decode16, 0x02F8, 0x02F8, 0x00, 0x08)
4034d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                	IRQNoFlags () {3}
4044d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    })
4054d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		    Return (BUF0)
4064d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		}
4074d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    }
4084d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        }
4094d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
4104d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	/* PIIX4 PM */
4114d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Device (PX13) {
4124d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    Name (_ADR, 0x00010003)
4134d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
4144d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    OperationRegion (P13C, PCI_Config, 0x5c, 0x24)
4154d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    Field (P13C, DWordAcc, NoLock, Preserve)
4164d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    {
4174d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		DRSA, 32,
4184d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		DRSB, 32,
4194d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		DRSC, 32,
4204d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		DRSE, 32,
4214d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		DRSF, 32,
4224d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		DRSG, 32,
4234d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		DRSH, 32,
4244d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		DRSI, 32,
4254d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima		DRSJ, 32
4264d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	    }
4274d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima	}
4284d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    }
4294d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
4304d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    /* PCI IRQs */
4314d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    Scope(\_SB) {
4324d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima         Field (\_SB.PCI0.ISA.P40C, ByteAcc, NoLock, Preserve)
4334d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima         {
4344d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima             PRQ0,   8,
4354d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima             PRQ1,   8,
4364d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima             PRQ2,   8,
4374d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima             PRQ3,   8
4384d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima         }
4394d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
4404d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Device(LNKA){
4414d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Name(_HID, EISAID("PNP0C0F"))     // PCI interrupt link
4424d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Name(_UID, 1)
4434d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Name(_PRS, ResourceTemplate(){
4444d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    IRQ (Level, ActiveLow, Shared)
4454d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        {3,4,5,6,7,9,10,11,12}
4464d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                })
4474d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Method (_STA, 0, NotSerialized)
4484d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                {
4494d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Store (0x0B, Local0)
4504d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    If (And (0x80, PRQ0, Local1))
4514d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    {
4524d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                         Store (0x09, Local0)
4534d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    }
4544d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Return (Local0)
4554d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                }
4564d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Method (_DIS, 0, NotSerialized)
4574d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                {
4584d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Or (PRQ0, 0x80, PRQ0)
4594d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                }
4604d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Method (_CRS, 0, NotSerialized)
4614d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                {
4624d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Name (PRR0, ResourceTemplate ()
4634d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    {
4644d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        IRQ (Level, ActiveLow, Shared)
4654d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                            {1}
4664d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    })
4674d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    CreateWordField (PRR0, 0x01, TMP)
4684d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Store (PRQ0, Local0)
4694d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    If (LLess (Local0, 0x80))
4704d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    {
4714d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        ShiftLeft (One, Local0, TMP)
4724d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    }
4734d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Else
4744d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    {
4754d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        Store (Zero, TMP)
4764d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    }
4774d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Return (PRR0)
4784d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                }
4794d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Method (_SRS, 1, NotSerialized)
4804d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                {
4814d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    CreateWordField (Arg0, 0x01, TMP)
4824d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    FindSetRightBit (TMP, Local0)
4834d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Decrement (Local0)
4844d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Store (Local0, PRQ0)
4854d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                }
4864d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        }
4874d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Device(LNKB){
4884d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Name(_HID, EISAID("PNP0C0F"))     // PCI interrupt link
4894d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Name(_UID, 2)
4904d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Name(_PRS, ResourceTemplate(){
4914d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    IRQ (Level, ActiveLow, Shared)
4924d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        {3,4,5,6,7,9,10,11,12}
4934d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                })
4944d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Method (_STA, 0, NotSerialized)
4954d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                {
4964d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Store (0x0B, Local0)
4974d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    If (And (0x80, PRQ1, Local1))
4984d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    {
4994d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                         Store (0x09, Local0)
5004d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    }
5014d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Return (Local0)
5024d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                }
5034d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Method (_DIS, 0, NotSerialized)
5044d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                {
5054d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Or (PRQ1, 0x80, PRQ1)
5064d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                }
5074d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Method (_CRS, 0, NotSerialized)
5084d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                {
5094d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Name (PRR0, ResourceTemplate ()
5104d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    {
5114d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        IRQ (Level, ActiveLow, Shared)
5124d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                            {1}
5134d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    })
5144d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    CreateWordField (PRR0, 0x01, TMP)
5154d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Store (PRQ1, Local0)
5164d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    If (LLess (Local0, 0x80))
5174d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    {
5184d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        ShiftLeft (One, Local0, TMP)
5194d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    }
5204d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Else
5214d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    {
5224d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        Store (Zero, TMP)
5234d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    }
5244d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Return (PRR0)
5254d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                }
5264d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Method (_SRS, 1, NotSerialized)
5274d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                {
5284d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    CreateWordField (Arg0, 0x01, TMP)
5294d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    FindSetRightBit (TMP, Local0)
5304d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Decrement (Local0)
5314d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Store (Local0, PRQ1)
5324d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                }
5334d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        }
5344d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Device(LNKC){
5354d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Name(_HID, EISAID("PNP0C0F"))     // PCI interrupt link
5364d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Name(_UID, 3)
5374d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Name(_PRS, ResourceTemplate(){
5384d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    IRQ (Level, ActiveLow, Shared)
5394d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        {3,4,5,6,7,9,10,11,12}
5404d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                })
5414d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Method (_STA, 0, NotSerialized)
5424d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                {
5434d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Store (0x0B, Local0)
5444d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    If (And (0x80, PRQ2, Local1))
5454d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    {
5464d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                         Store (0x09, Local0)
5474d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    }
5484d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Return (Local0)
5494d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                }
5504d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Method (_DIS, 0, NotSerialized)
5514d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                {
5524d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Or (PRQ2, 0x80, PRQ2)
5534d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                }
5544d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Method (_CRS, 0, NotSerialized)
5554d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                {
5564d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Name (PRR0, ResourceTemplate ()
5574d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    {
5584d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        IRQ (Level, ActiveLow, Shared)
5594d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                            {1}
5604d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    })
5614d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    CreateWordField (PRR0, 0x01, TMP)
5624d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Store (PRQ2, Local0)
5634d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    If (LLess (Local0, 0x80))
5644d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    {
5654d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        ShiftLeft (One, Local0, TMP)
5664d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    }
5674d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Else
5684d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    {
5694d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        Store (Zero, TMP)
5704d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    }
5714d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Return (PRR0)
5724d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                }
5734d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Method (_SRS, 1, NotSerialized)
5744d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                {
5754d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    CreateWordField (Arg0, 0x01, TMP)
5764d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    FindSetRightBit (TMP, Local0)
5774d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Decrement (Local0)
5784d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Store (Local0, PRQ2)
5794d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                }
5804d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        }
5814d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Device(LNKD){
5824d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Name(_HID, EISAID("PNP0C0F"))     // PCI interrupt link
5834d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Name(_UID, 4)
5844d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Name(_PRS, ResourceTemplate(){
5854d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    IRQ (Level, ActiveLow, Shared)
5864d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        {3,4,5,6,7,9,10,11,12}
5874d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                })
5884d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Method (_STA, 0, NotSerialized)
5894d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                {
5904d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Store (0x0B, Local0)
5914d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    If (And (0x80, PRQ3, Local1))
5924d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    {
5934d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                         Store (0x09, Local0)
5944d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    }
5954d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Return (Local0)
5964d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                }
5974d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Method (_DIS, 0, NotSerialized)
5984d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                {
5994d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Or (PRQ3, 0x80, PRQ3)
6004d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                }
6014d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Method (_CRS, 0, NotSerialized)
6024d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                {
6034d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Name (PRR0, ResourceTemplate ()
6044d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    {
6054d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        IRQ (Level, ActiveLow, Shared)
6064d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                            {1}
6074d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    })
6084d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    CreateWordField (PRR0, 0x01, TMP)
6094d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Store (PRQ3, Local0)
6104d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    If (LLess (Local0, 0x80))
6114d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    {
6124d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        ShiftLeft (One, Local0, TMP)
6134d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    }
6144d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Else
6154d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    {
6164d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                        Store (Zero, TMP)
6174d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    }
6184d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Return (PRR0)
6194d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                }
6204d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Method (_SRS, 1, NotSerialized)
6214d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                {
6224d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    CreateWordField (Arg0, 0x01, TMP)
6234d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    FindSetRightBit (TMP, Local0)
6244d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Decrement (Local0)
6254d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                    Store (Local0, PRQ3)
6264d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                }
6274d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        }
6284d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    }
6294d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
6304d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    /*
6314d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima     * S3 (suspend-to-ram), S4 (suspend-to-disk) and S5 (power-off) type codes:
6324d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima     * must match piix4 emulation.
6334d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima     */
6344d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    Name (\_S3, Package (0x04)
6354d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    {
6364d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        0x01,  /* PM1a_CNT.SLP_TYP */
6374d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        0x01,  /* PM1b_CNT.SLP_TYP */
6384d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Zero,  /* reserved */
6394d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Zero   /* reserved */
6404d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    })
6414d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    Name (\_S4, Package (0x04)
6424d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    {
6434d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Zero,  /* PM1a_CNT.SLP_TYP */
6444d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Zero,  /* PM1b_CNT.SLP_TYP */
6454d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Zero,  /* reserved */
6464d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Zero   /* reserved */
6474d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    })
6484d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    Name (\_S5, Package (0x04)
6494d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    {
6504d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Zero,  /* PM1a_CNT.SLP_TYP */
6514d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Zero,  /* PM1b_CNT.SLP_TYP */
6524d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Zero,  /* reserved */
6534d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Zero   /* reserved */
6544d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    })
6554d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
6564d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    Scope (\_GPE)
6574d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    {
6584d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Name(_HID, "ACPI0006")
6594d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
6604d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Method(_L00) {
6614d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Return(0x01)
6624d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        }
6634d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
6644d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima#define gen_pci_hotplug(nr)                                       \
6654d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            If (And(\_SB.PCI0.PCIU, ShiftLeft(1, nr))) {          \
6664d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Notify(\_SB.PCI0.S##nr, 1)                        \
6674d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            }                                                     \
6684d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            If (And(\_SB.PCI0.PCID, ShiftLeft(1, nr))) {          \
6694d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima                Notify(\_SB.PCI0.S##nr, 3)                        \
6704d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            }
6714d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
6724d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Method(_L01) {
6734d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(1)
6744d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(2)
6754d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(3)
6764d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(4)
6774d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(5)
6784d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(6)
6794d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(7)
6804d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(8)
6814d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(9)
6824d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(10)
6834d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(11)
6844d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(12)
6854d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(13)
6864d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(14)
6874d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(15)
6884d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(16)
6894d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(17)
6904d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(18)
6914d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(19)
6924d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(20)
6934d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(21)
6944d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(22)
6954d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(23)
6964d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(24)
6974d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(25)
6984d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(26)
6994d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(27)
7004d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(28)
7014d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(29)
7024d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(30)
7034d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            gen_pci_hotplug(31)
7044d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
7054d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Return (0x01)
7064d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
7074d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        }
7084d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Method(_L02) {
7094d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Return(0x01)
7104d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        }
7114d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Method(_L03) {
7124d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Return(0x01)
7134d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        }
7144d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Method(_L04) {
7154d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Return(0x01)
7164d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        }
7174d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Method(_L05) {
7184d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Return(0x01)
7194d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        }
7204d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Method(_L06) {
7214d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Return(0x01)
7224d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        }
7234d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Method(_L07) {
7244d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Return(0x01)
7254d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        }
7264d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Method(_L08) {
7274d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Return(0x01)
7284d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        }
7294d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Method(_L09) {
7304d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Return(0x01)
7314d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        }
7324d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Method(_L0A) {
7334d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Return(0x01)
7344d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        }
7354d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Method(_L0B) {
7364d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Return(0x01)
7374d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        }
7384d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Method(_L0C) {
7394d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Return(0x01)
7404d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        }
7414d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Method(_L0D) {
7424d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Return(0x01)
7434d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        }
7444d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Method(_L0E) {
7454d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Return(0x01)
7464d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        }
7474d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        Method(_L0F) {
7484d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima            Return(0x01)
7494d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima        }
7504d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima    }
7514d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima
7524d07f569799aaae0d7fccf8e76386d450664987fJun Nakajima}
753