freebsd-current

[Prev] Thread [Next]  |  [Prev] Date [Next]

Re: ACPI Panic on Current, AMD64 Timothy Mukaibo Wed May 27 05:00:56 2009

Hello Eygene,

I know the patch won't fix anything :(

Here's the updated dmesg:

acpi0: <Nvidia NVDAACPI> on motherboard
acpi0:  [ITHREAD]
acpi0:  Power Button (fixed)
acpi0:  reservation of 0, a000 (3) failed
acpi0:  reservation of 100000, bfdf0000 (3) failed
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port  0x1008-0x100b on acpi0
acip_button0: <Power Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI Host PCI bus> on pcib0
pci_link26:      Index  IRQ  Rtd   Ref  IRQs
    MPASS               0    20      N       1  20 21 22 23
link type is 15
panic: Assertion link->l_prs_template.Type == ACPI_RESOURCE_TYPE_IRQ failed at /usr/src/sys/dev/acpica/acpi_pci_link.c:746
cpuid = 0
KDB: enter: panic
[thread pid 0 tid 100000 ]
Stopped at     kdb_enter+0x3d: movq $0,0x677da0(%rip)

Here's acpidump -dt from the machine running a recent 7.2-Stable. I can't get this from 8.0-Current because of the crash (right?). I can email this as an attachment if that would be easier.

Thanks,
Timothy.

/*
  RSD PTR: OEM=Nvidia, ACPI_Rev=1.0x (0)
        RSDT=0xbfef3010, cksum=152
 */
/*
  RSDT: Length=56, Revision=1, Checksum=90,
        OEMID=Nvidia, OEM Table ID=NVDAACPI, OEM Revision=0x42302e31,
        Creator ID=NVDA, Creator Revision=0x0
        Entries={ 0xbfef3060, 0xbfef9b10, 0xbfef9da0, 0xbfef9df0, 0xbfef9a90 }
 */
/*
  FACP: Length=116, Revision=1, Checksum=190,
        OEMID=Nvidia, OEM Table ID=NVDAACPI, OEM Revision=0x42302e31,
        Creator ID=NVDA, Creator Revision=0x0
        FACS=0xbfef0000, DSDT=0xbfef30e0
        INT_MODEL=APIC
        Preferred_PM_Profile=Unspecified (0)
        SCI_INT=9
        SMI_CMD=0x142e, ACPI_ENABLE=0xa1, ACPI_DISABLE=0xa0, S4BIOS_REQ=0x0
        PSTATE_CNT=0x0
        PM1a_EVT_BLK=0x1000-0x1003
        PM1a_CNT_BLK=0x1004-0x1005
        PM2_CNT_BLK=0x1480-0x1480
        PM_TMR_BLK=0x1008-0x100b
        GPE0_BLK=0x1020-0x1027
        GPE1_BLK=0x14a0-0x14af, GPE1_BASE=32
        P_LVL2_LAT=101 us, P_LVL3_LAT=1001 us
        FLUSH_SIZE=0, FLUSH_STRIDE=0
        DUTY_OFFSET=1, DUTY_WIDTH=0
        DAY_ALRM=125, MON_ALRM=126, CENTURY=50
        IAPC_BOOT_ARCH=
        Flags={WBINVD,PROC_C1,SLP_BUTTON,RTC_S4,RESET_REG}
        RESET_REG=0x00000000:0[0] (Memory), RESET_VALUE=0x44
 */
/*
  FACS: Length=64, HwSig=0x00000000, Firm_Wake_Vec=0x00000000
        Global_Lock=
        Flags=
        Version=0
 */
/*
  DSDT: Length=27040, Revision=1, Checksum=241,
        OEMID=NVIDIA, OEM Table ID=AWRDACPI, OEM Revision=0x1000,
        Creator ID=MSFT, Creator Revision=0x3000000
 */
/*
  SSDT: Length=584, Revision=1, Checksum=49,
        OEMID=PTLTD, OEM Table ID=POWERNOW, OEM Revision=0x1,
        Creator ID= LTP, Creator Revision=0x1
 */
/*
  WDRT: Length=71, Revision=1, Checksum=48,
        OEMID=Nvidia, OEM Table ID=NVDAACPI, OEM Revision=0x42302e31,
        Creator ID=NVDA, Creator Revision=0x0
 */
/*
  MCFG: Length=60, Revision=1, Checksum=44,
        OEMID=Nvidia, OEM Table ID=NVDAACPI, OEM Revision=0x42302e31,
        Creator ID=NVDA, Creator Revision=0x0

        Base Address= 0x00000000e0000000
        Segment Group= 0x0000
        Start Bus= 0
        End Bus= 255
 */
/*
  APIC: Length=124, Revision=1, Checksum=85,
        OEMID=Nvidia, OEM Table ID=NVDAACPI, OEM Revision=0x42302e31,
        Creator ID=NVDA, Creator Revision=0x0
        Local APIC ADDR=0xfee00000
        Flags={PC-AT}

        Type=Local APIC
        ACPI CPU=0
        Flags={ENABLED}
        APIC ID=0

        Type=Local APIC
        ACPI CPU=1
        Flags={ENABLED}
        APIC ID=1

        Type=IO APIC
        APIC ID=2
        INT BASE=0
        ADDR=0x00000000fec00000

        Type=INT Override
        BUS=0
        IRQ=0
        INTR=2
        Flags={Polarity=conforming, Trigger=conforming}

        Type=INT Override
        BUS=0
        IRQ=9
        INTR=9
        Flags={Polarity=active-hi, Trigger=level}

        Type=INT Override
        BUS=0
        IRQ=14
        INTR=14
        Flags={Polarity=active-hi, Trigger=edge}

        Type=INT Override
        BUS=0
        IRQ=15
        INTR=15
        Flags={Polarity=active-hi, Trigger=edge}

        Type=Local NMI
        ACPI CPU=0
        LINT Pin=1
        Flags={Polarity=active-hi, Trigger=edge}

        Type=Local NMI
        ACPI CPU=1
        LINT Pin=1
        Flags={Polarity=active-hi, Trigger=edge}
 */
/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20070320
 *
 * Disassembly of /tmp/acpidump.tM8i3U, Wed May 27 18:57:19 2009
 *
 *
 * Original Table Header:
 *     Signature        "DSDT"
 *     Length           0x00006BC4 (27588)
 *     Revision         0x01
 *     OEM ID           "NVIDIA"
 *     OEM Table ID     "AWRDACPI"
 *     OEM Revision     0x00001000 (4096)
 *     Creator ID       "MSFT"
 *     Creator Revision 0x03000000 (50331648)
 */
DefinitionBlock ("/tmp/acpidump.aml", "DSDT", 1, "NVIDIA", "AWRDACPI", 0x00001000)
{
    Scope (\_PR)
    {
        Processor (\_PR.CPU0, 0x00, 0x00001010, 0x06) {}
        Processor (\_PR.CPU1, 0x01, 0x00000000, 0x00) {}
    }

    Name (\_S0, Package (0x04)
    {
        0x00,
        0x00,
        0x00,
        0x00
    })
    Name (\_S1, Package (0x04)
    {
        0x01,
        0x00,
        0x00,
        0x00
    })
    Name (\_S3, Package (0x04)
    {
        0x05,
        0x00,
        0x00,
        0x00
    })
    Name (\_S4, Package (0x04)
    {
        0x06,
        0x00,
        0x00,
        0x00
    })
    Name (\_S5, Package (0x04)
    {
        0x07,
        0x00,
        0x00,
        0x00
    })
    OperationRegion (\DEBG, SystemIO, 0x80, 0x01)
    Field (\DEBG, ByteAcc, NoLock, Preserve)
    {
        DBG1,   8
    }

    OperationRegion (KBC, SystemIO, 0x64, 0x01)
    Field (KBC, ByteAcc, NoLock, Preserve)
    {
        KCMD,   8
    }

    OperationRegion (KBCD, SystemIO, 0x60, 0x01)
    Field (KBCD, ByteAcc, NoLock, Preserve)
    {
        KDAT,   8
    }

    OperationRegion (EXTM, SystemMemory, 0x000FF830, 0x10)
    Field (EXTM, WordAcc, NoLock, Preserve)
    {
        ROM1,   16,
        RMS1,   16,
        ROM2,   16,
        RMS2,   16,
        ROM3,   16,
        RMS3,   16,
        AMEM,   32
    }

    OperationRegion (\PM1S, SystemIO, 0x1000, 0x02)
    Field (\PM1S, ByteAcc, NoLock, Preserve)
    {
                Offset (0x01),
        PBTS,   1,
            ,   1,
        RTCS,   1,
            ,   4,
        WAKS,   1
    }

    OperationRegion (ELCR, SystemIO, 0x04D0, 0x02)
    Field (ELCR, ByteAcc, NoLock, Preserve)
    {
        ELC1,   8,
        ELC2,   8
    }

    OperationRegion (\STUS, SystemIO, 0x1400, 0x04)
    Field (\STUS, ByteAcc, NoLock, Preserve)
    {
        G_ST,   32
    }

    OperationRegion (\GPS0, SystemIO, 0x1020, 0x04)
    Field (\GPS0, ByteAcc, NoLock, Preserve)
    {
        GS00,   8,
        GS01,   8,
        GS02,   8,
        GS03,   8
    }

    OperationRegion (\P20S, SystemIO, 0x1020, 0x04)
    Field (\P20S, ByteAcc, NoLock, Preserve)
    {
        P_20,   32
    }

    OperationRegion (\SMIC, SystemIO, 0x142E, 0x01)
    Field (\SMIC, ByteAcc, NoLock, Preserve)
    {
        SCP,    8
    }

    OperationRegion (\GP1, SystemIO, 0x14C0, 0x32)
    Field (\GP1, ByteAcc, NoLock, Preserve)
    {
        GP00,   8,
        GP01,   8,
        GP02,   8,
        GP03,   8,
        GP04,   8,
        GP05,   8,
        GP06,   8,
        GP07,   8,
        GP08,   8,
        GP09,   8,
        GP10,   8,
        GP11,   8,
        GP12,   8,
        GP13,   8,
        GP14,   8,
        GP15,   8,
        GP16,   8,
        GP17,   8,
        GP18,   8,
        GP19,   8,
        GP20,   8,
        GP21,   8,
        GP22,   8,
                Offset (0x18),
        GP24,   8,
        GP25,   8,
        GP26,   8,
        GP27,   8,
        GP28,   8,
        GP29,   8,
        GP30,   8,
        GP31,   8,
        GP32,   8,
        GP33,   8,
        GP34,   8,
        GP35,   8,
        GP36,   8,
        GP37,   8,
        GP38,   8,
        GP39,   8,
        GP40,   8,
        GP41,   8,
        GP42,   8,
        GP43,   8,
        GP44,   8,
        GP45,   8,
        GP46,   8,
        GP47,   8,
        GP48,   8,
        GP49,   8
    }

    Name (OSFX, 0x01)
    Name (OSFL, 0x01)
    Method (STRC, 2, NotSerialized)
    {
        If (LNotEqual (SizeOf (Arg0), SizeOf (Arg1)))
        {
            Return (0x00)
        }

        Add (SizeOf (Arg0), 0x01, Local0)
        Name (BUF0, Buffer (Local0) {})
        Name (BUF1, Buffer (Local0) {})
        Store (Arg0, BUF0)
        Store (Arg1, BUF1)
        While (Local0)
        {
            Decrement (Local0)
If (LNotEqual (DerefOf (Index (BUF0, Local0)), DerefOf (Index (
                BUF1, Local0))))
            {
                Return (Zero)
            }
        }

        Return (One)
    }

    OperationRegion (RTCM, SystemIO, 0x70, 0x02)
    Field (RTCM, ByteAcc, NoLock, Preserve)
    {
        CMIN,   8,
        CMDA,   8
    }

    IndexField (CMIN, CMDA, ByteAcc, NoLock, Preserve)
    {
                Offset (0x0F),
        SHUT,   8
    }

    OperationRegion (INFO, SystemMemory, 0x000FF840, 0x01)
    Field (INFO, ByteAcc, NoLock, Preserve)
    {
        KBDI,   1,
        RTCW,   1,
        PS2F,   1,
        IRFL,   2,
        DISE,   1,
        SSHU,   1
    }

    OperationRegion (BEEP, SystemIO, 0x61, 0x01)
    Field (BEEP, ByteAcc, NoLock, Preserve)
    {
        S1B,    8
    }

    OperationRegion (CONT, SystemIO, 0x40, 0x04)
    Field (CONT, ByteAcc, NoLock, Preserve)
    {
        CNT0,   8,
        CNT1,   8,
        CNT2,   8,
        CTRL,   8
    }

    Method (SPKR, 1, NotSerialized)
    {
        Store (S1B, Local0)
        Store (0xB6, CTRL)
        Store (0x55, CNT2)
        Store (0x03, CNT2)
        Store (Arg0, Local2)
        While (LGreater (Local2, 0x00))
        {
            Or (S1B, 0x03, S1B)
            Store (0x5FFF, Local3)
            While (LGreater (Local3, 0x00))
            {
                Decrement (Local3)
            }

            And (S1B, 0xFC, S1B)
            Store (0x0EFF, Local3)
            While (LGreater (Local3, 0x00))
            {
                Decrement (Local3)
            }

            Decrement (Local2)
        }

        Store (Local0, S1B)
    }

    Scope (\)
    {
        Name (PICF, 0x00)
        Method (_PIC, 1, NotSerialized)
        {
            Store (Arg0, PICF)
        }
    }

    Name (SID4, 0x00)
    Name (SLG0, 0x00)
    Name (SLG1, 0x00)
    Name (SLG2, 0x00)
    Name (SLG3, 0x00)
    Name (SLG4, 0x00)
    Name (SLG5, 0x00)
    Name (SLG6, 0x00)
    Name (SLG7, 0x00)
    Name (SLG8, 0x00)
    Name (SLG9, 0x00)
    Name (SLGA, 0x00)
    Name (SID5, 0x00)
    Name (SSM0, 0x00)
    Name (SSM1, 0x00)
    Name (SSM2, 0x00)
    Name (SSM3, 0x00)
    Name (SSM4, 0x00)
    Name (SUA0, 0x00)
    Name (SUB0, 0x00)
    Name (SX, 0x00)
    Name (SFLG, 0x00)
    Name (SID0, 0x00)
    Name (SID1, 0x00)
    Name (SID2, 0x00)
    Name (SID3, 0x00)
    Method (\_PTS, 1, NotSerialized)
    {
        Store (Arg0, Local0)
        Store (Local0, SX)
        Or (Arg0, 0xF0, Local0)
        Store (Local0, DBG1)
        OSTP ()
        Store (\_SB.PCI0.IDE0.ID20, SID0)
        Store (\_SB.PCI0.IDE0.IDTS, SID1)
        Store (\_SB.PCI0.IDE0.IDTP, SID2)
        Store (\_SB.PCI0.IDE0.ID22, SID3)
        Store (\_SB.PCI0.IDE0.UMSS, SID4)
        Store (\_SB.PCI0.IDE0.UMSP, SID5)
        If (LEqual (Arg0, 0x01)) {}
        If (LEqual (Arg0, 0x03)) {}
        If (LEqual (Arg0, 0x04)) {}
        If (LEqual (Arg0, 0x05))
        {
            If (LNotEqual (OSFL, 0x00))
            {
                Sleep (0x01F4)
            }
        }
    }

    Method (\_WAK, 1, NotSerialized)
    {
        Store (0xFF, DBG1)
        Store (0x00, SFLG)
        If (LEqual (RTCW, 0x00))
        {
            Notify (\_SB.PWRB, 0x02)
        }

        Notify (\_SB.PCI0.USB0, 0x00)
        If (LGreaterEqual (OSFL, 0x01))
        {
            Store (0x00, \_SB.PCI0.SMB0.SMPM)
        }
    }

    Scope (\_SI)
    {
        Method (_MSG, 1, NotSerialized)
        {
            Store ("==== MSG Working ====", Debug)
        }

        Method (_SST, 1, NotSerialized)
        {
            Store ("==== SST Working ====", Debug)
        }
    }

    Scope (\_GPE)
    {
        Method (_L11, 0, NotSerialized)
        {
            Store (0x02, GS02)
            If (LNotEqual (PEVA, 0xFFFF))
            {
                If (PESA)
                {
                    While (PESA)
                    {
                        Store (0x01, PESA)
                    }

                    Notify (\_SB.PCI0.MXR0, 0x02)
                }
            }

            If (LNotEqual (PEVB, 0xFFFF))
            {
                If (PESB)
                {
                    While (PESB)
                    {
                        Store (0x01, PESB)
                    }

                    Notify (\_SB.PCI0.MXR1, 0x02)
                }
            }

            If (LNotEqual (PEVC, 0xFFFF))
            {
                If (PESC)
                {
                    While (PESC)
                    {
                        Store (0x01, PESC)
                    }

                    Notify (\_SB.PCI0.MXR2, 0x02)
                }
            }

            If (LNotEqual (PEVD, 0xFFFF))
            {
                If (PESD)
                {
                    While (PESD)
                    {
                        Store (0x01, PESD)
                    }

                    Notify (\_SB.PCI0.MXR3, 0x02)
                }
            }

            If (LNotEqual (PEVE, 0xFFFF))
            {
                If (PESE)
                {
                    While (PESE)
                    {
                        Store (0x01, PESE)
                    }

                    Notify (\_SB.PCI0.MXR4, 0x02)
                }
            }

            If (LNotEqual (PEVF, 0xFFFF))
            {
                If (PESF)
                {
                    While (PESF)
                    {
                        Store (0x01, PESF)
                    }

                    Notify (\_SB.PCI0.MXR5, 0x02)
                }
            }
        }

        Method (_L00, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.HUB0, 0x02)
        }

        Method (_L03, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.UAR1, 0x02)
        }

        Method (_L0A, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.MAC1, 0x02)
        }

        Method (_L0B, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.MMAC, 0x02)
        }

        Method (_L0D, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB0, 0x02)
        }

        Method (_L05, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB2, 0x02)
        }

        Method (_L10, 0, NotSerialized)
        {
            \_SB.PCI0.PS2W ()
        }

        Method (_L15, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.AZA, 0x02)
        }
    }

    Scope (\_SB)
    {
        Device (MBIO)
        {
            Name (_HID, EisaId ("PNP0C02"))
            Name (_UID, 0x05)
            Name (_CRS, ResourceTemplate ()
            {
                IO (Decode16,
                    0x1000,             // Range Minimum
                    0x1000,             // Range Maximum
                    0x01,               // Alignment
                    0x80,               // Length
                    )
                IO (Decode16,
                    0x1080,             // Range Minimum
                    0x1080,             // Range Maximum
                    0x01,               // Alignment
                    0x80,               // Length
                    )
                IO (Decode16,
                    0x1400,             // Range Minimum
                    0x1400,             // Range Maximum
                    0x01,               // Alignment
                    0x80,               // Length
                    )
                IO (Decode16,
                    0x1480,             // Range Minimum
                    0x1480,             // Range Maximum
                    0x01,               // Alignment
                    0x80,               // Length
                    )
                IO (Decode16,
                    0x1800,             // Range Minimum
                    0x1800,             // Range Maximum
                    0x01,               // Alignment
                    0x80,               // Length
                    )
                IO (Decode16,
                    0x1880,             // Range Minimum
                    0x1880,             // Range Maximum
                    0x01,               // Alignment
                    0x80,               // Length
                    )
            })
        }

        Device (PWRB)
        {
            Name (_HID, EisaId ("PNP0C0C"))
            Method (_STA, 0, NotSerialized)
            {
                Return (0x0B)
            }
        }

        Device (PCI0)
        {
            Name (_HID, EisaId ("PNP0A08"))
            Name (_CID, 0x030AD041)
            Name (_ADR, 0x00)
            Name (_UID, 0x01)
            Name (_BBN, 0x00)
            Name (PCIA, 0x00)
            Method (_REG, 2, NotSerialized)
            {
                If (LEqual (Arg0, 0x02))
                {
                    Store (Arg1, PCIA)
                }
            }

            Name (NATA, Package (0x01)
            {
                0x000C0000
            })
            Method (_S3D, 0, NotSerialized)
            {
                If (LEqual (OSFL, 0x02))
                {
                    Return (0x02)
                }
                Else
                {
                    Return (0x03)
                }
            }

            Name (SUPP, 0x00)
            Name (CTRL, 0x00)
            Method (_OSC, 4, NotSerialized)
            {
                CreateDWordField (Arg3, 0x00, CDW1)
                If (LEqual (Arg0, Buffer (0x10)
                        {
/* 0000 */ 0x5B, 0x4D, 0xDB, 0x33, 0xF7, 0x1F, 0x1C, 0x40, /* 0008 */ 0x96, 0x57, 0x74, 0x41, 0xC0, 0x3D, 0xD7, 0x66
                        }))
                {
                    Return (Arg3)
                }
                Else
                {
                    Or (CDW1, 0x04, CDW1)
                    Return (Arg3)
                }
            }

            Method (_STA, 0, NotSerialized)
            {
                Return (0x0F)
            }

            OperationRegion (LDT3, PCI_Config, 0x6C, 0x04)
            Field (LDT3, DWordAcc, NoLock, Preserve)
            {
                UCFG,   32
            }

            Method (_CRS, 0, NotSerialized)
            {
                Name (BUF0, ResourceTemplate ()
                {
WordBusNumber (ResourceProducer, MinNotFixed, MaxNotFixed, PosDecode,
                        0x0000,             // Granularity
                        0x0000,             // Range Minimum
                        0x0000,             // Range Maximum
                        0x0000,             // Translation Offset
                        0x0000,             // Length
                        ,, _Y00)
                    IO (Decode16,
                        0x0CF8,             // Range Minimum
                        0x0CF8,             // Range Maximum
                        0x01,               // Alignment
                        0x08,               // Length
                        )
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                        0x0000,             // Granularity
                        0x0000,             // Range Minimum
                        0x03AF,             // Range Maximum
                        0x0000,             // Translation Offset
                        0x03B0,             // Length
                        ,, , TypeStatic)
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                        0x0000,             // Granularity
                        0x03E0,             // Range Minimum
                        0x0CF7,             // Range Maximum
                        0x0000,             // Translation Offset
                        0x0918,             // Length
                        ,, , TypeStatic)
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                        0x0000,             // Granularity
                        0x0000,             // Range Minimum
                        0x0000,             // Range Maximum
                        0x0000,             // Translation Offset
                        0x0000,             // Length
                        ,, _Y01, TypeStatic)
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                        0x0000,             // Granularity
                        0x0000,             // Range Minimum
                        0x0000,             // Range Maximum
                        0x0000,             // Translation Offset
                        0x0000,             // Length
                        ,, _Y02, TypeStatic)
QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                        0x0000000000000000, // Granularity
                        0x0000000000000000, // Range Minimum
                        0x0000000000000000, // Range Maximum
                        0x0000000000000000, // Translation Offset
                        0x0000000000000000, // Length
                        ,, _Y03, AddressRangeMemory, TypeStatic)
QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                        0x0000000000000000, // Granularity
                        0x0000000000000000, // Range Minimum
                        0x0000000000000000, // Range Maximum
                        0x0000000000000000, // Translation Offset
                        0x0000000000000000, // Length
                        ,, _Y04, AddressRangeMemory, TypeStatic)
QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                        0x0000000000000000, // Granularity
                        0x0000000000000000, // Range Minimum
                        0x0000000000000000, // Range Maximum
                        0x0000000000000000, // Translation Offset
                        0x0000000000000000, // Length
                        ,, _Y05, AddressRangeMemory, TypeStatic)
                })
                CreateWordField (BUF0, \_SB.PCI0._CRS._Y00._MIN, B1MN)
                CreateWordField (BUF0, \_SB.PCI0._CRS._Y00._MAX, B1MX)
                CreateWordField (BUF0, \_SB.PCI0._CRS._Y00._LEN, B1LN)
                And (\_SB.PCI0.K801.L0EN, 0x03, Local0)
                If (LEqual (Local0, 0x03))
                {
                    And (\_SB.PCI0.K801.DL00, 0x03, Local0)
                    If (LEqual (Local0, 0x00))
                    {
                        Store (\_SB.PCI0.K801.BNB0, B1MN)
                        Store (\_SB.PCI0.K801.BNL0, B1MX)
                        Subtract (B1MX, B1MN, Local1)
                        Add (0x01, Local1, B1LN)
                    }
                }

                And (\_SB.PCI0.K801.L1EN, 0x03, Local0)
                If (LEqual (Local0, 0x03))
                {
                    And (\_SB.PCI0.K801.DL01, 0x03, Local0)
                    If (LEqual (Local0, 0x00))
                    {
                        Store (\_SB.PCI0.K801.BNB1, B1MN)
                        Store (\_SB.PCI0.K801.BNL1, B1MX)
                        Subtract (B1MX, B1MN, Local1)
                        Add (0x01, Local1, B1LN)
                    }
                }

                And (\_SB.PCI0.K801.L2EN, 0x03, Local0)
                If (LEqual (Local0, 0x03))
                {
                    And (\_SB.PCI0.K801.DL02, 0x03, Local0)
                    If (LEqual (Local0, 0x00))
                    {
                        Store (\_SB.PCI0.K801.BNB2, B1MN)
                        Store (\_SB.PCI0.K801.BNL2, B1MX)
                        Subtract (B1MX, B1MN, Local1)
                        Add (0x01, Local1, B1LN)
                    }
                }

                And (\_SB.PCI0.K801.L3EN, 0x03, Local0)
                If (LEqual (Local0, 0x03))
                {
                    And (\_SB.PCI0.K801.DL03, 0x03, Local0)
                    If (LEqual (Local0, 0x00))
                    {
                        Store (\_SB.PCI0.K801.BNB3, B1MN)
                        Store (\_SB.PCI0.K801.BNL3, B1MX)
                        Subtract (B1MX, B1MN, Local1)
                        Add (0x01, Local1, B1LN)
                    }
                }

                CreateWordField (BUF0, \_SB.PCI0._CRS._Y01._MIN, IOMN)
                CreateWordField (BUF0, \_SB.PCI0._CRS._Y01._MAX, IOMX)
                CreateWordField (BUF0, \_SB.PCI0._CRS._Y01._LEN, IOLN)
                CreateWordField (BUF0, \_SB.PCI0._CRS._Y02._MIN, VIMN)
                CreateWordField (BUF0, \_SB.PCI0._CRS._Y02._MAX, VIMX)
                CreateWordField (BUF0, \_SB.PCI0._CRS._Y02._LEN, VILN)
                And (\_SB.PCI0.K801.IB00, 0x03, Local0)
                And (\_SB.PCI0.K801.IL00, 0x30, Local1)
                ShiftRight (Local1, 0x04, Local1)
                If (LEqual (Local0, 0x03))
                {
                    If (LEqual (Local1, 0x00))
                    {
                        And (\_SB.PCI0.K801.IB00, 0x10, Local1)
                        ShiftLeft (\_SB.PCI0.K801.IBV0, 0x0C, IOMN)
                        ShiftLeft (\_SB.PCI0.K801.ILV0, 0x0C, IOMX)
                        Or (IOMX, 0x0FFF, IOMX)
                        Subtract (IOMX, IOMN, IOLN)
                        Increment (IOLN)
                        If (LEqual (Local1, 0x10))
                        {
                            Store (0x03B0, VIMN)
                            Store (0x03DF, VIMX)
                            Store (0x30, VILN)
                        }
                    }
                }

                And (\_SB.PCI0.K801.IB01, 0x03, Local0)
                And (\_SB.PCI0.K801.IL01, 0x30, Local1)
                ShiftRight (Local1, 0x04, Local1)
                If (LEqual (Local0, 0x03))
                {
                    If (LEqual (Local1, 0x00))
                    {
                        And (\_SB.PCI0.K801.IB01, 0x10, Local1)
                        ShiftLeft (\_SB.PCI0.K801.IBV1, 0x0C, IOMN)
                        ShiftLeft (\_SB.PCI0.K801.ILV1, 0x0C, IOMX)
                        Or (IOMX, 0x0FFF, IOMX)
                        Subtract (IOMX, IOMN, IOLN)
                        Increment (IOLN)
                        If (LEqual (Local1, 0x10))
                        {
                            Store (0x03B0, VIMN)
                            Store (0x03DF, VIMX)
                            Store (0x30, VILN)
                        }
                    }
                }

                And (\_SB.PCI0.K801.IB02, 0x03, Local0)
                And (\_SB.PCI0.K801.IL02, 0x30, Local1)
                ShiftRight (Local1, 0x04, Local1)
                If (LEqual (Local0, 0x03))
                {
                    If (LEqual (Local1, 0x00))
                    {
                        And (\_SB.PCI0.K801.IB02, 0x10, Local1)
                        ShiftLeft (\_SB.PCI0.K801.IBV2, 0x0C, IOMN)
                        ShiftLeft (\_SB.PCI0.K801.ILV2, 0x0C, IOMX)
                        Or (IOMX, 0x0FFF, IOMX)
                        Subtract (IOMX, IOMN, IOLN)
                        Increment (IOLN)
                        If (LEqual (Local1, 0x10))
                        {
                            Store (0x03B0, VIMN)
                            Store (0x03DF, VIMX)
                            Store (0x30, VILN)
                        }
                    }
                }

                And (\_SB.PCI0.K801.IB03, 0x03, Local0)
                And (\_SB.PCI0.K801.IL03, 0x30, Local1)
                ShiftRight (Local1, 0x04, Local1)
                If (LEqual (Local0, 0x03))
                {
                    If (LEqual (Local1, 0x00))
                    {
                        And (\_SB.PCI0.K801.IB03, 0x10, Local1)
                        ShiftLeft (\_SB.PCI0.K801.IBV3, 0x0C, IOMN)
                        ShiftLeft (\_SB.PCI0.K801.ILV3, 0x0C, IOMX)
                        Or (IOMX, 0x0FFF, IOMX)
                        Subtract (IOMX, IOMN, IOLN)
                        Increment (IOLN)
                        If (LEqual (Local1, 0x10))
                        {
                            Store (0x03B0, VIMN)
                            Store (0x03DF, VIMX)
                            Store (0x30, VILN)
                        }
                    }
                }

                CreateDWordField (BUF0, \_SB.PCI0._CRS._Y03._MIN, M0MN)
                CreateDWordField (BUF0, \_SB.PCI0._CRS._Y03._MAX, M0MX)
                CreateDWordField (BUF0, \_SB.PCI0._CRS._Y03._LEN, M0LN)
                CreateDWordField (BUF0, \_SB.PCI0._CRS._Y04._MIN, M1MN)
                CreateDWordField (BUF0, \_SB.PCI0._CRS._Y04._MAX, M1MX)
                CreateDWordField (BUF0, \_SB.PCI0._CRS._Y04._LEN, M1LN)
                CreateDWordField (BUF0, \_SB.PCI0._CRS._Y05._MIN, M2MN)
                CreateDWordField (BUF0, \_SB.PCI0._CRS._Y05._MAX, M2MX)
                CreateDWordField (BUF0, \_SB.PCI0._CRS._Y05._LEN, M2LN)
                And (\_SB.PCI0.K801.MB00, 0x03, Local0)
                And (\_SB.PCI0.K801.ML00, 0x30, Local1)
                ShiftRight (Local1, 0x04, Local1)
                If (LEqual (Local0, 0x03))
                {
                    And (\_SB.PCI0.K801.ML00, 0x80, Local0)
                    If (LEqual (Local0, 0x00))
                    {
                        If (LEqual (Local1, 0x00))
                        {
                            If (LEqual (M0LN, 0x00))
                            {
ShiftLeft (\_SB.PCI0.K801.MBV0, 0x10, M0MN) ShiftLeft (\_SB.PCI0.K801.MLV0, 0x10, M0MX)
                                Or (M0MX, 0xFFFF, M0MX)
                                Subtract (M0MX, M0MN, M0LN)
                                Increment (M0LN)
                            }
                            Else
                            {
                                If (LEqual (M1LN, 0x00))
                                {
ShiftLeft (\_SB.PCI0.K801.MBV0, 0x10, M1MN) ShiftLeft (\_SB.PCI0.K801.MLV0, 0x10, M1MX)
                                    Or (M1MX, 0xFFFF, M1MX)
                                    Subtract (M1MX, M1MN, M1LN)
                                    Increment (M1LN)
                                }
                                Else
                                {
ShiftLeft (\_SB.PCI0.K801.MBV0, 0x10, M2MN) ShiftLeft (\_SB.PCI0.K801.MLV0, 0x10, M2MX)
                                    Or (M2MX, 0xFFFF, M2MX)
                                    Subtract (M2MX, M2MN, M2LN)
                                    Increment (M2LN)
                                }
                            }
                        }
                    }
                }

                And (\_SB.PCI0.K801.MB01, 0x03, Local0)
                And (\_SB.PCI0.K801.ML01, 0x30, Local1)
                ShiftRight (Local1, 0x04, Local1)
                If (LEqual (Local0, 0x03))
                {
                    And (\_SB.PCI0.K801.ML01, 0x80, Local0)
                    If (LEqual (Local0, 0x00))
                    {
                        If (LEqual (Local1, 0x00))
                        {
                            If (LEqual (M0LN, 0x00))
                            {
ShiftLeft (\_SB.PCI0.K801.MBV1, 0x10, M0MN) ShiftLeft (\_SB.PCI0.K801.MLV1, 0x10, M0MX)
                                Or (M0MX, 0xFFFF, M0MX)
                                Subtract (M0MX, M0MN, M0LN)
                                Increment (M0LN)
                            }
                            Else
                            {
                                If (LEqual (M1LN, 0x00))
                                {
ShiftLeft (\_SB.PCI0.K801.MBV1, 0x10, M1MN) ShiftLeft (\_SB.PCI0.K801.MLV1, 0x10, M1MX)
                                    Or (M1MX, 0xFFFF, M1MX)
                                    Subtract (M1MX, M1MN, M1LN)
                                    Increment (M1LN)
                                }
                                Else
                                {
ShiftLeft (\_SB.PCI0.K801.MBV1, 0x10, M2MN) ShiftLeft (\_SB.PCI0.K801.MLV1, 0x10, M2MX)
                                    Or (M2MX, 0xFFFF, M2MX)
                                    Subtract (M2MX, M2MN, M2LN)
                                    Increment (M2LN)
                                }
                            }
                        }
                    }
                }

                And (\_SB.PCI0.K801.MB02, 0x03, Local0)
                And (\_SB.PCI0.K801.ML02, 0x30, Local1)
                ShiftRight (Local1, 0x04, Local1)
                If (LEqual (Local0, 0x03))
                {
                    And (\_SB.PCI0.K801.ML02, 0x80, Local0)
                    If (LEqual (Local0, 0x00))
                    {
                        If (LEqual (Local1, 0x00))
                        {
                            If (LEqual (M0LN, 0x00))
                            {
ShiftLeft (\_SB.PCI0.K801.MBV2, 0x10, M0MN) ShiftLeft (\_SB.PCI0.K801.MLV2, 0x10, M0MX)
                                Or (M0MX, 0xFFFF, M0MX)
                                Subtract (M0MX, M0MN, M0LN)
                                Increment (M0LN)
                            }
                            Else
                            {
                                If (LEqual (M1LN, 0x00))
                                {
ShiftLeft (\_SB.PCI0.K801.MBV2, 0x10, M1MN) ShiftLeft (\_SB.PCI0.K801.MLV2, 0x10, M1MX)
                                    Or (M1MX, 0xFFFF, M1MX)
                                    Subtract (M1MX, M1MN, M1LN)
                                    Increment (M1LN)
                                }
                                Else
                                {
ShiftLeft (\_SB.PCI0.K801.MBV2, 0x10, M2MN) ShiftLeft (\_SB.PCI0.K801.MLV2, 0x10, M2MX)
                                    Or (M2MX, 0xFFFF, M2MX)
                                    Subtract (M2MX, M2MN, M2LN)
                                    Increment (M2LN)
                                }
                            }
                        }
                    }
                }

                And (\_SB.PCI0.K801.MB03, 0x03, Local0)
                And (\_SB.PCI0.K801.ML03, 0x30, Local1)
                ShiftRight (Local1, 0x04, Local1)
                If (LEqual (Local0, 0x03))
                {
                    And (\_SB.PCI0.K801.ML03, 0x80, Local0)
                    If (LEqual (Local0, 0x00))
                    {
                        If (LEqual (Local1, 0x00))
                        {
                            If (LEqual (M0LN, 0x00))
                            {
ShiftLeft (\_SB.PCI0.K801.MBV3, 0x10, M0MN) ShiftLeft (\_SB.PCI0.K801.MLV3, 0x10, M0MX)
                                Or (M0MX, 0xFFFF, M0MX)
                                Subtract (M0MX, M0MN, M0LN)
                                Increment (M0LN)
                            }
                            Else
                            {
                                If (LEqual (M1LN, 0x00))
                                {
ShiftLeft (\_SB.PCI0.K801.MBV3, 0x10, M1MN) ShiftLeft (\_SB.PCI0.K801.MLV3, 0x10, M1MX)
                                    Or (M1MX, 0xFFFF, M1MX)
                                    Subtract (M1MX, M1MN, M1LN)
                                    Increment (M1LN)
                                }
                                Else
                                {
ShiftLeft (\_SB.PCI0.K801.MBV3, 0x10, M2MN) ShiftLeft (\_SB.PCI0.K801.MLV3, 0x10, M2MX)
                                    Or (M2MX, 0xFFFF, M2MX)
                                    Subtract (M2MX, M2MN, M2LN)
                                    Increment (M2LN)
                                }
                            }
                        }
                    }
                }

                And (\_SB.PCI0.K801.MB04, 0x03, Local0)
                And (\_SB.PCI0.K801.ML04, 0x30, Local1)
                ShiftRight (Local1, 0x04, Local1)
                If (LEqual (Local0, 0x03))
                {
                    And (\_SB.PCI0.K801.ML04, 0x80, Local0)
                    If (LEqual (Local0, 0x00))
                    {
                        If (LEqual (Local1, 0x00))
                        {
                            If (LEqual (M0LN, 0x00))
                            {
ShiftLeft (\_SB.PCI0.K801.MBV4, 0x10, M0MN) ShiftLeft (\_SB.PCI0.K801.MLV4, 0x10, M0MX)
                                Or (M0MX, 0xFFFF, M0MX)
                                Subtract (M0MX, M0MN, M0LN)
                                Increment (M0LN)
                            }
                            Else
                            {
                                If (LEqual (M1LN, 0x00))
                                {
ShiftLeft (\_SB.PCI0.K801.MBV4, 0x10, M1MN) ShiftLeft (\_SB.PCI0.K801.MLV4, 0x10, M1MX)
                                    Or (M1MX, 0xFFFF, M1MX)
                                    Subtract (M1MX, M1MN, M1LN)
                                    Increment (M1LN)
                                }
                                Else
                                {
ShiftLeft (\_SB.PCI0.K801.MBV4, 0x10, M2MN) ShiftLeft (\_SB.PCI0.K801.MLV4, 0x10, M2MX)
                                    Or (M2MX, 0xFFFF, M2MX)
                                    Subtract (M2MX, M2MN, M2LN)
                                    Increment (M2LN)
                                }
                            }
                        }
                    }
                }

                And (\_SB.PCI0.K801.MB05, 0x03, Local0)
                And (\_SB.PCI0.K801.ML05, 0x30, Local1)
                ShiftRight (Local1, 0x04, Local1)
                If (LEqual (Local0, 0x03))
                {
                    And (\_SB.PCI0.K801.ML05, 0x80, Local0)
                    If (LEqual (Local0, 0x00))
                    {
                        If (LEqual (Local1, 0x00))
                        {
                            If (LEqual (M0LN, 0x00))
                            {
ShiftLeft (\_SB.PCI0.K801.MBV5, 0x10, M0MN) ShiftLeft (\_SB.PCI0.K801.MLV5, 0x10, M0MX)
                                Or (M0MX, 0xFFFF, M0MX)
                                Subtract (M0MX, M0MN, M0LN)
                                Increment (M0LN)
                            }
                            Else
                            {
                                If (LEqual (M1LN, 0x00))
                                {
ShiftLeft (\_SB.PCI0.K801.MBV5, 0x10, M1MN) ShiftLeft (\_SB.PCI0.K801.MLV5, 0x10, M1MX)
                                    Or (M1MX, 0xFFFF, M1MX)
                                    Subtract (M1MX, M1MN, M1LN)
                                    Increment (M1LN)
                                }
                                Else
                                {
ShiftLeft (\_SB.PCI0.K801.MBV5, 0x10, M2MN) ShiftLeft (\_SB.PCI0.K801.MLV5, 0x10, M2MX)
                                    Or (M2MX, 0xFFFF, M2MX)
                                    Subtract (M2MX, M2MN, M2LN)
                                    Increment (M2LN)
                                }
                            }
                        }
                    }
                }

                And (\_SB.PCI0.K801.MB06, 0x03, Local0)
                And (\_SB.PCI0.K801.ML06, 0x30, Local1)
                ShiftRight (Local1, 0x04, Local1)
                If (LEqual (Local0, 0x03))
                {
                    And (\_SB.PCI0.K801.ML06, 0x80, Local0)
                    If (LEqual (Local0, 0x00))
                    {
                        If (LEqual (Local1, 0x00))
                        {
                            If (LEqual (M0LN, 0x00))
                            {
ShiftLeft (\_SB.PCI0.K801.MBV6, 0x10, M0MN) ShiftLeft (\_SB.PCI0.K801.MLV6, 0x10, M0MX)
                                Or (M0MX, 0xFFFF, M0MX)
                                Subtract (M0MX, M0MN, M0LN)
                                Increment (M0LN)
                            }
                            Else
                            {
                                If (LEqual (M1LN, 0x00))
                                {
ShiftLeft (\_SB.PCI0.K801.MBV6, 0x10, M1MN) ShiftLeft (\_SB.PCI0.K801.MLV6, 0x10, M1MX)
                                    Or (M1MX, 0xFFFF, M1MX)
                                    Subtract (M1MX, M1MN, M1LN)
                                    Increment (M1LN)
                                }
                                Else
                                {
ShiftLeft (\_SB.PCI0.K801.MBV6, 0x10, M2MN) ShiftLeft (\_SB.PCI0.K801.MLV6, 0x10, M2MX)
                                    Or (M2MX, 0xFFFF, M2MX)
                                    Subtract (M2MX, M2MN, M2LN)
                                    Increment (M2LN)
                                }
                            }
                        }
                    }
                }

                And (\_SB.PCI0.K801.MB07, 0x03, Local0)
                And (\_SB.PCI0.K801.ML07, 0x30, Local1)
                ShiftRight (Local1, 0x04, Local1)
                If (LEqual (Local0, 0x03))
                {
                    And (\_SB.PCI0.K801.ML07, 0x80, Local0)
                    If (LEqual (Local0, 0x00))
                    {
                        If (LEqual (Local1, 0x00))
                        {
                            If (LEqual (M0LN, 0x00))
                            {
ShiftLeft (\_SB.PCI0.K801.MBV7, 0x10, M0MN) ShiftLeft (\_SB.PCI0.K801.MLV7, 0x10, M0MX)
                                Or (M0MX, 0xFFFF, M0MX)
                                Subtract (M0MX, M0MN, M0LN)
                                Increment (M0LN)
                            }
                            Else
                            {
                                If (LEqual (M1LN, 0x00))
                                {
ShiftLeft (\_SB.PCI0.K801.MBV7, 0x10, M1MN) ShiftLeft (\_SB.PCI0.K801.MLV7, 0x10, M1MX)
                                    Or (M1MX, 0xFFFF, M1MX)
                                    Subtract (M1MX, M1MN, M1LN)
                                    Increment (M1LN)
                                }
                                Else
                                {
ShiftLeft (\_SB.PCI0.K801.MBV7, 0x10, M2MN) ShiftLeft (\_SB.PCI0.K801.MLV7, 0x10, M2MX)
                                    Or (M2MX, 0xFFFF, M2MX)
                                    Subtract (M2MX, M2MN, M2LN)
                                    Increment (M2LN)
                                }
                            }
                        }
                    }
                }

                Return (BUF0)
            }

            Name (PICM, Package (0x2E)
            {
                Package (0x04)
                {
                    0x0004FFFF,
                    0x00,
                    \_SB.PCI0.LXV5,
                    0x00
                },

                Package (0x04)
                {
                    0x0004FFFF,
                    0x01,
                    \_SB.PCI0.LXV6,
                    0x00
                },

                Package (0x04)
                {
                    0x0004FFFF,
                    0x02,
                    \_SB.PCI0.LXV7,
                    0x00
                },

                Package (0x04)
                {
                    0x0004FFFF,
                    0x03,
                    \_SB.PCI0.LXV8,
                    0x00
                },

                Package (0x04)
                {
                    0x0003FFFF,
                    0x00,
                    \_SB.PCI0.LXV5,
                    0x00
                },

                Package (0x04)
                {
                    0x0003FFFF,
                    0x01,
                    \_SB.PCI0.LXV6,
                    0x00
                },

                Package (0x04)
                {
                    0x0003FFFF,
                    0x02,
                    \_SB.PCI0.LXV7,
                    0x00
                },

                Package (0x04)
                {
                    0x0003FFFF,
                    0x03,
                    \_SB.PCI0.LXV8,
                    0x00
                },

                Package (0x04)
                {
                    0x0002FFFF,
                    0x00,
                    \_SB.PCI0.LXV6,
                    0x00
                },

                Package (0x04)
                {
                    0x0002FFFF,
                    0x01,
                    \_SB.PCI0.LXV7,
                    0x00
                },

                Package (0x04)
                {
                    0x0002FFFF,
                    0x02,
                    \_SB.PCI0.LXV8,
                    0x00
                },

                Package (0x04)
                {
                    0x0002FFFF,
                    0x03,
                    \_SB.PCI0.LXV5,
                    0x00
                },

                Package (0x04)
                {
                    0x0009FFFF,
                    0x01,
                    \_SB.PCI0.LSMB,
                    0x00
                },

                Package (0x04)
                {
                    0x000AFFFF,
                    0x00,
                    \_SB.PCI0.LUBA,
                    0x00
                },

                Package (0x04)
                {
                    0x000AFFFF,
                    0x01,
                    \_SB.PCI0.LUB2,
                    0x00
                },

                Package (0x04)
                {
                    0x0010FFFF,
                    0x00,
                    \_SB.PCI0.LMAC,
                    0x00
                },

                Package (0x04)
                {
                    0x0011FFFF,
                    0x00,
                    \_SB.PCI0.LMC1,
                    0x00
                },

                Package (0x04)
                {
                    0x000EFFFF,
                    0x01,
                    \_SB.PCI0.LAZA,
                    0x00
                },

                Package (0x04)
                {
                    0x000CFFFF,
                    0x00,
                    \_SB.PCI0.LIDE,
                    0x00
                },

                Package (0x04)
                {
                    0x000DFFFF,
                    0x00,
                    \_SB.PCI0.LSA0,
                    0x00
                },

                Package (0x04)
                {
                    0x000DFFFF,
                    0x01,
                    \_SB.PCI0.LSA1,
                    0x00
                },

                Package (0x04)
                {
                    0x000DFFFF,
                    0x02,
                    \_SB.PCI0.LSA2,
                    0x00
                },

                Package (0x04)
                {
                    0x0017FFFF,
                    0x00,
                    \_SB.PCI0.LXV6,
                    0x00
                },

                Package (0x04)
                {
                    0x0017FFFF,
                    0x00,
                    \_SB.PCI0.LXV7,
                    0x00
                },

                Package (0x04)
                {
                    0x0017FFFF,
                    0x00,
                    \_SB.PCI0.LXV8,
                    0x00
                },

                Package (0x04)
                {
                    0x0017FFFF,
                    0x00,
                    \_SB.PCI0.LXV5,
                    0x00
                },

                Package (0x04)
                {
                    0x0016FFFF,
                    0x00,
                    \_SB.PCI0.LXV7,
                    0x00
                },

                Package (0x04)
                {
                    0x0016FFFF,
                    0x00,
                    \_SB.PCI0.LXV8,
                    0x00
                },

                Package (0x04)
                {
                    0x0016FFFF,
                    0x00,
                    \_SB.PCI0.LXV5,
                    0x00
                },

                Package (0x04)
                {
                    0x0016FFFF,
                    0x00,
                    \_SB.PCI0.LXV6,
                    0x00
                },

                Package (0x04)
                {
                    0x0015FFFF,
                    0x00,
                    \_SB.PCI0.LXV8,
                    0x00
                },

                Package (0x04)
                {
                    0x0015FFFF,
                    0x00,
                    \_SB.PCI0.LXV5,
                    0x00
                },

                Package (0x04)
                {
                    0x0015FFFF,
                    0x00,
                    \_SB.PCI0.LXV6,
                    0x00
                },

                Package (0x04)
                {
                    0x0015FFFF,
                    0x00,
                    \_SB.PCI0.LXV7,
                    0x00
                },

                Package (0x04)
                {
                    0x0014FFFF,
                    0x00,
                    \_SB.PCI0.LXV5,
                    0x00
                },

                Package (0x04)
                {
                    0x0014FFFF,
                    0x00,
                    \_SB.PCI0.LXV6,
                    0x00
                },

                Package (0x04)
                {
                    0x0014FFFF,
                    0x00,
                    \_SB.PCI0.LXV7,
                    0x00
                },

                Package (0x04)
                {
                    0x0014FFFF,
                    0x00,
                    \_SB.PCI0.LXV8,
                    0x00
                },

                Package (0x04)
                {
                    0x0013FFFF,
                    0x00,
                    \_SB.PCI0.LXV6,
                    0x00
                },

                Package (0x04)
                {
                    0x0013FFFF,
                    0x00,
                    \_SB.PCI0.LXV7,
                    0x00
                },

                Package (0x04)
                {
                    0x0013FFFF,
                    0x00,
                    \_SB.PCI0.LXV8,
                    0x00
                },

                Package (0x04)
                {
                    0x0013FFFF,
                    0x00,
                    \_SB.PCI0.LXV5,
                    0x00
                },

                Package (0x04)
                {
                    0x0012FFFF,
                    0x00,
                    \_SB.PCI0.LXV7,
                    0x00
                },

                Package (0x04)
                {
                    0x0012FFFF,
                    0x00,
                    \_SB.PCI0.LXV8,
                    0x00
                },

                Package (0x04)
                {
                    0x0012FFFF,
                    0x00,
                    \_SB.PCI0.LXV5,
                    0x00
                },

                Package (0x04)
                {
                    0x0012FFFF,
                    0x00,
                    \_SB.PCI0.LXV6,
                    0x00
                }
            })
            Name (APIC, Package (0x2F)
            {
                Package (0x04)
                {
                    0x0004FFFF,
                    0x00,
                    \_SB.PCI0.AXV5,
                    0x00
                },

                Package (0x04)
                {
                    0x0004FFFF,
                    0x01,
                    \_SB.PCI0.AXV6,
                    0x00
                },

                Package (0x04)
                {
                    0x0004FFFF,
                    0x02,
                    \_SB.PCI0.AXV7,
                    0x00
                },

                Package (0x04)
                {
                    0x0004FFFF,
                    0x03,
                    \_SB.PCI0.AXV8,
                    0x00
                },

                Package (0x04)
                {
                    0x0003FFFF,
                    0x00,
                    \_SB.PCI0.AXV5,
                    0x00
                },

                Package (0x04)
                {
                    0x0003FFFF,
                    0x01,
                    \_SB.PCI0.AXV6,
                    0x00
                },

                Package (0x04)
                {
                    0x0003FFFF,
                    0x02,
                    \_SB.PCI0.AXV7,
                    0x00
                },

                Package (0x04)
                {
                    0x0003FFFF,
                    0x03,
                    \_SB.PCI0.AXV8,
                    0x00
                },

                Package (0x04)
                {
                    0x0002FFFF,
                    0x00,
                    \_SB.PCI0.AXV6,
                    0x00
                },

                Package (0x04)
                {
                    0x0002FFFF,
                    0x01,
                    \_SB.PCI0.AXV7,
                    0x00
                },

                Package (0x04)
                {
                    0x0002FFFF,
                    0x02,
                    \_SB.PCI0.AXV8,
                    0x00
                },

                Package (0x04)
                {
                    0x0002FFFF,
                    0x03,
                    \_SB.PCI0.AXV5,
                    0x00
                },

                Package (0x04)
                {
                    0x0009FFFF,
                    0x00,
                    \_SB.PCI0.ASMB,
                    0x00
                },

                Package (0x04)
                {
                    0x0009FFFF,
                    0x01,
                    \_SB.PCI0.ASMB,
                    0x00
                },

                Package (0x04)
                {
                    0x000AFFFF,
                    0x00,
                    \_SB.PCI0.AUBA,
                    0x00
                },

                Package (0x04)
                {
                    0x000AFFFF,
                    0x01,
                    \_SB.PCI0.AUS2,
                    0x00
                },

                Package (0x04)
                {
                    0x0010FFFF,
                    0x00,
                    \_SB.PCI0.AMAC,
                    0x00
                },

                Package (0x04)
                {
                    0x0011FFFF,
                    0x00,
                    \_SB.PCI0.AMA1,
                    0x00
                },

                Package (0x04)
                {
                    0x000EFFFF,
                    0x01,
                    \_SB.PCI0.AAZA,
                    0x00
                },

                Package (0x04)
                {
                    0x000CFFFF,
                    0x00,
                    \_SB.PCI0.AIDE,
                    0x00
                },

                Package (0x04)
                {
                    0x000DFFFF,
                    0x00,
                    \_SB.PCI0.ASA0,
                    0x00
                },

                Package (0x04)
                {
                    0x000DFFFF,
                    0x01,
                    \_SB.PCI0.ASA1,
                    0x00
                },

                Package (0x04)
                {
                    0x000DFFFF,
                    0x02,
                    \_SB.PCI0.ASA2,
                    0x00
                },

                Package (0x04)
                {
                    0x0017FFFF,
                    0x00,
                    \_SB.PCI0.AXV6,
                    0x00
                },

                Package (0x04)
                {
                    0x0017FFFF,
                    0x01,
                    \_SB.PCI0.AXV7,
                    0x00
                },

                Package (0x04)
                {
                    0x0017FFFF,
                    0x02,
                    \_SB.PCI0.AXV8,
                    0x00
                },

                Package (0x04)
                {
                    0x0017FFFF,
                    0x03,
                    \_SB.PCI0.AXV5,
                    0x00
                },

                Package (0x04)
                {
                    0x0016FFFF,
                    0x00,
                    \_SB.PCI0.AXV7,
                    0x00
                },

                Package (0x04)
                {
                    0x0016FFFF,
                    0x01,
                    \_SB.PCI0.AXV8,
                    0x00
                },

                Package (0x04)
                {
                    0x0016FFFF,
                    0x02,
                    \_SB.PCI0.AXV5,
                    0x00
                },

                Package (0x04)
                {
                    0x0016FFFF,
                    0x03,
                    \_SB.PCI0.AXV6,
                    0x00
                },

                Package (0x04)
                {
                    0x0015FFFF,
                    0x00,
                    \_SB.PCI0.AXV8,
                    0x00
                },

                Package (0x04)
                {
                    0x0015FFFF,
                    0x01,
                    \_SB.PCI0.AXV5,
                    0x00
                },

                Package (0x04)
                {
                    0x0015FFFF,
                    0x02,
                    \_SB.PCI0.AXV6,
                    0x00
                },

                Package (0x04)
                {
                    0x0015FFFF,
                    0x03,
                    \_SB.PCI0.AXV7,
                    0x00
                },

                Package (0x04)
                {
                    0x0014FFFF,
                    0x00,
                    \_SB.PCI0.AXV5,
                    0x00
                },

                Package (0x04)
                {
                    0x0014FFFF,
                    0x01,
                    \_SB.PCI0.AXV6,
                    0x00
                },

                Package (0x04)
                {
                    0x0014FFFF,
                    0x02,
                    \_SB.PCI0.AXV7,
                    0x00
                },

                Package (0x04)
                {
                    0x0014FFFF,
                    0x03,
                    \_SB.PCI0.AXV8,
                    0x00
                },

                Package (0x04)
                {
                    0x0013FFFF,
                    0x00,
                    \_SB.PCI0.AXV6,
                    0x00
                },

                Package (0x04)
                {
                    0x0013FFFF,
                    0x01,
                    \_SB.PCI0.AXV7,
                    0x00
                },

                Package (0x04)
                {
                    0x0013FFFF,
                    0x02,
                    \_SB.PCI0.AXV8,
                    0x00
                },

                Package (0x04)
                {
                    0x0013FFFF,
                    0x03,
                    \_SB.PCI0.AXV5,
                    0x00
                },

                Package (0x04)
                {
                    0x0012FFFF,
                    0x00,
                    \_SB.PCI0.AXV7,
                    0x00
                },

                Package (0x04)
                {
                    0x0012FFFF,
                    0x01,
                    \_SB.PCI0.AXV8,
                    0x00
                },

                Package (0x04)
                {
                    0x0012FFFF,
                    0x02,
                    \_SB.PCI0.AXV5,
                    0x00
                },

                Package (0x04)
                {
                    0x0012FFFF,
                    0x03,
                    \_SB.PCI0.AXV6,
                    0x00
                }
            })
            Method (_PRT, 0, NotSerialized)
            {
                If (LNot (PICF))
                {
                    Return (PICM)
                }
                Else
                {
                    Return (APIC)
                }
            }

            Device (HUB0)
            {
                Name (_ADR, 0x000E0000)
                Method (_STA, 0, NotSerialized)
                {
                    Return (0x0F)
                }

                Name (PICM, Package (0x14)
                {
                    Package (0x04)
                    {
                        0x000AFFFF,
                        0x00,
                        \_SB.PCI0.LNK3,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x000AFFFF,
                        0x01,
                        \_SB.PCI0.LNK4,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x000AFFFF,
                        0x02,
                        \_SB.PCI0.LNK1,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x000AFFFF,
                        0x03,
                        \_SB.PCI0.LNK2,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0009FFFF,
                        0x00,
                        \_SB.PCI0.LNK2,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0009FFFF,
                        0x01,
                        \_SB.PCI0.LNK3,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0009FFFF,
                        0x02,
                        \_SB.PCI0.LNK4,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0009FFFF,
                        0x03,
                        \_SB.PCI0.LNK1,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0008FFFF,
                        0x00,
                        \_SB.PCI0.LNK1,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0008FFFF,
                        0x01,
                        \_SB.PCI0.LNK2,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0008FFFF,
                        0x02,
                        \_SB.PCI0.LNK3,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0008FFFF,
                        0x03,
                        \_SB.PCI0.LNK4,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0007FFFF,
                        0x00,
                        \_SB.PCI0.LNK2,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0007FFFF,
                        0x01,
                        \_SB.PCI0.LNK3,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0007FFFF,
                        0x02,
                        \_SB.PCI0.LNK4,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0007FFFF,
                        0x03,
                        \_SB.PCI0.LNK1,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0006FFFF,
                        0x00,
                        \_SB.PCI0.LNK3,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0006FFFF,
                        0x01,
                        \_SB.PCI0.LNK4,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0006FFFF,
                        0x02,
                        \_SB.PCI0.LNK1,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0006FFFF,
                        0x03,
                        \_SB.PCI0.LNK2,
                        0x00
                    }
                })
                Name (APIC, Package (0x14)
                {
                    Package (0x04)
                    {
                        0x000AFFFF,
                        0x00,
                        \_SB.PCI0.APC3,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x000AFFFF,
                        0x01,
                        \_SB.PCI0.APC4,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x000AFFFF,
                        0x02,
                        \_SB.PCI0.APC1,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x000AFFFF,
                        0x03,
                        \_SB.PCI0.APC2,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0009FFFF,
                        0x00,
                        \_SB.PCI0.APC2,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0009FFFF,
                        0x01,
                        \_SB.PCI0.APC3,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0009FFFF,
                        0x02,
                        \_SB.PCI0.APC4,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0009FFFF,
                        0x03,
                        \_SB.PCI0.APC1,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0008FFFF,
                        0x00,
                        \_SB.PCI0.APC1,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0008FFFF,
                        0x01,
                        \_SB.PCI0.APC2,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0008FFFF,
                        0x02,
                        \_SB.PCI0.APC3,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0008FFFF,
                        0x03,
                        \_SB.PCI0.APC4,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0007FFFF,
                        0x00,
                        \_SB.PCI0.APC2,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0007FFFF,
                        0x01,
                        \_SB.PCI0.APC3,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0007FFFF,
                        0x02,
                        \_SB.PCI0.APC4,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0007FFFF,
                        0x03,
                        \_SB.PCI0.APC1,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0006FFFF,
                        0x00,
                        \_SB.PCI0.APC3,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0006FFFF,
                        0x01,
                        \_SB.PCI0.APC4,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0006FFFF,
                        0x02,
                        \_SB.PCI0.APC1,
                        0x00
                    },

                    Package (0x04)
                    {
                        0x0006FFFF,
                        0x03,
                        \_SB.PCI0.APC2,
                        0x00
                    }
                })
                Method (_PRT, 0, NotSerialized)
                {
                    If (LNot (PICF))
                    {
                        Return (PICM)
                    }
                    Else
                    {
                        Return (APIC)
                    }
                }

                Name (_PRW, Package (0x02)
                {
                    0x00,
                    0x05
                })
            }

            Device (SAT0)
            {
                Name (_ADR, 0x000D0000)
                Device (PRI0)
                {
                    Name (_ADR, 0x00)
                    Name (SPTM, Buffer (0x14)
                    {
/* 0000 */ 0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, /* 0008 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
                        /* 0010 */    0x13, 0x00, 0x00, 0x00
                    })
                    Method (_GTM, 0, NotSerialized)
                    {
                        Return (SPTM)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (Arg0, SPTM)
                    }

                    Device (MAST)
                    {
                        Name (_ADR, 0x00)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (Buffer (0x07)
                                {
0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF
                                }, Local0)
                            Return (Local0)
                        }
                    }
                }

                Device (SEC0)
                {
                    Name (_ADR, 0x01)
                    Name (SSTM, Buffer (0x14)
                    {
/* 0000 */ 0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, /* 0008 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
                        /* 0010 */    0x13, 0x00, 0x00, 0x00
                    })
                    Method (_GTM, 0, NotSerialized)
                    {
                        Return (SSTM)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (Arg0, SSTM)
                    }

                    Device (MAST)
                    {
                        Name (_ADR, 0x00)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (Buffer (0x07)
                                {
0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF
                                }, Local0)
                            Return (Local0)
                        }
                    }
                }

                Method (DRMP, 0, NotSerialized)
                {
                    Return (\_SB.PCI0.NVRB.R_S0)
                }
            }

            Device (SAT1)
            {
                Name (_ADR, 0x000D0001)
                Device (PRI0)
                {
                    Name (_ADR, 0x00)
                    Name (SPTM, Buffer (0x14)
                    {
/* 0000 */ 0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, /* 0008 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
                        /* 0010 */    0x13, 0x00, 0x00, 0x00
                    })
                    Method (_GTM, 0, NotSerialized)
                    {
                        Return (SPTM)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (Arg0, SPTM)
                    }

                    Device (MAST)
                    {
                        Name (_ADR, 0x00)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (Buffer (0x07)
                                {
0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF
                                }, Local0)
                            Return (Local0)
                        }
                    }
                }

                Device (SEC0)
                {
                    Name (_ADR, 0x01)
                    Name (SSTM, Buffer (0x14)
                    {
/* 0000 */ 0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, /* 0008 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
                        /* 0010 */    0x13, 0x00, 0x00, 0x00
                    })
                    Method (_GTM, 0, NotSerialized)
                    {
                        Return (SSTM)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (Arg0, SSTM)
                    }

                    Device (MAST)
                    {
                        Name (_ADR, 0x00)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (Buffer (0x07)
                                {
0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF
                                }, Local0)
                            Return (Local0)
                        }
                    }
                }

                Method (DRMP, 0, NotSerialized)
                {
                    Return (\_SB.PCI0.NVRB.R_S1)
                }
            }

            Device (SAT2)
            {
                Name (_ADR, 0x000D0002)
                Device (PRI0)
                {
                    Name (_ADR, 0x00)
                    Name (SPTM, Buffer (0x14)
                    {
/* 0000 */ 0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, /* 0008 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
                        /* 0010 */    0x13, 0x00, 0x00, 0x00
                    })
                    Method (_GTM, 0, NotSerialized)
                    {
                        Return (SPTM)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (Arg0, SPTM)
                    }

                    Device (MAST)
                    {
                        Name (_ADR, 0x00)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (Buffer (0x07)
                                {
0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF
                                }, Local0)
                            Return (Local0)
                        }
                    }
                }

                Device (SEC0)
                {
                    Name (_ADR, 0x01)
                    Name (SSTM, Buffer (0x14)
                    {
/* 0000 */ 0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, /* 0008 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
                        /* 0010 */    0x13, 0x00, 0x00, 0x00
                    })
                    Method (_GTM, 0, NotSerialized)
                    {
                        Return (SSTM)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (Arg0, SSTM)
                    }

                    Device (MAST)
                    {
                        Name (_ADR, 0x00)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store (Buffer (0x07)
                                {
0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF
                                }, Local0)
                            Return (Local0)
                        }
                    }
                }

                Method (DRMP, 0, NotSerialized)
                {
                    Return (\_SB.PCI0.NVRB.R_S2)
                }
            }

            Device (IDE0)
            {
                Name (_ADR, 0x000C0000)
                OperationRegion (A090, PCI_Config, 0x50, 0x18)
                Field (A090, DWordAcc, NoLock, Preserve)
                {
                    ID20,   16,
                            Offset (0x08),
                    IDTS,   16,
                    IDTP,   16,
                    ID22,   32,
                    UMSS,   16,
                    UMSP,   16
                }

                Name (IDEP, Buffer (0x14) {})
                Name (IDES, Buffer (0x14) {})
                Method (GTM, 1, NotSerialized)
                {
                    If (LEqual (Arg0, 0x00))
                    {
                        Store (IDTP, Local0)
                        Store (UMSP, Local1)
                        Store (IDEP, Local2)
                    }
                    Else
                    {
                        Store (IDTS, Local0)
                        Store (UMSS, Local1)
                        Store (IDES, Local2)
                    }

                    CreateDWordField (Local2, 0x00, PIO0)
                    CreateDWordField (Local2, 0x04, DMA0)
                    CreateDWordField (Local2, 0x08, PIO1)
                    CreateDWordField (Local2, 0x0C, DMA1)
                    CreateDWordField (Local2, 0x10, FLAG)
                    Store (0x10, FLAG)
                    And (Local0, 0x0F00, Local3)
                    And (Local0, 0xF000, Local4)
                    ShiftRight (Local3, 0x08, Local3)
                    ShiftRight (Local4, 0x0C, Local4)
                    Add (Local3, Local4, Local3)
                    Multiply (Add (Local3, 0x02), 0x1E, PIO0)
                    If (LLessEqual (PIO0, 0xB4))
                    {
                        Or (FLAG, 0x02, FLAG)
                    }

                    If (And (Local1, 0x4000))
                    {
                        Or (FLAG, 0x01, FLAG)
                        And (Local1, 0x0700, Local3)
                        ShiftRight (Local3, 0x08, Local3)
                        Store (U2T (Local3), DMA0)
                    }
                    Else
                    {
                        Store (PIO0, DMA0)
                    }

                    And (Local0, 0x0F, Local3)
                    And (Local0, 0xF0, Local4)
                    ShiftRight (Local4, 0x04, Local4)
                    Add (Local3, Local4, Local3)
                    Multiply (Add (Local3, 0x02), 0x1E, PIO1)
                    If (LLessEqual (PIO1, 0xB4))
                    {
                        Or (FLAG, 0x08, FLAG)
                    }

                    If (And (Local1, 0x40))
                    {
                        Or (FLAG, 0x04, FLAG)
                        And (Local1, 0x07, Local3)
                        Store (U2T (Local3), DMA1)
                    }
                    Else
                    {
                        Store (PIO1, DMA1)
                    }

                    If (LEqual (Arg0, 0x00))
                    {
                        Store (Local2, IDEP)
                        Return (IDEP)
                    }
                    Else
                    {
                        Store (Local2, IDES)
                        Return (IDES)
                    }
                }

                Method (U2T, 1, NotSerialized)
                {
                    If (LEqual (Arg0, 0x00))
                    {
                        Return (0x3C)
                    }

                    If (LEqual (Arg0, 0x01))
                    {
                        Return (0x5A)
                    }

                    If (LEqual (Arg0, 0x02))
                    {
                        Return (0x78)
                    }

                    If (LEqual (Arg0, 0x03))
                    {
                        Return (0x96)
                    }

                    If (LEqual (Arg0, 0x04))
                    {
                        Return (0x2D)
                    }

                    If (LEqual (Arg0, 0x05))
                    {
                        Return (0x1E)
                    }

                    If (LEqual (Arg0, 0x06))
                    {
                        Return (0x14)
                    }

                    Return (0x0F)
                }

                Method (T2U, 1, NotSerialized)
                {
                    If (LGreater (Arg0, 0x78))
                    {
                        Return (0x03)
                    }

                    If (LGreater (Arg0, 0x5A))
                    {
                        Return (0x02)
                    }

                    If (LGreater (Arg0, 0x3C))
                    {
                        Return (0x01)
                    }

                    If (LGreater (Arg0, 0x2D))
                    {
                        Return (0x00)
                    }

                    If (LGreater (Arg0, 0x1E))
                    {
                        Return (0x04)
                    }

                    If (LGreater (Arg0, 0x14))
                    {
                        Return (0x05)
                    }

                    If (LGreater (Arg0, 0x0F))
                    {
                        Return (0x06)
                    }

                    Return (0x07)
                }

                Method (T2D, 1, NotSerialized)
                {
                    If (LGreater (Arg0, 0x01E0))
                    {
                        Return (0xA8)
                    }

                    If (LGreater (Arg0, 0x0186))
                    {
                        Return (0x77)
                    }

                    If (LGreater (Arg0, 0xF0))
                    {
                        Return (0x47)
                    }

                    If (LGreater (Arg0, 0xB4))
                    {
                        Return (0x33)
                    }

                    If (LGreater (Arg0, 0x96))
                    {
                        Return (0x22)
                    }

                    If (LGreater (Arg0, 0x78))
                    {
                        Return (0x21)
                    }

                    Return (0x20)
                }

                Method (STM, 4, NotSerialized)
                {
                    If (SX)
                    {
                        Store (SID0, ID20)
                        Store (SID1, IDTS)
                        Store (SID2, IDTP)
                        Store (SID3, ID22)
                        Store (SID4, UMSS)
                        Store (SID5, UMSP)
                    }
                    Else
                    {
                        Store (ID20, SID0)
                        Store (IDTS, SID1)
                        Store (IDTP, SID2)
                        Store (ID22, SID3)
                        Store (UMSS, SID4)
                        Store (UMSP, SID5)
                    }

                    Store (0x00, SX)
                    CreateDWordField (Arg0, 0x00, PIO0)
                    CreateDWordField (Arg0, 0x04, DMA0)
                    CreateDWordField (Arg0, 0x08, PIO1)
                    CreateDWordField (Arg0, 0x0C, DMA1)
                    CreateDWordField (Arg0, 0x10, FLAG)
                    If (LEqual (Arg3, 0x00))
                    {
                        Store (SID2, Local0)
                        Store (SID5, Local1)
                    }
                    Else
                    {
                        Store (SID1, Local0)
                        Store (SID4, Local1)
                    }

                    If (LNotEqual (PIO0, 0xFFFFFFFF))
                    {
                        And (Local0, 0xFF, Local0)
                        ShiftLeft (T2D (PIO0), 0x08, Local2)
                        Or (Local0, Local2, Local0)
                    }

                    If (LNotEqual (PIO1, 0xFFFFFFFF))
                    {
                        And (Local0, 0xFF00, Local0)
                        Or (Local0, T2D (PIO1), Local0)
                    }

                    If (And (FLAG, 0x01))
                    {
                        And (Local1, 0xFF, Local1)
                        ShiftLeft (T2U (DMA0), 0x08, Local2)
                        Or (0xC000, Local2, Local2)
                        Or (Local2, Local1, Local1)
                    }
                    Else
                    {
                        If (LNotEqual (DMA0, 0xFFFFFFFF))
                        {
                            And (Local0, 0xFF, Local0)
                            ShiftLeft (T2D (DMA0), 0x08, Local2)
                            Or (Local0, Local2, Local0)
                        }
                    }

                    If (And (FLAG, 0x04))
                    {
                        And (Local1, 0xFF00, Local1)
                        Or (0xC0, T2U (DMA1), Local2)
                        Or (Local2, Local1, Local1)
                    }
                    Else
                    {
                        If (LNotEqual (DMA1, 0xFFFFFFFF))
                        {
                            And (Local0, 0xFF00, Local0)
                            Or (Local0, T2D (DMA1), Local0)
                        }
                    }

                    If (LEqual (Arg3, 0x00))
                    {
                        Store (Local0, IDTP)
                        Store (Local1, UMSP)
                    }
                    Else
                    {
                        Store (Local0, IDTS)
                        Store (Local1, UMSS)
                    }
                }

                Method (GTF, 2, NotSerialized)
                {
                    Store (Buffer (0x07)
                        {
                            0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                        }, Local0)
                    CreateByteField (Local0, 0x01, MODE)
                    CreateByteField (Local0, 0x05, DRIV)
                    Store (Arg1, DRIV)
                    If (LEqual (Arg0, 0x00))
                    {
                        Store (IDEP, Local1)
                    }
                    Else
                    {
                        Store (IDES, Local1)
                    }

                    CreateDWordField (Local1, 0x00, PIO0)
                    CreateDWordField (Local1, 0x04, DMA0)
                    CreateDWordField (Local1, 0x08, PIO1)
                    CreateDWordField (Local1, 0x0C, DMA1)
                    CreateDWordField (Local1, 0x10, FLGX)
                    If (LEqual (Arg1, 0xA0))
                    {
                        Store (PIO0, Local2)
                        Store (DMA0, Local3)
                        And (FLGX, 0x01, FLGX)
                    }
                    Else
                    {
                        Store (PIO1, Local2)
                        Store (DMA1, Local3)
                        And (FLGX, 0x04, FLGX)
                    }

                    Store (FLGX, Local1)
                    If (LGreater (Local2, 0x0186))
                    {
                        Store (0x00, Local2)
                    }
                    Else
                    {
                        If (LGreater (Local2, 0xF0))
                        {
                            Store (0x01, Local2)
                        }
                        Else
                        {
                            If (LGreater (Local2, 0xB4))
                            {
                                Store (0x02, Local2)
                            }
                            Else
                            {
                                If (LGreater (Local2, 0x78))
                                {
                                    Store (0x03, Local2)
                                }
                                Else
                                {
                                    Store (0x04, Local2)
                                }
                            }
                        }
                    }

                    Or (0x08, Local2, MODE)
                    Store (Local0, Local2)
                    If (FLGX)
                    {
                        If (LGreater (Local3, 0x5A))
                        {
                            Store (0x00, Local3)
                        }
                        Else
                        {
                            If (LGreater (Local3, 0x3C))
                            {
                                Store (0x01, Local3)
                            }
                            Else
                            {
                                If (LGreater (Local3, 0x2D))
                                {
                                    Store (0x02, Local3)
                                }
                                Else
                                {
                                    If (LGreater (Local3, 0x1E))
                                    {
                                        Store (0x03, Local3)
                                    }
                                    Else
                                    {
                                        If (LGreater (Local3, 0x14))
                                        {
                                            Store (0x04, Local3)
                                        }
                                        Else
                                        {
If (LGreater (Local3, 0x0F))
                                            {
                                                Store (0x05, Local3)
                                            }
                                            Else
                                            {
                                                Store (0x06, Local3)
                                            }
                                        }
                                    }
                                }
                            }
                        }

                        Or (0x40, Local3, MODE)
                    }
                    Else
                    {
                        If (LEqual (Local3, 0xFFFFFFFF))
                        {
                            Return (Local0)
                        }
                        Else
                        {
                            If (LGreater (Local3, 0x96))
                            {
                                Store (0x00, Local3)
                            }
                            Else
                            {
                                If (LGreater (Local3, 0x78))
                                {
                                    Store (0x01, Local3)
                                }
                                Else
                                {
                                    Store (0x02, Local3)
                                }
                            }

                            Or (0x20, Local3, MODE)
                        }
                    }

                    Concatenate (Local0, Local2, Local1)
                    Return (Local1)
                }

                Device (PRI0)
                {
                    Name (_ADR, 0x00)
                    Method (_GTM, 0, NotSerialized)
                    {
                        Return (GTM (0x00))
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        STM (Arg0, Arg1, Arg2, 0x00)
                    }

                    Device (MAST)
                    {
                        Name (_ADR, 0x00)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Return (GTF (0x00, 0xA0))
                        }
                    }

                    Device (SLAV)
                    {
                        Name (_ADR, 0x01)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Return (GTF (0x00, 0xB0))
                        }
                    }
                }

                Device (SEC0)
                {
                    Name (_ADR, 0x01)
                    Method (_GTM, 0, NotSerialized)
                    {
                        Return (GTM (0x01))
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        STM (Arg0, Arg1, Arg2, 0x01)
                    }

                    Device (MAST)
                    {
                        Name (_ADR, 0x00)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Return (GTF (0x01, 0xA0))
                        }
                    }

                    Device (SLAV)
                    {
                        Name (_ADR, 0x01)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Return (GTF (0x01, 0xB0))
                        }
                    }
                }

                Method (DRMP, 0, NotSerialized)
                {
                    Return (\_SB.PCI0.NVRB.R_P0)
                }
            }

            Device (K800)
            {
                Name (_BBN, 0x00)
                Name (_ADR, 0x00180000)
            }

            Device (K801)
            {
                Name (_BBN, 0x00)
                Name (_ADR, 0x00180001)
                OperationRegion (K181, PCI_Config, 0x00, 0xFF)
                Field (K181, AnyAcc, NoLock, Preserve)
                {
                            Offset (0x80),
                    MB00,   8,
                    MBV0,   24,
                    ML00,   8,
                    MLV0,   24,
                    MB01,   8,
                    MBV1,   24,
                    ML01,   8,
                    MLV1,   24,
                    MB02,   8,
                    MBV2,   24,
                    ML02,   8,
                    MLV2,   24,
                    MB03,   8,
                    MBV3,   24,
                    ML03,   8,
                    MLV3,   24,
                    MB04,   8,
                    MBV4,   24,
                    ML04,   8,
                    MLV4,   24,
                    MB05,   8,
                    MBV5,   24,
                    ML05,   8,
                    MLV5,   24,
                    MB06,   8,
                    MBV6,   24,
                    ML06,   8,
                    MLV6,   24,
                    MB07,   8,
                    MBV7,   24,
                    ML07,   8,
                    MLV7,   24,
                    IB00,   6,
                        ,   6,
                    IBV0,   13,
                            Offset (0xC4),
                    IL00,   6,
                        ,   6,
                    ILV0,   13,
                            Offset (0xC8),
                    IB01,   6,
                        ,   6,
                    IBV1,   13,
                            Offset (0xCC),
                    IL01,   6,
                        ,   6,
                    ILV1,   13,
                            Offset (0xD0),
                    IB02,   6,
                        ,   6,
                    IBV2,   13,
                            Offset (0xD4),
                    IL02,   6,
                        ,   6,
                    ILV2,   13,
                            Offset (0xD8),
                    IB03,   6,
                        ,   6,
                    IBV3,   13,
                            Offset (0xDC),
                    IL03,   6,
                        ,   6,
                    ILV3,   13,
                            Offset (0xE0),
                    L0EN,   8,
                    DL00,   8,
                    BNB0,   8,
                    BNL0,   8,
                    L1EN,   8,
                    DL01,   8,
                    BNB1,   8,
                    BNL1,   8,
                    L2EN,   8,
                    DL02,   8,
                    BNB2,   8,
                    BNL2,   8,
                    L3EN,   8,
                    DL03,   8,
                    BNB3,   8,
                    BNL3,   8
                }
            }

            Device (K802)
            {
                Name (_BBN, 0x00)
                Name (_ADR, 0x00180002)
            }

            Device (K810)
            {
                Name (_BBN, 0x00)
                Name (_ADR, 0x00190000)
            }

            Device (K811)
            {
                Name (_BBN, 0x00)
                Name (_ADR, 0x00190001)
                OperationRegion (K281, PCI_Config, 0x00, 0xFF)
                Field (K281, AnyAcc, NoLock, Preserve)
                {
                            Offset (0x80),
                    MB00,   8,
                    MBV0,   24,
                    ML00,   8,
                    MLV0,   24,
                    MB01,   8,
                    MBV1,   24,
                    ML01,   8,
                    MLV1,   24,
                    MB02,   8,
                    MBV2,   24,
                    ML02,   8,
                    MLV2,   24,
                    MB03,   8,
                    MBV3,   24,
                    ML03,   8,
                    MLV3,   24,
                    MB04,   8,
                    MBV4,   24,
                    ML04,   8,
                    MLV4,   24,
                    MB05,   8,
                    MBV5,   24,
                    ML05,   8,
                    MLV5,   24,
                    MB06,   8,
                    MBV6,   24,
                    ML06,   8,
                    MLV6,   24,
                    MB07,   8,
                    MBV7,   24,
                    ML07,   8,
                    MLV7,   24,
                    IB00,   6,
                        ,   6,
                    IBV0,   13,
                            Offset (0xC4),
                    IL00,   6,
                        ,   6,
                    ILV0,   13,
                            Offset (0xC8),
                    IB01,   6,
                        ,   6,
                    IBV1,   13,
                            Offset (0xCC),
                    IL01,   6,
                        ,   6,
                    ILV1,   13,
                            Offset (0xD0),
                    IB02,   6,
                        ,   6,
                    IBV2,   13,
                            Offset (0xD4),
                    IL02,   6,
                        ,   6,
                    ILV2,   13,
                            Offset (0xD8),
                    IB03,   6,
                        ,   6,
                    IBV3,   13,
                            Offset (0xDC),
                    IL03,   6,
                        ,   6,
                    ILV3,   13,
                            Offset (0xE0),
                    L0EN,   8,
                    DL00,   8,
                    BNB0,   8,
                    BNL0,   8,
                    L1EN,   8,
                    DL01,   8,
                    BNB1,   8,
                    BNL1,   8,
                    L2EN,   8,
                    DL02,   8,
                    BNB2,   8,
                    BNL2,   8,
                    L3EN,   8,
                    DL03,   8,
                    BNB3,   8,
                    BNL3,   8
                }
            }

            Device (K812)
            {
                Name (_BBN, 0x00)
                Name (_ADR, 0x00190002)
            }

            Device (MXR0)
            {
                Name (_ADR, 0x00170000)
                OperationRegion (PCVA, PCI_Config, 0x00, 0xFF)
                Scope (\)
                {
Field (\_SB.PCI0.MXR0.PCVA, ByteAcc, NoLock, Preserve)
                    {
                        PEVA,   16,
                                Offset (0x9C),
                            ,   3,
                        XPEA,   1,
                                Offset (0xA0),
                        RQDA,   16,
                        PESA,   1,
                        PEPA,   1
                    }
                }

                Name (_PRW, Package (0x02)
                {
                    0x11,
                    0x05
                })
            }

            Device (MXR1)
            {
                Name (_ADR, 0x00160000)
                OperationRegion (PCVB, PCI_Config, 0x00, 0xFF)
                Scope (\)
                {
Field (\_SB.PCI0.MXR1.PCVB, ByteAcc, NoLock, Preserve)
                    {
                        PEVB,   16,
                                Offset (0x9C),
                            ,   3,
                        XPEB,   1,
                                Offset (0xA0),
                        RQDB,   16,
                        PESB,   1,
                        PEPB,   1
                    }
                }

                Name (_PRW, Package (0x02)
                {
                    0x11,
                    0x05
                })
            }

            Device (MXR2)
            {
                Name (_ADR, 0x00150000)
                OperationRegion (PCVC, PCI_Config, 0x00, 0xFF)
                Scope (\)
                {
Field (\_SB.PCI0.MXR2.PCVC, ByteAcc, NoLock, Preserve)
                    {
                        PEVC,   16,
                                Offset (0x9C),
                            ,   3,
                        XPEC,   1,
                                Offset (0xA0),
                        RQDC,   16,
                        PESC,   1,
                        PEPC,   1
                    }
                }

                Name (_PRW, Package (0x02)
                {
                    0x11,
                    0x05
                })
            }

            Device (MXR3)
            {
                Name (_ADR, 0x00140000)
                OperationRegion (PCVD, PCI_Config, 0x00, 0xFF)
                Scope (\)
                {
Field (\_SB.PCI0.MXR3.PCVD, ByteAcc, NoLock, Preserve)
                    {
                        PEVD,   16,
                                Offset (0x9C),
                            ,   3,
                        XPED,   1,
                                Offset (0xA0),
                        RQDD,   16,
                        PESD,   1,
                        PEPD,   1
                    }
                }

                Name (_PRW, Package (0x02)
                {
                    0x11,
                    0x05
                })
            }

            Device (MXR4)
            {
                Name (_ADR, 0x00130000)
                OperationRegion (PCVE, PCI_Config, 0x00, 0xFF)
                Scope (\)
                {
Field (\_SB.PCI0.MXR4.PCVE, ByteAcc, NoLock, Preserve)
                    {
                        PEVE,   16,
                                Offset (0x9C),
                            ,   3,
                        XPEE,   1,
                                Offset (0xA0),
                        RQDE,   16,
                        PESE,   1,
                        PEPE,   1
                    }
                }

                Name (_PRW, Package (0x02)
                {
                    0x11,
                    0x05
                })
            }

            Device (MXR5)
            {
                Name (_ADR, 0x00120000)
                OperationRegion (PCVF, PCI_Config, 0x00, 0xFF)
                Scope (\)
                {
Field (\_SB.PCI0.MXR5.PCVF, ByteAcc, NoLock, Preserve)
                    {
                        PEVF,   16,
                                Offset (0x9C),
                            ,   3,
                        XPEF,   1,
                                Offset (0xA0),
                        RQDF,   16,
                        PESF,   1,
                        PEPF,   1
                    }
                }

                Name (_PRW, Package (0x02)
                {
                    0x11,
                    0x05
                })
            }

            Device (XVR0)
            {
                Name (_ADR, 0x00020000)
                OperationRegion (PCV0, PCI_Config, 0x00, 0xFF)
                Scope (\)
                {
Field (\_SB.PCI0.XVR0.PCV0, ByteAcc, NoLock, Preserve)
                    {
                        PEV0,   16,
                                Offset (0x9C),
                            ,   3,
                        XPE0,   1,
                                Offset (0xA0),
                        RQD0,   16,
                        PES0,   1,
                        PEP0,   1
                    }
                }

                Name (_PRW, Package (0x02)
                {
                    0x11,
                    0x05
                })
            }

            Device (XVR1)
            {
                Name (_ADR, 0x00030000)
                OperationRegion (PCV1, PCI_Config, 0x00, 0xFF)
                Scope (\)
                {
Field (\_SB.PCI0.XVR1.PCV1, ByteAcc, NoLock, Preserve)
                    {
                        PEV1,   16,
                                Offset (0x9C),
                            ,   3,
                        XPE1,   1,
                                Offset (0xA0),
                        RQD1,   16,
                        PES1,   1,
                        PEP1,   1
                    }
                }

                Name (_PRW, Package (0x02)
                {
                    0x11,
                    0x05
                })
            }

            Device (XVR2)
            {
                Name (_ADR, 0x00040000)
                OperationRegion (PCV2, PCI_Config, 0x00, 0xFF)
                Scope (\)
                {
Field (\_SB.PCI0.XVR2.PCV2, ByteAcc, NoLock, Preserve)
                    {
                        PEV2,   16,
                                Offset (0x9C),
                            ,   3,
                        XPE2,   1,
                                Offset (0xA0),
                        RQD2,   16,
                        PES2,   1,
                        PEP2,   1
                    }
                }

                Name (_PRW, Package (0x02)
                {
                    0x11,
                    0x05
                })
            }

            Device (SMB0)
            {
                Name (_ADR, 0x00090001)
                OperationRegion (SMCF, PCI_Config, 0x48, 0x10)
                Field (SMCF, DWordAcc, NoLock, Preserve)
                {
                    SMPM,   4,
                    SMT1,   28,
                    SMT2,   32,
                    SB1,    32,
                    SB2,    32
                }

                Method (SMBB, 0, NotSerialized)
                {
                    If (PCIA)
                    {
                        And (SB1, 0xFFFE, Local0)
                    }
                    Else
                    {
                        Store (0x1C00, Local0)
                    }

                    Return (Local0)
                }
            }

            Device (VT86)
            {
                Name (_ADR, 0x00090000)
                OperationRegion (PIO0, PCI_Config, 0x04, 0x20)
                Scope (\)
                {
Field (\_SB.PCI0.VT86.PIO0, ByteAcc, NoLock, Preserve)
                    {
                        SMEN,   8,
                                Offset (0x0C),
                                Offset (0x0D),
                        SMIO,   8
                    }
                }

                OperationRegion (PIRQ, PCI_Config, 0x7C, 0x0C)
                Scope (\)
                {
Field (\_SB.PCI0.VT86.PIRQ, AnyAcc, NoLock, Preserve)
                    {
                        INTA,   4,
                        INTB,   4,
                        INTC,   4,
                        INTD,   4,
                        PCEA,   4,
                        PCEB,   4,
                        PCEC,   4,
                        PCED,   4,
                        SCII,   4,
                        TCOI,   4,
                        SMBI,   4,
                        US2I,   4,
                        P2PI,   4,
                        PMUI,   4,
                        SA1I,   4,
                        SA0I,   4,
                        US0I,   4,
                        MA1I,   4,
                        MA0I,   4,
                        AZAI,   4,
                        ACII,   4,
                        MCII,   4,
                        IDEI,   4,
                        SA2I,   4
                    }
                }

                OperationRegion (OCSP, PCI_Config, 0x78, 0x01)
                Scope (\)
                {
Field (\_SB.PCI0.VT86.OCSP, ByteAcc, NoLock, Preserve)
                    {
                        OCSE,   2,
                        OCSA,   3,
                        OCSI,   2
                    }
                }

                OperationRegion (PDEV, PCI_Config, 0xE8, 0x04)
                Scope (\)
                {
Field (\_SB.PCI0.VT86.PDEV, AnyAcc, NoLock, Preserve)
                    {
                            ,   12,
                        ACIE,   1
                    }
                }

                OperationRegion (LPIO, PCI_Config, 0xA0, 0x18)
                Scope (\)
                {
Field (\_SB.PCI0.VT86.LPIO, ByteAcc, NoLock, Preserve)
                    {
                        UAIO,   8,
                        SNDD,   4,
                        MIDD,   4,
                        MSSD,   4,
                        FDCD,   2,
                                Offset (0x03),
                        PRIO,   3,
                            ,   1,
                        GEN1,   1,
                        GEN2,   1,
                        GEN3,   1,
                        GEN4,   1,
                        GAM1,   8,
                        GAM2,   8
                    }

                    OperationRegion (RTC2, SystemIO, 0x72, 0x02)
                    Field (RTC2, ByteAcc, NoLock, Preserve)
                    {
                        CM2I,   8,
                        CM2D,   8
                    }

                    IndexField (CM2I, CM2D, ByteAcc, NoLock, Preserve)
                    {
                                Offset (0xCC),
                        UA1D,   8
                    }

                    Name (UARA, 0x00)
                    Name (UARB, 0x00)
                    Name (UARC, 0x00)
                    Method (DISD, 1, NotSerialized)
                    {
                        If (LEqual (Arg0, 0x00))
                        {
                            Store (UARA, Local0)
                            XOr (Local0, 0xFF, Local0)
                            And (UAIO, Local0, UAIO)
                        }

                        If (LEqual (Arg0, 0x01)) {}
                        If (LEqual (Arg0, 0x10))
                        {
                            Store (UARC, Local0)
                            XOr (Local0, 0xFF, Local0)
                            And (UAIO, Local0, UAIO)
                        }

                        If (LEqual (Arg0, 0x02))
                        {
                            Store (0x00, PRIO)
                        }

                        If (LEqual (Arg0, 0x03))
                        {
                            Store (0x00, FDCD)
                        }

                        If (LEqual (Arg0, 0x04))
                        {
                            Store (0x00, GAM1)
                            Store (0x00, GAM2)
                        }

                        If (LEqual (Arg0, 0x05))
                        {
                            Store (0x00, MIDD)
                        }
                    }

                    Method (CKIO, 2, NotSerialized)
                    {
                        If (LEqual (Arg1, 0x00))
                        {
                            Or (UARA, UARB, Local0)
                            Or (UARC, Local0, Local0)
                            And (UAIO, Local0, UAIO)
                            Store (UARA, Local0)
                            XOr (Local0, 0xFF, Local0)
                            And (UAIO, Local0, UAIO)
                            If (LEqual (Arg0, 0x03F8))
                            {
                                Store (0x01, Local0)
                            }

                            If (LEqual (Arg0, 0x02F8))
                            {
                                Store (0x02, Local0)
                            }

                            If (LEqual (Arg0, 0x02E8))
                            {
                                Store (0x20, Local0)
                            }

                            If (LEqual (Arg0, 0x03E8))
                            {
                                Store (0x80, Local0)
                            }

                            Or (UAIO, Local0, UAIO)
                            Store (Local0, UARA)
                        }

                        If (LEqual (Arg1, 0x01)) {}
                        If (LEqual (Arg1, 0x10))
                        {
                            Or (UARA, UARB, Local0)
                            Or (UARC, Local0, Local0)
                            And (UAIO, Local0, UAIO)
                            Store (UARC, Local0)
                            XOr (Local0, 0xFF, Local0)
                            And (UAIO, Local0, UAIO)
                            If (LEqual (Arg0, 0x03F8))
                            {
                                Store (0x01, Local0)
                            }

                            If (LEqual (Arg0, 0x02F8))
                            {
                                Store (0x02, Local0)
                            }

                            If (LEqual (Arg0, 0x02E8))
                            {
                                Store (0x20, Local0)
                            }

                            If (LEqual (Arg0, 0x03E8))
                            {
                                Store (0x80, Local0)
                            }

                            Or (UAIO, Local0, UAIO)
                            Store (Local0, UARC)
                        }

                        If (LEqual (Arg1, 0x02))
                        {
                            If (LEqual (Arg0, 0x0378))
                            {
                                Store (0x00, PRIO)
                                Or (PRIO, 0x01, PRIO)
                            }

                            If (LEqual (Arg0, 0x0278))
                            {
                                Store (0x00, PRIO)
                                Or (PRIO, 0x02, PRIO)
                            }

                            If (LEqual (Arg0, 0x03BC))
                            {
                                Store (0x00, PRIO)
                                Or (PRIO, 0x04, PRIO)
                            }
                        }

                        If (LEqual (Arg1, 0x03))
                        {
                            Or (FDCD, 0x01, FDCD)
                        }

                        If (LEqual (Arg1, 0x04))
                        {
                            Store (0x00, GAM1)
                            Store (0x00, GAM2)
                            If (LEqual (Arg0, 0x0201))
                            {
                                Or (GAM1, 0x02, GAM1)
                            }

                            If (LEqual (Arg0, 0x0209))
                            {
                                Or (GAM2, 0x02, GAM2)
                            }
                        }

                        If (LEqual (Arg1, 0x05))
                        {
                            Store (0x00, MIDD)
                            If (LEqual (Arg0, 0x0300))
                            {
                                Or (MIDD, 0x01, MIDD)
                            }

                            If (LEqual (Arg0, 0x0330))
                            {
                                Or (MIDD, 0x08, MIDD)
                            }
                        }
                    }

                    Method (SLDM, 2, NotSerialized)
                    {
                    }

                    Method (CLSU, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, 0x02, UARO)
                        If (LEqual (UARO, 0x03F8))
                        {
                            And (UAIO, 0xFE, UAIO)
                        }

                        If (LEqual (UARO, 0x02F8))
                        {
                            And (UAIO, 0xFD, UAIO)
                        }

                        If (LEqual (UARO, 0x02E8))
                        {
                            And (UAIO, 0xBF, UAIO)
                        }

                        If (LEqual (UARO, 0x03E8))
                        {
                            And (UAIO, 0x7F, UAIO)
                        }
                    }
                }
            }

            Device (USB0)
            {
                Name (_ADR, 0x000A0000)
                Method (_S1D, 0, NotSerialized)
                {
                    Return (0x01)
                }

                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
                    }
                    Else
                    {
                        Return (0x03)
                    }
                }

                Name (_PRW, Package (0x02)
                {
                    0x0D,
                    0x03
                })
            }

            Device (USB2)
            {
                Name (_ADR, 0x000A0001)
                OperationRegion (P020, PCI_Config, 0x49, 0x01)
                Field (P020, AnyAcc, NoLock, Preserve)
                {
                    U0WK,   1
                }

                Method (_PSW, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        Store (0x01, U0WK)
                    }
                    Else
                    {
                        Store (0x00, U0WK)
                    }
                }

                Method (_S1D, 0, NotSerialized)
                {
                    Return (0x01)
                }

                Method (_S3D, 0, NotSerialized)
                {
                    Return (0x01)
                }

                Name (_PRW, Package (0x02)
                {
                    0x05,
                    0x03
                })
            }

            Device (MMAC)
            {
                Name (_ADR, 0x00100000)
                Name (_PRW, Package (0x02)
                {
                    0x0B,
                    0x05
                })
            }

            Device (MAC1)
            {
                Name (_ADR, 0x00110000)
                Name (_PRW, Package (0x02)
                {
                    0x0A,
                    0x05
                })
            }

            Device (AZA)
            {
                Name (_ADR, 0x000E0001)
                Name (_PRW, Package (0x02)
                {
                    0x15,
                    0x05
                })
            }

            Device (NVRB)
            {
                Name (_HID, "NVRAIDBUS")
                OperationRegion (NVRD, SystemMemory, 0x000FFF38, 0x03)
                Field (NVRD, ByteAcc, NoLock, Preserve)
                {
                    R_ST,   1,
                        ,   3,
                    R_P0,   4,
                    R_S0,   4,
                    R_S1,   4,
                    R_S2,   4
                }

                Name (FNVR, 0xFF)
                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, FNVR)
                }

                Method (_STA, 0, NotSerialized)
                {
                    If (LEqual (R_ST, 0x01))
                    {
                        If (LEqual (FNVR, 0xFF))
                        {
                            Return (0x0F)
                        }
                        Else
                        {
                            Return (0x0D)
                        }
                    }
                    Else
                    {
                        Return (0x00)
                    }
                }

                Name (_CRS, ResourceTemplate ()
                {
                    IO (Decode16,
                        0x04D2,             // Range Minimum
                        0x04D2,             // Range Maximum
                        0x01,               // Alignment
                        0x01,               // Length
                        )
                })
                Method (_SRS, 1, NotSerialized)
                {
                    Store (0xFF, FNVR)
                }
            }

            Name (BUFA, ResourceTemplate ()
            {
                IRQ (Level, ActiveLow, Shared, )
                    {5,7,9,10,11,14,15}
            })
            Name (BUFB, ResourceTemplate ()
            {
                IRQ (Level, ActiveLow, Shared, _Y06)
                    {}
            })
            CreateWordField (BUFB, \_SB.PCI0._Y06._INT, IRQV)
            Method (CRS, 1, NotSerialized)
            {
                If (Arg0)
                {
                    ShiftLeft (0x01, Arg0, IRQV)
                }
                Else
                {
                    Store (Zero, IRQV)
                }

                Return (BUFB)
            }

            Method (SRS, 1, NotSerialized)
            {
                CreateWordField (Arg0, 0x01, IRQ0)
                FindSetRightBit (IRQ0, Local0)
                Decrement (Local0)
                Return (Local0)
            }

            Method (CRSA, 1, Serialized)
            {
                Store (0x00, Local0)
                If (LEqual (Arg0, 0x01))
                {
                    Store (0x17, Local0)
                }

                If (LEqual (Arg0, 0x02))
                {
                    Store (0x16, Local0)
                }

                If (LEqual (Arg0, 0x03))
                {
                    Store (0x10, Local0)
                }

                If (LEqual (Arg0, 0x04))
                {
                    Store (0x11, Local0)
                }

                If (LEqual (Arg0, 0x06))
                {
                    Store (0x12, Local0)
                }

                If (LEqual (Arg0, 0x08))
                {
                    Store (0x14, Local0)
                }

                If (LEqual (Arg0, 0x0C))
                {
                    Store (0x13, Local0)
                }

                If (LEqual (Arg0, 0x0D))
                {
                    Store (0x15, Local0)
                }

                If (LEqual (Local0, 0x00))
                {
                    Return (CRS (Arg0))
                }
                Else
                {
                    Name (IRZ5, ResourceTemplate ()
                    {
Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, _Y07)
                        {
                            0x00000007,
                        }
                    })
CreateWordField (IRZ5, \_SB.PCI0.CRSA._Y07._INT, INZ5)
                    Store (Local0, INZ5)
                    Return (IRZ5)
                }
            }

            Method (SRSA, 1, Serialized)
            {
                CreateWordField (Arg0, 0x05, INZ6)
                Store (0x08, Local0)
                If (LEqual (INZ6, 0x10))
                {
                    Store (0x03, Local0)
                }

                If (LEqual (INZ6, 0x11))
                {
                    Store (0x04, Local0)
                }

                If (LEqual (INZ6, 0x12))
                {
                    Store (0x06, Local0)
                }

                If (LEqual (INZ6, 0x13))
                {
                    Store (0x0C, Local0)
                }

                If (LEqual (INZ6, 0x14))
                {
                    Store (0x08, Local0)
                }

                If (LEqual (INZ6, 0x15))
                {
                    Store (0x0D, Local0)
                }

                If (LEqual (INZ6, 0x16))
                {
                    Store (0x02, Local0)
                }

                If (LEqual (INZ6, 0x17))
                {
                    Store (0x01, Local0)
                }

                Return (Local0)
            }

            Device (LNK1)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x01)
                Method (_STA, 0, NotSerialized)
                {
                    If (INTA)
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFA)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, INTA)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRS (INTA))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRS (Arg0), INTA)
                }
            }

            Device (LNK2)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x02)
                Method (_STA, 0, NotSerialized)
                {
                    If (INTB)
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFA)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, INTB)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRS (INTB))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRS (Arg0), INTB)
                }
            }

            Device (LNK3)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x03)
                Method (_STA, 0, NotSerialized)
                {
                    If (INTC)
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFA)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, INTC)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRS (INTC))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRS (Arg0), INTC)
                }
            }

            Device (LNK4)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x04)
                Method (_STA, 0, NotSerialized)
                {
                    If (INTD)
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFA)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, INTD)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRS (INTD))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRS (Arg0), INTD)
                }
            }

            Device (LXV5)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x05)
                Method (_STA, 0, NotSerialized)
                {
                    If (PCEA)
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFA)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, PCEA)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRS (PCEA))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRS (Arg0), PCEA)
                }
            }

            Device (LXV6)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x06)
                Method (_STA, 0, NotSerialized)
                {
                    If (PCEB)
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFA)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, PCEB)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRS (PCEB))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRS (Arg0), PCEB)
                }
            }

            Device (LXV7)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x07)
                Method (_STA, 0, NotSerialized)
                {
                    If (PCEC)
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFA)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, PCEC)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRS (PCEC))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRS (Arg0), PCEC)
                }
            }

            Device (LXV8)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x08)
                Method (_STA, 0, NotSerialized)
                {
                    If (PCED)
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFA)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, PCED)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRS (PCED))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRS (Arg0), PCED)
                }
            }

            Device (LUBA)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x11)
                Method (_STA, 0, NotSerialized)
                {
                    If (US0I)
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFA)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, US0I)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRS (US0I))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRS (Arg0), US0I)
                }
            }

            Device (LMC1)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x12)
                Method (_STA, 0, NotSerialized)
                {
                    If (MA1I)
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFA)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, MA1I)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRS (MA1I))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRS (Arg0), MA1I)
                }
            }

            Device (LMAC)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x13)
                Method (_STA, 0, NotSerialized)
                {
                    If (MA0I)
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFA)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, MA0I)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRS (MA0I))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRS (Arg0), MA0I)
                }
            }

            Device (LAZA)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x14)
                Method (_STA, 0, NotSerialized)
                {
                    If (AZAI)
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFA)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, AZAI)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRS (AZAI))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRS (Arg0), AZAI)
                }
            }

            Device (LSMB)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x0B)
                Method (_STA, 0, NotSerialized)
                {
                    If (SMBI)
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFA)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, SMBI)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRS (SMBI))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRS (Arg0), SMBI)
                }
            }

            Device (LUB2)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x0C)
                Method (_STA, 0, NotSerialized)
                {
                    If (US2I)
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFA)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, US2I)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRS (US2I))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRS (Arg0), US2I)
                }
            }

            Device (LIDE)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x17)
                Method (_STA, 0, NotSerialized)
                {
                    If (IDEI)
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFA)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, IDEI)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRS (IDEI))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRS (Arg0), IDEI)
                }
            }

            Device (LSA0)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x10)
                Method (_STA, 0, NotSerialized)
                {
                    If (SA0I)
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFA)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, SA0I)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRS (SA0I))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRS (Arg0), SA0I)
                }
            }

            Device (LSA1)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x0F)
                Method (_STA, 0, NotSerialized)
                {
                    If (SA1I)
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFA)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, SA1I)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRS (SA1I))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRS (Arg0), SA1I)
                }
            }

            Device (LSA2)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x18)
                Method (_STA, 0, NotSerialized)
                {
                    If (SA2I)
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFA)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, SA2I)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRS (SA2I))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRS (Arg0), SA2I)
                }
            }

            Name (BUF1, ResourceTemplate ()
            {
Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
                {
                    0x00000010,
                }
            })
            Name (BUF2, ResourceTemplate ()
            {
Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
                {
                    0x00000011,
                }
            })
            Name (BUF3, ResourceTemplate ()
            {
Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
                {
                    0x00000012,
                }
            })
            Name (BUF4, ResourceTemplate ()
            {
Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
                {
                    0x00000013,
                }
            })
            Name (BUFF, ResourceTemplate ()
            {
Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
                {
                    0x00000014,
                    0x00000015,
                    0x00000016,
                    0x00000017,
                }
            })
            Name (BUFH, ResourceTemplate ()
            {
Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
                {
                    0x0000000B,
                }
            })
            Name (BUFI, ResourceTemplate ()
            {
Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
                {
                    0x00000017,
                }
            })
            Name (IRZ1, ResourceTemplate ()
            {
Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
                {
                    0x00000007,
                }
            })
            Device (APC1)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x65)
                Method (_STA, 0, NotSerialized)
                {
                    If (LAnd (INTA, PICF))
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUF1)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, INTA)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRSA (INTA))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRSA (Arg0), INTA)
                }
            }

            Device (APC2)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x66)
                Method (_STA, 0, NotSerialized)
                {
                    If (LAnd (INTB, PICF))
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUF2)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, INTB)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRSA (INTB))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRSA (Arg0), INTB)
                }
            }

            Device (APC3)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x67)
                Method (_STA, 0, NotSerialized)
                {
                    If (LAnd (INTC, PICF))
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUF3)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, INTC)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRSA (INTC))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRSA (Arg0), INTC)
                }
            }

            Device (APC4)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x68)
                Method (_STA, 0, NotSerialized)
                {
                    If (LAnd (INTD, PICF))
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUF4)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, INTD)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRSA (INTD))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRSA (Arg0), INTD)
                }
            }

            Device (AXV5)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x69)
                Method (_STA, 0, NotSerialized)
                {
                    If (LAnd (PCEA, PICF))
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUF1)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, PCEA)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRSA (PCEA))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRSA (Arg0), PCEA)
                }
            }

            Device (AXV6)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x6A)
                Method (_STA, 0, NotSerialized)
                {
                    If (LAnd (PCEB, PICF))
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUF1)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, PCEB)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRSA (PCEB))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRSA (Arg0), PCEB)
                }
            }

            Device (AXV7)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x6B)
                Method (_STA, 0, NotSerialized)
                {
                    If (LAnd (PCEC, PICF))
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUF1)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, PCEC)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRSA (PCEC))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRSA (Arg0), PCEC)
                }
            }

            Device (AXV8)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x6C)
                Method (_STA, 0, NotSerialized)
                {
                    If (LAnd (PCED, PICF))
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUF1)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, PCED)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRSA (PCED))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRSA (Arg0), PCED)
                }
            }

            Device (AUBA)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x75)
                Method (_STA, 0, NotSerialized)
                {
                    If (LAnd (US0I, PICF))
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFF)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, US0I)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRSA (US0I))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRSA (Arg0), US0I)
                }
            }

            Device (AMA1)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x76)
                Method (_STA, 0, NotSerialized)
                {
                    If (LAnd (MA1I, PICF))
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFF)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, MA1I)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRSA (MA1I))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRSA (Arg0), MA1I)
                }
            }

            Device (AMAC)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x77)
                Method (_STA, 0, NotSerialized)
                {
                    If (LAnd (MA0I, PICF))
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFF)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, MA0I)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRSA (MA0I))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRSA (Arg0), MA0I)
                }
            }

            Device (AAZA)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x78)
                Method (_STA, 0, NotSerialized)
                {
                    If (LAnd (AZAI, PICF))
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFF)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, AZAI)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRSA (AZAI))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRSA (Arg0), AZAI)
                }
            }

            Device (AACI)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x79)
                Method (_STA, 0, NotSerialized)
                {
                    If (LAnd (ACII, PICF))
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFF)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, ACII)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRSA (ACII))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRSA (Arg0), ACII)
                }
            }

            Device (AMCI)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x7A)
                Method (_STA, 0, NotSerialized)
                {
                    If (LAnd (MCII, PICF))
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFF)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, MCII)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRSA (MCII))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRSA (Arg0), MCII)
                }
            }

            Device (ASMB)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x6F)
                Method (_STA, 0, NotSerialized)
                {
                    If (LAnd (SMBI, PICF))
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFF)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, SMBI)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRSA (SMBI))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRSA (Arg0), SMBI)
                }
            }

            Device (AUS2)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x70)
                Method (_STA, 0, NotSerialized)
                {
                    If (LAnd (US2I, PICF))
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFF)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, US2I)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRSA (US2I))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRSA (Arg0), US2I)
                }
            }

            Device (AIDE)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x7B)
                Method (_STA, 0, NotSerialized)
                {
                    If (LAnd (IDEI, PICF))
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFF)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, IDEI)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRSA (IDEI))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRSA (Arg0), IDEI)
                }
            }

            Device (ASA0)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x74)
                Method (_STA, 0, NotSerialized)
                {
                    If (LAnd (SA0I, PICF))
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, SA0I)
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFF)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRSA (SA0I))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRSA (Arg0), SA0I)
                }
            }

            Device (ASA1)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x73)
                Method (_STA, 0, NotSerialized)
                {
                    If (LAnd (SA1I, PICF))
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, SA1I)
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFF)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRSA (SA1I))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRSA (Arg0), SA1I)
                }
            }

            Device (ASA2)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, 0x26)
                Method (_STA, 0, NotSerialized)
                {
                    If (LAnd (SA1I, PICF))
                    {
                        Return (0x0B)
                    }
                    Else
                    {
                        Return (0x09)
                    }
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, SA2I)
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFF)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (CRSA (SA2I))
                }

                Method (_SRS, 1, NotSerialized)
                {
                    Store (SRSA (Arg0), SA2I)
                }
            }

            Scope (\)
            {
                OperationRegion (\SCPP, SystemIO, 0x142E, 0x01)
                Field (\SCPP, ByteAcc, NoLock, Preserve)
                {
                    SMIP,   8
                }
            }

            Method (\_SB.PCI0._INI, 0, NotSerialized)
            {
                If (STRC (\_OS, "Microsoft Windows"))
                {
                    Store (0x56, SMIP)
                }
                Else
                {
                    If (STRC (\_OS, "Microsoft Windows NT"))
                    {
                        If (CondRefOf (\_OSI, Local0))
                        {
                            If (\_OSI ("Windows 2001"))
                            {
                                Store (0x59, SMIP)
                                Store (0x00, OSFL)
                                Store (0x03, OSFX)
                            }
                        }
                        Else
                        {
                            Store (0x58, SMIP)
                            Store (0x00, OSFX)
                            Store (0x00, OSFL)
                        }
                    }
                    Else
                    {
                        Store (0x57, SMIP)
                        Store (0x02, OSFX)
                        Store (0x02, OSFL)
                    }
                }

                Name (TEMP, 0x00)
                Store (UA1D, TEMP)
                And (TEMP, 0x0F, TEMP)
                ShiftLeft (0x01, TEMP, UARA)
                Store (UA1D, TEMP)
                And (TEMP, 0xF0, TEMP)
                ShiftRight (TEMP, 0x04, TEMP)
                ShiftLeft (0x01, TEMP, UARB)
            }

            Scope (\)
            {
                Method (OSTP, 0, NotSerialized)
                {
                    If (LEqual (OSFX, 0x01))
                    {
                        Store (0x56, SMIP)
                    }

                    If (LEqual (OSFX, 0x02))
                    {
                        Store (0x57, SMIP)
                    }

                    If (LEqual (OSFX, 0x00))
                    {
                        Store (0x58, SMIP)
                    }

                    If (LEqual (OSFX, 0x03))
                    {
                        Store (0x59, SMIP)
                    }
                }
            }

            Device (SYSR)
            {
                Name (_HID, EisaId ("PNP0C02"))
                Name (_UID, 0x01)
                Name (_CRS, ResourceTemplate ()
                {
                    IO (Decode16,
                        0x0010,             // Range Minimum
                        0x0010,             // Range Maximum
                        0x01,               // Alignment
                        0x10,               // Length
                        )
                    IO (Decode16,
                        0x0022,             // Range Minimum
                        0x0022,             // Range Maximum
                        0x01,               // Alignment
                        0x1E,               // Length
                        )
                    IO (Decode16,
                        0x0044,             // Range Minimum
                        0x0044,             // Range Maximum
                        0x01,               // Alignment
                        0x1C,               // Length
                        )
                    IO (Decode16,
                        0x0062,             // Range Minimum
                        0x0062,             // Range Maximum
                        0x01,               // Alignment
                        0x02,               // Length
                        )
                    IO (Decode16,
                        0x0065,             // Range Minimum
                        0x0065,             // Range Maximum
                        0x01,               // Alignment
                        0x0B,               // Length
                        )
                    IO (Decode16,
                        0x0074,             // Range Minimum
                        0x0074,             // Range Maximum
                        0x01,               // Alignment
                        0x0C,               // Length
                        )
                    IO (Decode16,
                        0x0091,             // Range Minimum
                        0x0091,             // Range Maximum
                        0x01,               // Alignment
                        0x03,               // Length
                        )
                    IO (Decode16,
                        0x00A2,             // Range Minimum
                        0x00A2,             // Range Maximum
                        0x01,               // Alignment
                        0x1E,               // Length
                        )
                    IO (Decode16,
                        0x00E0,             // Range Minimum
                        0x00E0,             // Range Maximum
                        0x01,               // Alignment
                        0x10,               // Length
                        )
                    IO (Decode16,
                        0x04D0,             // Range Minimum
                        0x04D0,             // Range Maximum
                        0x01,               // Alignment
                        0x02,               // Length
                        )
                    IO (Decode16,
                        0x0295,             // Range Minimum
                        0x0295,             // Range Maximum
                        0x01,               // Alignment
                        0x80,               // Length
                        )
                })
            }

            Device (PIC)
            {
                Name (_HID, EisaId ("PNP0000"))
                Name (_CRS, ResourceTemplate ()
                {
                    IO (Decode16,
                        0x0020,             // Range Minimum
                        0x0020,             // Range Maximum
                        0x01,               // Alignment
                        0x02,               // Length
                        )
                    IO (Decode16,
                        0x00A0,             // Range Minimum
                        0x00A0,             // Range Maximum
                        0x01,               // Alignment
                        0x02,               // Length
                        )
                    IRQNoFlags ()
                        {2}
                })
            }

            Device (DMA1)
            {
                Name (_HID, EisaId ("PNP0200"))
                Name (_CRS, ResourceTemplate ()
                {
                    DMA (Compatibility, BusMaster, Transfer8, )
                        {4}
                    IO (Decode16,
                        0x0000,             // Range Minimum
                        0x0000,             // Range Maximum
                        0x01,               // Alignment
                        0x10,               // Length
                        )
                    IO (Decode16,
                        0x0080,             // Range Minimum
                        0x0080,             // Range Maximum
                        0x01,               // Alignment
                        0x11,               // Length
                        )
                    IO (Decode16,
                        0x0094,             // Range Minimum
                        0x0094,             // Range Maximum
                        0x01,               // Alignment
                        0x0C,               // Length
                        )
                    IO (Decode16,
                        0x00C0,             // Range Minimum
                        0x00C0,             // Range Maximum
                        0x01,               // Alignment
                        0x20,               // Length
                        )
                })
            }

            Device (TMR)
            {
                Name (_HID, EisaId ("PNP0100"))
                Name (_CRS, ResourceTemplate ()
                {
                    IO (Decode16,
                        0x0040,             // Range Minimum
                        0x0040,             // Range Maximum
                        0x01,               // Alignment
                        0x04,               // Length
                        )
                    IRQNoFlags ()
                        {0}
                })
            }

            Device (RTC)
            {
                Name (_HID, EisaId ("PNP0B00"))
                Name (_CRS, ResourceTemplate ()
                {
                    IO (Decode16,
                        0x0070,             // Range Minimum
                        0x0070,             // Range Maximum
                        0x04,               // Alignment
                        0x04,               // Length
                        )
                    IRQNoFlags ()
                        {8}
                })
            }

            Device (SPKR)
            {
                Name (_HID, EisaId ("PNP0800"))
                Name (_CRS, ResourceTemplate ()
                {
                    IO (Decode16,
                        0x0061,             // Range Minimum
                        0x0061,             // Range Maximum
                        0x01,               // Alignment
                        0x01,               // Length
                        )
                })
            }

            Device (COPR)
            {
                Name (_HID, EisaId ("PNP0C04"))
                Name (_CRS, ResourceTemplate ()
                {
                    IO (Decode16,
                        0x00F0,             // Range Minimum
                        0x00F0,             // Range Maximum
                        0x01,               // Alignment
                        0x10,               // Length
                        )
                    IRQNoFlags ()
                        {13}
                })
            }

            Device (OCU1)
            {
                Method (_INI, 0, NotSerialized)
                {
                    Store (OCSE, OCEB)
                    If (OCSE)
                    {
                        ShiftLeft (0x01, OCSA, UARC)
                    }
                }

                Name (OCEB, 0x02)
                Name (_HID, EisaId ("PNP0501"))
                Name (_UID, 0x03)
                Method (_STA, 0, NotSerialized)
                {
                    If (LNot (OCEB))
                    {
                        Return (0x00)
                    }

                    If (OCSE)
                    {
                        Return (0x0F)
                    }
                    Else
                    {
                        Return (0x0D)
                    }
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Store (0x00, OCSE)
                    DISD (0x10)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Name (BUF1, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            _Y08)
                        IRQNoFlags (_Y09)
                            {}
                    })
CreateWordField (BUF1, \_SB.PCI0.OCU1._CRS._Y08._MIN, IOLO) CreateWordField (BUF1, \_SB.PCI0.OCU1._CRS._Y08._MAX, IORL) CreateWordField (BUF1, \_SB.PCI0.OCU1._CRS._Y09._INT, IRQW)
                    Store (0x00, IOLO)
                    Store (0x00, IORL)
                    Store (0x00, IRQW)
                    If (OCSE)
                    {
                        If (LEqual (OCSA, 0x00))
                        {
                            Store (0x03F8, IOLO)
                            Store (0x03F8, IORL)
                        }

                        If (LEqual (OCSA, 0x01))
                        {
                            Store (0x02F8, IOLO)
                            Store (0x02F8, IORL)
                        }

                        If (LEqual (OCSA, 0x02))
                        {
                            Store (0x0220, IOLO)
                            Store (0x0220, IORL)
                        }

                        If (LEqual (OCSA, 0x03))
                        {
                            Store (0x0228, IOLO)
                            Store (0x0228, IORL)
                        }

                        If (LEqual (OCSA, 0x04))
                        {
                            Store (0x0238, IOLO)
                            Store (0x0238, IORL)
                        }

                        If (LEqual (OCSA, 0x05))
                        {
                            Store (0x02E8, IOLO)
                            Store (0x02E8, IORL)
                        }

                        If (LEqual (OCSA, 0x06))
                        {
                            Store (0x0338, IOLO)
                            Store (0x0338, IORL)
                        }

                        If (LEqual (OCSA, 0x07))
                        {
                            Store (0x03E8, IOLO)
                            Store (0x03E8, IORL)
                        }

                        If (LEqual (OCSI, 0x01))
                        {
                            Store (0x08, IRQW)
                        }

                        If (LEqual (OCSI, 0x02))
                        {
                            Store (0x10, IRQW)
                        }
                    }

                    Return (BUF1)
                }

                Name (_PRS, ResourceTemplate ()
                {
                    StartDependentFnNoPri ()
                    {
                        IO (Decode16,
                            0x03F8,             // Range Minimum
                            0x03F8,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            )
                        IRQNoFlags ()
                            {3,4}
                    }
                    StartDependentFnNoPri ()
                    {
                        IO (Decode16,
                            0x02F8,             // Range Minimum
                            0x02F8,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            )
                        IRQNoFlags ()
                            {3,4}
                    }
                    StartDependentFnNoPri ()
                    {
                        IO (Decode16,
                            0x03E8,             // Range Minimum
                            0x03E8,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            )
                        IRQNoFlags ()
                            {3,4}
                    }
                    StartDependentFnNoPri ()
                    {
                        IO (Decode16,
                            0x02E8,             // Range Minimum
                            0x02E8,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            )
                        IRQNoFlags ()
                            {3,4}
                    }
                    EndDependentFn ()
                })
                Method (_SRS, 1, NotSerialized)
                {
                    CreateWordField (Arg0, 0x02, IOAD)
                    CreateWordField (Arg0, 0x09, IRQW)
                    If (LEqual (IOAD, 0x03F8))
                    {
                        Store (0x00, OCSA)
                    }

                    If (LEqual (IOAD, 0x02F8))
                    {
                        Store (0x01, OCSA)
                    }

                    If (LEqual (IOAD, 0x0220))
                    {
                        Store (0x02, OCSA)
                    }

                    If (LEqual (IOAD, 0x0228))
                    {
                        Store (0x03, OCSA)
                    }

                    If (LEqual (IOAD, 0x0238))
                    {
                        Store (0x04, OCSA)
                    }

                    If (LEqual (IOAD, 0x02E8))
                    {
                        Store (0x05, OCSA)
                    }

                    If (LEqual (IOAD, 0x0338))
                    {
                        Store (0x06, OCSA)
                    }

                    If (LEqual (IOAD, 0x03E8))
                    {
                        Store (0x07, OCSA)
                    }

                    If (LEqual (IRQW, 0x08))
                    {
                        Store (0x01, OCSI)
                    }

                    If (LEqual (IRQW, 0x10))
                    {
                        Store (0x02, OCSI)
                    }

                    Store (OCEB, OCSE)
                    CKIO (IOAD, 0x10)
                }
            }

            Scope (\)
            {
                OperationRegion (WIN1, SystemIO, 0x2E, 0x02)
                Field (WIN1, ByteAcc, NoLock, Preserve)
                {
                    INDP,   8,
                    DATA,   8
                }

                IndexField (INDP, DATA, ByteAcc, NoLock, Preserve)
                {
                            Offset (0x02),
                    CFG,    8,
                            Offset (0x07),
                    LDN,    8,
                            Offset (0x20),
                    IDHI,   8,
                    IDLO,   8,
                    POWC,   8,
                            Offset (0x30),
                    ACTR,   8,
                            Offset (0x60),
                    IOAH,   8,
                    IOAL,   8,
                    IO2H,   8,
                    IO2L,   8,
                            Offset (0x70),
                    INTR,   8,
                            Offset (0x72),
                    INT1,   8,
                            Offset (0x74),
                    DMCH,   8,
                            Offset (0xE0),
                    CRE0,   8,
                    CRE1,   8,
                    CRE2,   8,
                    CRE3,   8,
                    CRE4,   8,
                            Offset (0xF0),
                    OPT1,   8,
                    OPT2,   8,
                    OPT3,   8,
                    OPT4,   8,
                    OPT5,   8,
                    OPT6,   8,
                    OPT7,   8,
                    OPT8,   8,
                    OPT9,   8,
                    OPTA,   8
                }

                Method (ENFG, 0, NotSerialized)
                {
                    Store (0x87, INDP)
                    Store (0x87, INDP)
                }

                Method (EXFG, 0, NotSerialized)
                {
                    Store (0xAA, INDP)
                }
            }

            OperationRegion (COM1, SystemIO, 0x03F8, 0x08)
            Field (COM1, ByteAcc, NoLock, Preserve)
            {
                P3F8,   8,
                P3F9,   8,
                P3FA,   8,
                P3FB,   8,
                P3FC,   8,
                P3FD,   8,
                P3FE,   8,
                P3FF,   8
            }

            OperationRegion (COM2, SystemIO, 0x02F8, 0x08)
            Field (COM2, ByteAcc, NoLock, Preserve)
            {
                P2F8,   8,
                P2F9,   8,
                P2FA,   8,
                P2FB,   8,
                P2FC,   8,
                P2FD,   8,
                P2FE,   8,
                P2FF,   8
            }

            OperationRegion (COM3, SystemIO, 0x03E8, 0x08)
            Field (COM3, ByteAcc, NoLock, Preserve)
            {
                P3E8,   8,
                P3E9,   8,
                P3EA,   8,
                P3EB,   8,
                P3EC,   8,
                P3ED,   8,
                P3EE,   8,
                P3EF,   8
            }

            OperationRegion (COM4, SystemIO, 0x02E8, 0x08)
            Field (COM4, ByteAcc, NoLock, Preserve)
            {
                P2E8,   8,
                P2E9,   8,
                P2EA,   8,
                P2EB,   8,
                P2EC,   8,
                P2ED,   8,
                P2EE,   8,
                P2EF,   8
            }

            Method (ICOM, 1, NotSerialized)
            {
                Store (Arg0, Local0)
                If (LEqual (Local0, 0x03F8))
                {
                    Store (P3FD, Local0)
                    Store (P3FD, Local0)
                    Store (0xC3, P3FA)
                    While (LNotEqual (P3FA, 0xC1))
                    {
                        Store (P3FE, Local0)
                    }
                }
                Else
                {
                    If (LEqual (Local0, 0x02F8))
                    {
                        Store (P2FD, Local0)
                        Store (P2FD, Local0)
                        Store (0xC3, P2FA)
                        While (LNotEqual (P2FA, 0xC1))
                        {
                            Store (P2FE, Local0)
                        }
                    }
                    Else
                    {
                        If (LEqual (Local0, 0x03E8))
                        {
                            Store (P3ED, Local0)
                            Store (P3ED, Local0)
                            Store (0xC3, P3EA)
                            While (LNotEqual (P3EA, 0xC1))
                            {
                                Store (P3EE, Local0)
                            }
                        }
                        Else
                        {
                            If (LEqual (Local0, 0x02E8))
                            {
                                Store (P2ED, Local0)
                                Store (P2ED, Local0)
                                Store (0xC3, P2EA)
                                While (LNotEqual (P2EA, 0xC1))
                                {
                                    Store (P2EE, Local0)
                                }
                            }
                        }
                    }
                }
            }

            Device (FDC0)
            {
                Name (_HID, EisaId ("PNP0700"))
                Method (_STA, 0, NotSerialized)
                {
                    ENFG ()
                    Store (Zero, LDN)
                    If (ACTR)
                    {
                        EXFG ()
                        Return (0x0F)
                    }
                    Else
                    {
                        If (LOr (IOAH, IOAL))
                        {
                            EXFG ()
                            Return (0x0D)
                        }
                        Else
                        {
                            EXFG ()
                            Return (0x00)
                        }
                    }
                }

                Method (_DIS, 0, NotSerialized)
                {
                    ENFG ()
                    Store (0x00, LDN)
                    Store (Zero, ACTR)
                    SLDM (DMCH, 0x04)
                    EXFG ()
                    DISD (0x03)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Name (BUF0, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x03F0,             // Range Minimum
                            0x03F0,             // Range Maximum
                            0x01,               // Alignment
                            0x06,               // Length
                            _Y0A)
                        IO (Decode16,
                            0x03F7,             // Range Minimum
                            0x03F7,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IRQNoFlags ()
                            {6}
                        DMA (Compatibility, NotBusMaster, Transfer8, )
                            {2}
                    })
CreateByteField (BUF0, \_SB.PCI0.FDC0._CRS._Y0A._MIN, IOLO)
                    CreateByteField (BUF0, 0x03, IOHI)
CreateByteField (BUF0, \_SB.PCI0.FDC0._CRS._Y0A._MAX, IORL)
                    CreateByteField (BUF0, 0x05, IORH)
                    ENFG ()
                    EXFG ()
                    Return (BUF0)
                }

                Name (_PRS, ResourceTemplate ()
                {
                    StartDependentFnNoPri ()
                    {
                        IO (Decode16,
                            0x03F0,             // Range Minimum
                            0x03F0,             // Range Maximum
                            0x01,               // Alignment
                            0x06,               // Length
                            )
                        IO (Decode16,
                            0x03F7,             // Range Minimum
                            0x03F7,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IRQNoFlags ()
                            {6}
                        DMA (Compatibility, NotBusMaster, Transfer8, )
                            {2}
                    }
                    EndDependentFn ()
                })
                Method (_SRS, 1, NotSerialized)
                {
                    CreateByteField (Arg0, 0x02, IOLO)
                    CreateByteField (Arg0, 0x03, IOHI)
                    CreateWordField (Arg0, 0x02, IOAD)
                    CreateWordField (Arg0, 0x19, IRQL)
                    CreateByteField (Arg0, 0x1C, DMAV)
                    ENFG ()
                    Store (Zero, LDN)
                    Store (One, ACTR)
                    SLDM (DMCH, DMCH)
                    EXFG ()
                    CKIO (IOAD, 0x03)
                }
            }

            Device (UAR1)
            {
                Name (_HID, EisaId ("PNP0501"))
                Name (_UID, 0x01)
                Method (_STA, 0, NotSerialized)
                {
                    ENFG ()
                    Store (0x02, LDN)
                    If (ACTR)
                    {
                        EXFG ()
                        Return (0x0F)
                    }
                    Else
                    {
                        If (LOr (IOAH, IOAL))
                        {
                            EXFG ()
                            Return (0x0D)
                        }
                        Else
                        {
                            EXFG ()
                            Return (0x00)
                        }
                    }

                    EXFG ()
                }

                Method (_DIS, 0, NotSerialized)
                {
                    ENFG ()
                    Store (0x02, LDN)
                    Store (Zero, ACTR)
                    EXFG ()
                    DISD (0x00)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Name (BUF1, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            _Y0B)
                        IRQNoFlags (_Y0C)
                            {}
                    })
CreateByteField (BUF1, \_SB.PCI0.UAR1._CRS._Y0B._MIN, IOLO)
                    CreateByteField (BUF1, 0x03, IOHI)
CreateByteField (BUF1, \_SB.PCI0.UAR1._CRS._Y0B._MAX, IORL)
                    CreateByteField (BUF1, 0x05, IORH)
CreateWordField (BUF1, \_SB.PCI0.UAR1._CRS._Y0C._INT, IRQW)
                    ENFG ()
                    Store (0x02, LDN)
                    Store (IOAL, IOLO)
                    Store (IOAL, IORL)
                    Store (IOAH, IOHI)
                    Store (IOAH, IORH)
                    Store (One, Local0)
                    ShiftLeft (Local0, INTR, IRQW)
                    EXFG ()
                    Return (BUF1)
                }

                Name (_PRS, ResourceTemplate ()
                {
                    StartDependentFnNoPri ()
                    {
                        IO (Decode16,
                            0x03F8,             // Range Minimum
                            0x03F8,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            )
                        IRQNoFlags ()
                            {3,4,5,7,9,10,11,12}
                    }
                    StartDependentFnNoPri ()
                    {
                        IO (Decode16,
                            0x02F8,             // Range Minimum
                            0x02F8,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            )
                        IRQNoFlags ()
                            {3,4,5,7,9,10,11,12}
                    }
                    StartDependentFnNoPri ()
                    {
                        IO (Decode16,
                            0x03E8,             // Range Minimum
                            0x03E8,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            )
                        IRQNoFlags ()
                            {3,4,5,7,9,10,11,12}
                    }
                    StartDependentFnNoPri ()
                    {
                        IO (Decode16,
                            0x02E8,             // Range Minimum
                            0x02E8,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            )
                        IRQNoFlags ()
                            {3,4,5,7,9,10,11,12}
                    }
                    EndDependentFn ()
                })
                Method (_SRS, 1, NotSerialized)
                {
                    CreateByteField (Arg0, 0x02, IOLO)
                    CreateByteField (Arg0, 0x03, IOHI)
                    CreateWordField (Arg0, 0x02, IOAD)
                    CreateWordField (Arg0, 0x09, IRQW)
                    ENFG ()
                    Store (0x02, LDN)
                    Store (One, ACTR)
                    Store (IOLO, IOAL)
                    Store (IOHI, IOAH)
                    FindSetRightBit (IRQW, Local0)
                    Subtract (Local0, 0x01, INTR)
                    EXFG ()
                    CKIO (IOAD, 0x00)
                }
            }

            OperationRegion (KBCT, SystemIO, 0x60, 0x05)
            Field (KBCT, ByteAcc, NoLock, Preserve)
            {
                P060,   8,
                        Offset (0x04),
                P064,   8
            }

            Device (PS2M)
            {
                Name (_HID, EisaId ("PNP0F13"))
                Method (_STA, 0, NotSerialized)
                {
                    If (LEqual (PS2F, 0x00))
                    {
                        Return (0x0F)
                    }
                    Else
                    {
                        Return (0x00)
                    }
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Name (BUF1, ResourceTemplate ()
                    {
                        IRQNoFlags ()
                            {12}
                    })
                    Name (BUF2, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0060,             // Range Minimum
                            0x0060,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0064,             // Range Minimum
                            0x0064,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IRQNoFlags ()
                            {12}
                    })
                    If (LEqual (KBDI, 0x01))
                    {
                        If (LEqual (OSFL, 0x02))
                        {
                            Return (BUF1)
                        }

                        If (LEqual (OSFL, 0x01))
                        {
                            Return (BUF1)
                        }
                        Else
                        {
                            Return (BUF2)
                        }
                    }
                    Else
                    {
                        Return (BUF1)
                    }
                }
            }

            Device (PS2K)
            {
                Name (_HID, EisaId ("PNP0303"))
                Name (_CID, 0x0B03D041)
                Method (_STA, 0, NotSerialized)
                {
                    If (LEqual (KBDI, 0x01))
                    {
                        Return (0x00)
                    }
                    Else
                    {
                        Return (0x0F)
                    }
                }

                Name (_CRS, ResourceTemplate ()
                {
                    IO (Decode16,
                        0x0060,             // Range Minimum
                        0x0060,             // Range Maximum
                        0x01,               // Alignment
                        0x01,               // Length
                        )
                    IO (Decode16,
                        0x0064,             // Range Minimum
                        0x0064,             // Range Maximum
                        0x01,               // Alignment
                        0x01,               // Length
                        )
                    IRQNoFlags ()
                        {1}
                })
            }

            Device (PSMR)
            {
                Name (_HID, EisaId ("PNP0C02"))
                Name (_UID, 0x03)
                Method (_STA, 0, NotSerialized)
                {
                    If (LEqual (KBDI, 0x00))
                    {
                        Return (0x00)
                    }

                    If (LEqual (PS2F, 0x00))
                    {
                        If (LEqual (OSFL, 0x02))
                        {
                            Return (0x0F)
                        }

                        If (LEqual (OSFL, 0x01))
                        {
                            Return (0x0F)
                        }

                        Return (0x00)
                    }

                    Return (0x00)
                }

                Name (_CRS, ResourceTemplate ()
                {
                    IO (Decode16,
                        0x0060,             // Range Minimum
                        0x0060,             // Range Maximum
                        0x01,               // Alignment
                        0x01,               // Length
                        )
                    IO (Decode16,
                        0x0064,             // Range Minimum
                        0x0064,             // Range Maximum
                        0x01,               // Alignment
                        0x01,               // Length
                        )
                })
            }

            Scope (\)
            {
                Method (PLED, 1, NotSerialized)
                {
                    ENFG ()
                    Store (0x07, LDN)
                    Store (0x01, ACTR)
                    And (OPT1, 0xFE, Local0)
                    Store (Local0, OPT1)
                    And (OPT3, 0xFE, Local0)
                    Store (Local0, OPT3)
                    And (OPT2, 0xFE, Local0)
                    Or (Local0, Arg0, OPT2)
                    EXFG ()
                }
            }

            Scope (\)
            {
                Method (SLED, 1, NotSerialized)
                {
                    ENFG ()
                    Store (0x09, LDN)
                    Store (0x04, ACTR)
                    And (OPT5, 0xFD, Local0)
                    Store (Local0, OPT5)
                    And (OPT7, 0xFD, Local0)
                    Store (Local0, OPT7)
                    And (OPT6, 0xFD, Local0)
                    Or (Local0, Arg0, OPT6)
                    EXFG ()
                }
            }

            Scope (\)
            {
                Method (SFOF, 0, NotSerialized)
                {
                    ENFG ()
                    EXFG ()
                }

                Method (SFON, 0, NotSerialized)
                {
                    ENFG ()
                    EXFG ()
                }
            }

            Method (\_SB.PCI0.UAR1._PRW, 0, NotSerialized)
            {
                Return (Package (0x02)
                {
                    0x03,
                    0x05
                })
            }

            Method (\_SB.PCI0.PS2K._PRW, 0, NotSerialized)
            {
                Return (Package (0x02)
                {
                    0x10,
                    0x04
                })
            }

            Method (\_SB.PCI0.PS2M._PRW, 0, NotSerialized)
            {
                Return (Package (0x02)
                {
                    0x10,
                    0x04
                })
            }

            Method (PS2W, 0, NotSerialized)
            {
                ENFG ()
                Store (0x0A, LDN)
                Store (OPT4, Local0)
                If (And (Local0, 0x20))
                {
                    Notify (\_SB.PCI0.PS2M, 0x02)
                }

                If (And (Local0, 0x10))
                {
                    Notify (\_SB.PCI0.PS2K, 0x02)
                }

                Store (Local0, OPT4)
                ENFG ()
            }

            Method (\_SB.PCI0.PS2M._PSW, 1, NotSerialized)
            {
                ENFG ()
                Store (0x0A, LDN)
                If (Arg0)
                {
                    Or (OPT7, 0x20, OPT7)
                }
                Else
                {
                    And (OPT7, 0xDF, OPT7)
                }

                EXFG ()
            }

            Method (\_SB.PCI0.PS2K._PSW, 1, NotSerialized)
            {
                ENFG ()
                Store (0x0A, LDN)
                If (Arg0)
                {
                    Or (OPT7, 0x10, OPT7)
                }
                Else
                {
                    And (OPT7, 0xEF, OPT7)
                }

                EXFG ()
            }
        }

        Device (MEM)
        {
            Name (_HID, EisaId ("PNP0C01"))
            Method (_CRS, 0, NotSerialized)
            {
                Name (BUF0, ResourceTemplate ()
                {
                    Memory32Fixed (ReadWrite,
                        0x000F0000,         // Address Base
                        0x00004000,         // Address Length
                        _Y0E)
                    Memory32Fixed (ReadWrite,
                        0x000F4000,         // Address Base
                        0x00004000,         // Address Length
                        _Y0F)
                    Memory32Fixed (ReadWrite,
                        0x000F8000,         // Address Base
                        0x00004000,         // Address Length
                        _Y10)
                    Memory32Fixed (ReadWrite,
                        0x000FC000,         // Address Base
                        0x00004000,         // Address Length
                        _Y11)
                    Memory32Fixed (ReadWrite,
                        0x00000000,         // Address Base
                        0x00010000,         // Address Length
                        _Y0D)
                    Memory32Fixed (ReadWrite,
                        0xFFFF0000,         // Address Base
                        0x00010000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0x00000000,         // Address Base
                        0x000A0000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0x00100000,         // Address Base
                        0x00000000,         // Address Length
                        _Y12)
                    Memory32Fixed (ReadWrite,
                        0xFEC00000,         // Address Base
                        0x00001000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0xFEE00000,         // Address Base
                        0x00100000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0xFEFFF000,         // Address Base
                        0x00001000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0xFFF80000,         // Address Base
                        0x00001000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0xFFF90000,         // Address Base
                        0x00030000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0xFFFED000,         // Address Base
                        0x00003000,         // Address Length
                        )
                })
                CreateDWordField (BUF0, \_SB.MEM._CRS._Y0D._BAS, ACMM)
                CreateDWordField (BUF0, \_SB.MEM._CRS._Y0E._BAS, RMA1)
                CreateDWordField (BUF0, \_SB.MEM._CRS._Y0E._LEN, RSS1)
                CreateDWordField (BUF0, \_SB.MEM._CRS._Y0F._BAS, RMA2)
                CreateDWordField (BUF0, \_SB.MEM._CRS._Y0F._LEN, RSS2)
                CreateDWordField (BUF0, \_SB.MEM._CRS._Y10._BAS, RMA3)
                CreateDWordField (BUF0, \_SB.MEM._CRS._Y10._LEN, RSS3)
                CreateDWordField (BUF0, \_SB.MEM._CRS._Y11._BAS, RMA4)
                CreateDWordField (BUF0, \_SB.MEM._CRS._Y11._LEN, RSS4)
                CreateDWordField (BUF0, \_SB.MEM._CRS._Y12._LEN, EXTM)
                Subtract (AMEM, 0x00100000, EXTM)
                If (LNotEqual (ROM1, Zero))
                {
                    Store (RMA1, RMA2)
                    ShiftLeft (ROM1, 0x08, Local0)
                    Store (Local0, RMA1)
                    ShiftLeft (RMS1, 0x08, Local0)
                    Store (Local0, RSS1)
                    Store (0x8000, RSS2)
                }

                If (LNotEqual (ROM2, Zero))
                {
                    Store (RMA2, RMA3)
                    ShiftLeft (ROM2, 0x08, Local0)
                    Store (Local0, RMA2)
                    ShiftLeft (RMS2, 0x08, Local0)
                    Store (Local0, RSS2)
                    Store (0xC000, RSS3)
                }

                If (LNotEqual (ROM3, Zero))
                {
                    Store (RMA3, RMA4)
                    ShiftLeft (ROM3, 0x08, Local0)
                    Store (Local0, RMA3)
                    ShiftLeft (RMS3, 0x08, Local0)
                    Store (Local0, RSS3)
                    Store (0x00010000, RSS4)
                }

                Store (AMEM, ACMM)
                Return (BUF0)
            }
        }

        Device (\_SB.PCI0.EXPL)
        {
            Name (_HID, EisaId ("PNP0C02"))
            Name (_UID, 0x04)
            Method (_CRS, 0, NotSerialized)
            {
                Name (BUF0, ResourceTemplate ()
                {
                    Memory32Fixed (ReadWrite,
                        0xE0000000,         // Address Base
                        0x10000000,         // Address Length
                        )
                })
                Return (BUF0)
            }
        }
    }

    OperationRegion (TEMM, SystemMemory, 0x000FF810, 0x0C)
    Field (TEMM, WordAcc, NoLock, Preserve)
    {
        TP1H,   16,
        TP1L,   16,
        TP2H,   16,
        TP2L,   16,
        TRPC,   16,
        SENF,   16
    }

    Name (TVAR, Buffer (0x05)
    {
        0x00, 0x00, 0x00, 0x00, 0x00
    })
    CreateByteField (TVAR, 0x00, PLCY)
    CreateWordField (TVAR, 0x01, CTOS)
    CreateWordField (TVAR, 0x03, CTHY)
    Name (TBUF, Buffer (0x04)
    {
        0x00, 0x00, 0x00, 0x00
    })
    CreateByteField (TBUF, 0x00, DB00)
    CreateByteField (TBUF, 0x01, DB01)
    CreateWordField (TBUF, 0x00, DW00)
    CreateWordField (TBUF, 0x02, DW01)
    CreateDWordField (TBUF, 0x00, DATD)
    OperationRegion (SEN1, SystemIO, 0x0295, 0x02)
    Field (SEN1, ByteAcc, NoLock, Preserve)
    {
        SEI0,   8,
        SED0,   8
    }

    Method (STOS, 3, NotSerialized)
    {
        If (LLess (Arg2, 0x0AAC))
        {
            Subtract (Arg2, 0x0AAC, Local0)
            Divide (Local0, 0x0A, Local0)
        }
        Else
        {
            Subtract (0x0AAC, Arg2, Local0)
            Divide (Local0, 0x0A, Local0)
            Add (Local0, 0x80, Local0)
        }

        WSEN (0x4E, 0x01)
        WSEN (0x53, Local0)
    }

    Method (STHY, 3, NotSerialized)
    {
        If (LLess (Arg2, 0x0AAC))
        {
            Subtract (Arg2, 0x0AAC, Local0)
            Divide (Local0, 0x0A, Local0)
        }
        Else
        {
            Subtract (0x0AAC, Arg2, Local0)
            Divide (Local0, 0x0A, Local0)
            Add (Local0, 0x80, Local0)
        }

        WSEN (0x4E, 0x01)
        WSEN (0x54, Local0)
    }

    Method (RTMP, 0, NotSerialized)
    {
        WSEN (0x4E, 0x01)
        Store (RSEN (0x50), Local0)
        If (LEqual (Local0, 0x7F))
        {
            Return (0x0AAC)
        }

        If (LLess (Local0, 0x80))
        {
            Multiply (Local0, 0x0A, Local0)
            Add (Local0, 0x0AAC, Local0)
        }
        Else
        {
            Subtract (Local0, 0x80, Local0)
            Multiply (Local0, 0x0A, Local0)
            Subtract (0x0AAC, Local0, Local0)
        }

        Return (0x0C3C)
        If (LEqual (SSHU, 0x01))
        {
            Return (0x0C3C)
        }
        Else
        {
            Return (Local0)
        }
    }

    Method (WSEN, 2, NotSerialized)
    {
        Store (Arg0, SEI0)
        Store (Arg1, SED0)
    }

    Method (RSEN, 1, NotSerialized)
    {
        Store (Arg0, SEI0)
        Store (SED0, Local0)
        Return (Local0)
    }

    Method (SFAN, 1, NotSerialized)
    {
        If (LEqual (Arg0, Zero))
        {
            FOFF ()
        }
        Else
        {
            FON ()
        }
    }

    Method (FON, 0, NotSerialized)
    {
        WSEN (0x4E, 0x00)
        WSEN (0x01, 0xFF)
        WSEN (0x03, 0xFF)
    }

    Method (FOFF, 0, NotSerialized)
    {
        WSEN (0x4E, 0x00)
        WSEN (0x01, 0x00)
        WSEN (0x03, 0x00)
    }

    OperationRegion (SM00, SystemIO, \_SB.PCI0.SMB0.SMBB (), 0x06)
    Field (SM00, ByteAcc, NoLock, Preserve)
    {
        CTLR,   8,
        HSTS,   8,
        ADDR,   8,
        CMDR,   8,
        DAT0,   8,
        DAT1,   8
    }

    Method (SWFS, 0, NotSerialized)
    {
        And (HSTS, 0x80, Local0)
        While (LEqual (Local0, Zero))
        {
            Stall (0x01)
            And (HSTS, 0x80, Local0)
        }
    }

    Method (SRBY, 2, NotSerialized)
    {
        Store (Arg0, ADDR)
        Store (Arg1, CMDR)
        Store (0x04, CTLR)
        SWFS ()
    }

    Method (WBYT, 3, NotSerialized)
    {
        Store (Arg0, ADDR)
        Store (Arg1, CMDR)
        Store (Arg2, DAT0)
        Store (0x06, CTLR)
        SWFS ()
    }

    Method (SMWW, 4, NotSerialized)
    {
        Store (Arg0, ADDR)
        Store (Arg1, CMDR)
        Store (Arg2, DAT0)
        Store (Arg3, DAT1)
        Store (0x08, CTLR)
        SWFS ()
    }

    Method (RBYT, 2, NotSerialized)
    {
        Store (Arg0, ADDR)
        Store (Arg1, CMDR)
        Store (0x07, CTLR)
        SWFS ()
        Return (DAT0)
    }

    Method (SMRW, 2, NotSerialized)
    {
        Store (Arg0, ADDR)
        Store (Arg1, CMDR)
        Store (0x09, CTLR)
        SWFS ()
        Store (DAT0, Local0)
        ShiftLeft (DAT1, 0x08, Local1)
        Or (Local0, Local1, Local2)
        Return (Local2)
    }

    Scope (\_TZ)
    {
        Device (FAN)
        {
            Name (_HID, EisaId ("PNP0C0B"))
            Method (_INI, 0, NotSerialized)
            {
                Store (TP1H, CTOS)
                Store (TP1L, CTHY)
            }
        }

        ThermalZone (THRM)
        {
            Name (_AL0, Package (0x01)
            {
                FAN
            })
            Method (_AC0, 0, NotSerialized)
            {
                If (Or (PLCY, PLCY, Local7))
                {
                    Return (TP2H)
                }
                Else
                {
                    Return (TP1H)
                }
            }

            Name (_PSL, Package (0x01)
            {
                \_PR.CPU0
            })
            Name (_TSP, 0x3C)
            Name (_TC1, 0x04)
            Name (_TC2, 0x03)
            Method (_PSV, 0, NotSerialized)
            {
                If (Or (PLCY, PLCY, Local7))
                {
                    Return (TP1H)
                }
                Else
                {
                    Return (TP2H)
                }
            }

            Method (_CRT, 0, NotSerialized)
            {
                Return (TRPC)
            }

            Method (_TMP, 0, NotSerialized)
            {
                And (SENF, 0x01, Local6)
                If (LEqual (Local6, 0x01))
                {
                    Return (RTMP ())
                }
                Else
                {
                    Return (0x0B86)
                }
            }

            Method (_SCP, 1, NotSerialized)
            {
                If (Arg0)
                {
                    Store (One, PLCY)
                }
                Else
                {
                    Store (Zero, PLCY)
                }

                Notify (\_TZ.THRM, 0x81)
            }

            Method (STMP, 2, NotSerialized)
            {
                Store (Arg1, DW00)
                If (Arg0)
                {
                    STHY (DB00, DB01, DW00)
                }
                Else
                {
                    STOS (DB00, DB01, DW00)
                }
            }
        }
    }

    Scope (\_PR.CPU0)
    {
        Name (_PCT, Package (0x02)
        {
            ResourceTemplate ()
            {
                Register (FFixedHW,
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            },

            ResourceTemplate ()
            {
                Register (FFixedHW,
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }
        })
        Name (_PSS, Package (0x05)
        {
            Package (0x06)
            {
                0x00000960,
                0x0000FDE8,
                0x00000064,
                0x00000009,
                0xE8202B10,
                0x00000310
            },

            Package (0x06)
            {
                0x00000898,
                0x0000D680,
                0x00000064,
                0x00000009,
                0xE8202B8E,
                0x0000038E
            },

            Package (0x06)
            {
                0x000007D0,
                0x0000B316,
                0x00000064,
                0x00000009,
                0xE8202C0C,
                0x0000040C
            },

            Package (0x06)
            {
                0x00000708,
                0x0000A12E,
                0x00000064,
                0x00000009,
                0xE8202C0A,
                0x0000040A
            },

            Package (0x06)
            {
                0x000003E8,
                0x000051ED,
                0x00000064,
                0x00000009,
                0xE8202C82,
                0x00000482
            }
        })
        Name (_PPC, 0x00)
        Name (_PSD, Package (0x01)
        {
            Package (0x05)
            {
                0x05,
                0x00,
                0x00000000,
                0x000000FD,
                0x00000002
            }
        })
    }

    Scope (\_PR.CPU1)
    {
        Name (_PCT, Package (0x02)
        {
            ResourceTemplate ()
            {
                Register (FFixedHW,
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            },

            ResourceTemplate ()
            {
                Register (FFixedHW,
                    0x00,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            }
        })
        Name (_PSS, Package (0x05)
        {
            Package (0x06)
            {
                0x00000960,
                0x0000FDE8,
                0x00000064,
                0x00000009,
                0xE8202B10,
                0x00000310
            },

            Package (0x06)
            {
                0x00000898,
                0x0000D680,
                0x00000064,
                0x00000009,
                0xE8202B8E,
                0x0000038E
            },

            Package (0x06)
            {
                0x000007D0,
                0x0000B316,
                0x00000064,
                0x00000009,
                0xE8202C0C,
                0x0000040C
            },

            Package (0x06)
            {
                0x00000708,
                0x0000A12E,
                0x00000064,
                0x00000009,
                0xE8202C0A,
                0x0000040A
            },

            Package (0x06)
            {
                0x000003E8,
                0x000051ED,
                0x00000064,
                0x00000009,
                0xE8202C82,
                0x00000482
            }
        })
        Name (_PPC, 0x00)
        Name (_PSD, Package (0x01)
        {
            Package (0x05)
            {
                0x05,
                0x00,
                0x00000000,
                0x000000FD,
                0x00000002
            }
        })
    }
}


On 27/05/2009, at 8:20 PM, Eygene Ryabinkin wrote:

Timothy, good day.

Wed, May 27, 2009 at 05:45:02PM +1000, Timothy Mukaibo wrote:
db> bt
Tracing pid 0 tid 100000 td 0fffffff80bd2ae0
kdb_enter() at kdb_enter+0x3d
panic() at panic+0x17b
acpi_pci_link_route_irqs() at acpi_pci_link_route_irqs+0x727
acpi_pci_link_route_interrupt() at acpi_pci_link_route_interrupt +0x1a9
acpi_pcib_route_interrupt() at acpi_pcib_route_interrupt+0x40d
pci_assign_interrupt() at pci_assign_interrupt+0x1c3
pci_add_resources() at pci_add_resources+0x147
pci_add_children() at pci_add_children+0x10e
acpi_pci_attach() at acpi_pci_attach+0xcd
device_attach() at device_attach+0x69
bus_generic_attach() at bus_generic_attach+0x1a
acpi_pcib_attach() at acpi_pcib_attach+0x1a7
acpi_pcib_acpi_attach() at acpi_pcib_acpi_attach+0x1a5
device_attach() at device_attach+0x69
bus_generic_attach() at bus_generic_attach+0x1a
acpi_attach() at acpi_attach+0xa50
device_attach() at device_attach+0x69
bus_generic_attach() at bus_generic_attach+0x1a
device_attach() at device_attach+0x69
root_bus_configure() at root_bus_configure+0x28
configure() at configure+0xa
mi_startup() at mi_startup+0x59
btext() at biext+0x2c

OK, will try to look at it more closely.

I'll try your patch.

Please, note that the patch just adds verbosity, currently it won't heal
anything.

Still, the output from 'acpidump -dt' might be interesting.
--
Eygene
_______________________________________________
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "[EMAIL PROTECTED]"