tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

acpitz hangs on attach



Hi -
a -current kernel hangs on some embedded i386 (CompactPCI)
CPU board when it tries to attach at:
THRM (ACPI Object Type 'Thermal' [0x0d]) at acpi0 not configured
(I've hacked the match function to reject it for now so I can
boot the box.)
I'll append the DSDT.

best regards
Matthias





-------------------------------------------------------------------
-------------------------------------------------------------------
Forschungszentrum Juelich GmbH
52425 Juelich

Sitz der Gesellschaft: Juelich
Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498
Vorsitzende des Aufsichtsrats: MinDir'in Baerbel Brumme-Bothe
Geschaeftsfuehrung: Prof. Dr. Achim Bachem (Vorsitzender),
Dr. Ulrich Krafft (stellv. Vorsitzender), Prof. Dr. Harald Bolt,
Dr. Sebastian M. Schmidt
-------------------------------------------------------------------
-------------------------------------------------------------------
/*
RSD PTR: Checksum=54, OEMID=IntelR, RsdtAddress=0x7f6e3040
 */
/*
RSDT: Length=64, Revision=1, Checksum=31,
        OEMID=IntelR, OEM Table ID=AWRDACPI, OEM Revision=0x30302e32,
        Creator ID=AWRD, Creator Revision=0x0
 */
/*
        Entries={ 0x7f6e30c0, 0x7f6e6f40, 0x7f6e6fc0, 0x7f6e7040, 0x7f6e6e80, 
0x7f6e70c0, 0x7f6e7550 }
 */
/*
        DSDT=0x7f6e31c0
        INT_MODEL=APIC
        SCI_INT=9
        SMI_CMD=0xb2, ACPI_ENABLE=0xa1, ACPI_DISABLE=0xa0, S4BIOS_REQ=0x0
        PM1a_EVT_BLK=0x400-0x403
        PM1a_CNT_BLK=0x404-0x405
        PM2_TMR_BLK=0x408-0x40b
        PM2_GPE0_BLK=0x428-0x42f
        P_LVL2_LAT=101ms, P_LVL3_LAT=1001ms
        FLUSH_SIZE=0, FLUSH_STRIDE=0
        DUTY_OFFSET=1, DUTY_WIDTH=1
        DAY_ALRM=13, MON_ALRM=0, CENTURY=0
        Flags={WBINVD,PROC_C1,SLP_BUTTON,RTC_S4}
 */
/*
DSDT: Length=15485, Revision=1, Checksum=68,
        OEMID=INTELR, OEM Table ID=AWRDACPI, OEM Revision=0x1000,
        Creator ID=MSFT, Creator Revision=0x3000000
 */
DefinitionBlock ("acpi_dst.aml", "DSDT", 0x1, "INTELR", "AWRDACPI", 0x1000)
{
Scope(\_PR) {
    Processor(\_PR.CPU0, 0, 0x0, 0x0) {
    }
    Processor(\_PR.CPU1, 1, 0x0, 0x0) {
    }
}
Name(\_S0, Package(0x04) {
    0x00,
    0x00,
    0x00,
    0x00,
})
Name(\SS1, Package(0x04) {
    0x01,
    0x00,
    0x00,
    0x00,
})
Name(\_S3, Package(0x04) {
    0x05,
    0x00,
    0x00,
    0x00,
})
Name(\_S4, Package(0x04) {
    0x06,
    0x00,
    0x00,
    0x00,
})
Name(\_W5, Package(0x04) {
    0x07,
    0x00,
    0x00,
    0x00,
})
Name(FLAG, 0x00)
Name(STAT, 0x00)
OperationRegion(\DEBG, SystemIO, 0x80, 0x01)
Field(\DEBG, ByteAcc, NoLock, Preserve) {
    DBG1,       8
}
Name(NACL, 0x80)
Name(NPBP, 0x81)
OperationRegion(RCRB, SystemMemory, 0xfed1c000, 0x4000)
Field(RCRB, DWordAcc, Lock, Preserve) {
    Offset(0x3404),
    ,   7,
    HPTF,       1
}
OperationRegion(ELKM, SystemMemory, 0x000fffea, 0x01)
Field(ELKM, ByteAcc, NoLock, Preserve) {
    ,   1,
    ,   1,
    ELSO,       1,
    ,   1,
    ,   1,
    ,   1,
    ,   1
}
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(\SMIC, SystemIO, 0xb2, 0x01)
Field(\SMIC, ByteAcc, NoLock, Preserve) {
    SCP,        8
}
OperationRegion(\PM1S, SystemIO, 0x0400, 0x04)
Field(\PM1S, ByteAcc, NoLock, Preserve) {
    PM00,       8,
    PM01,       8,
    PM02,       8,
    PM03,       8
}
OperationRegion(\PM2S, SystemIO, 0x0429, 0x01)
Field(\PM2S, ByteAcc, NoLock, Preserve) {
    ,   1,
    PM29,       1
}
OperationRegion(\SPEN, SystemIO, 0x0430, 0x01)
Field(\SPEN, ByteAcc, NoLock, Preserve) {
    ,   4,
    TRAP,       1
}
OperationRegion(\GBLE, SystemIO, 0x0421, 0x01)
Field(\GBLE, ByteAcc, NoLock, Preserve) {
    ESMI,       8
}
OperationRegion(APMP, SystemIO, 0xb2, 0x02)
Field(APMP, ByteAcc, NoLock, Preserve) {
    APMC,       8,
    APMD,       8
}
OperationRegion(PALD, SystemIO, 0x0490, 0x01)
Field(PALD, AnyAcc, NoLock, Preserve) {
    LEDP,       8
}
OperationRegion(\GPO, SystemIO, 0x048c, 0x04)
Field(\GPO, ByteAcc, NoLock, Preserve) {
    GO00,       1,
    GO01,       1,
    GO02,       1,
    GO03,       1,
    GO04,       1,
    GO05,       1,
    GO06,       1,
    GO07,       1,
    GO08,       1,
    GO09,       1,
    GO0A,       1,
    GO0B,       1,
    GO0C,       1,
    GO0D,       1,
    GO0E,       1,
    GO0F,       1,
    GO10,       1,
    GO11,       1,
    GO12,       1,
    GO13,       1,
    GO14,       1,
    GO15,       1,
    GO16,       1,
    GO17,       1,
    GO18,       1,
    GO19,       1,
    GO1A,       1,
    GO1B,       1,
    GO1C,       1,
    GO1D,       1,
    GO1E,       1,
    GO1F,       1
}
OperationRegion(\GPO2, SystemIO, 0x04b8, 0x04)
Field(\GPO2, ByteAcc, NoLock, Preserve) {
    GO20,       1,
    GO21,       1,
    GO22,       1,
    GO23,       1,
    GO24,       1,
    GO25,       1,
    GO26,       1,
    GO27,       1,
    ,   1,
    ,   1,
    ,   1,
    ,   1,
    ,   1,
    ,   1,
    ,   1,
    Offset(0x2),
    GO30,       1,
    GO31,       1
}
Name(OSFX, 0x01)
Name(OSFL, 0x01)
Method(STRC, 2) {
    If(LNot(LEqual(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(LNot(LEqual(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(0xf),
    SHUT,       8
}
OperationRegion(INFO, SystemMemory, 0x000ff840, 0x01)
Field(INFO, ByteAcc, NoLock, Preserve) {
    KBDI,       1,
    RTCW,       1,
    PS2F,       1,
    IRFL,       2,
    DISE,       1,
    SSHU,       1,
    AWMD,       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) {
    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) {
        Store(Arg0, PICF)
    }
}
Method(\_PTS, 1) {
    Or(Arg0, 0xf0, Local0)
    Store(Local0, DBG1)
    Store(0x01, PM29)
    If(LNot(LEqual(VID0, 0xffff))) {
        If(LEqual(And(RSR0, 0x01, ), 0x01)) {
            Or(RSR0, 0x01, RSR0)
            Or(PMC0, 0x80, PMC0)
        }
    }
    If(LNot(LEqual(VID1, 0xffff))) {
        If(LEqual(And(RSR1, 0x01, ), 0x01)) {
            Or(RSR1, 0x01, RSR1)
            Or(PMC1, 0x80, PMC1)
        }
    }
    If(LNot(LEqual(VID2, 0xffff))) {
        If(LEqual(And(RSR2, 0x01, ), 0x01)) {
            Or(RSR2, 0x01, RSR2)
            Or(PMC2, 0x80, PMC2)
        }
    }
    If(LNot(LEqual(VID3, 0xffff))) {
        If(LEqual(And(RSR3, 0x01, ), 0x01)) {
            Or(RSR3, 0x01, RSR3)
            Or(PMC3, 0x80, PMC3)
        }
    }
    OSTP()
    If(LEqual(Arg0, 0x01)) {
    }
    If(LEqual(Arg0, 0x03)) {
    }
    If(LEqual(Arg0, 0x05)) {
        Store(ESMI, Local0)
        And(Local0, 0xfb, Local0)
        Store(Local0, ESMI)
    }
    If(LEqual(Arg0, 0x04)) {
        If(LNot(PICF)) {
            Sleep(0x64)
        }
    }
}
Method(\_WAK, 1) {
    Store(0xff, DBG1)
    If(LEqual(Arg0, 0x03)) {
        Store(0x88, SCP)
    }
    If(OSFL) {
        Notify(\_SB.PWRB, 0x02)
    }
    Else {
        If(LEqual(RTCW, 0x00)) {
            Notify(\_SB.PWRB, 0x02)
        }
    }
    Notify(\_SB.PCI0.USB0, 0x00)
    Notify(\_SB.PCI0.USB1, 0x00)
    Notify(\_SB.PCI0.USB2, 0x00)
    Notify(\_SB.PCI0.USB3, 0x00)
}
Scope(\_SI) {
    Method(_MSG, 1) {
        Store(Local0, Local0)
    }
    Method(_SST, 1) {
        Store(Local0, Local0)
    }
}
Scope(\_GPE) {
    Method(_L01) {
        Sleep(0x64)
    }
    Method(_L05) {
        Notify(\_SB.PCI0.AC97, 0x02)
        Notify(\_SB.PCI0.AZAL, 0x02)
    }
    Method(_L03) {
        Notify(\_SB.PCI0.USB0, 0x02)
    }
    Method(_L04) {
        Notify(\_SB.PCI0.USB1, 0x02)
    }
    Method(_L0C) {
        Notify(\_SB.PCI0.USB2, 0x02)
    }
    Method(_L0E) {
        Notify(\_SB.PCI0.USB3, 0x02)
    }
    Method(_L0D) {
        Notify(\_SB.PCI0.USBE, 0x02)
    }
    Method(_L0B) {
        Notify(\_SB.PCI0.HUB0, 0x02)
    }
    Method(_L0A) {
        Notify(\_SB.IELK, NPBP)
        \_SB.IELK.CPBS()
    }
    Method(_L09) {
        If(LNot(LEqual(VID0, 0xffff))) {
            If(LEqual(And(RSR0, 0x01, ), 0x01)) {
                Store(0xff, RSR0)
                Store(0x80, PMC0)
                Notify(\_SB.PCI0.PEX0, 0x02)
            }
        }
        If(LNot(LEqual(VID1, 0xffff))) {
            If(LEqual(And(RSR1, 0x01, ), 0x01)) {
                Store(0xff, RSR1)
                Store(0x80, PMC1)
                Notify(\_SB.PCI0.PEX1, 0x02)
            }
        }
        If(LNot(LEqual(VID2, 0xffff))) {
            If(LEqual(And(RSR2, 0x01, ), 0x01)) {
                Store(0xff, RSR2)
                Store(0x80, PMC2)
                Notify(\_SB.PCI0.PEX2, 0x02)
            }
        }
        If(LNot(LEqual(VID3, 0xffff))) {
            If(LEqual(And(RSR3, 0x01, ), 0x01)) {
                Store(0xff, RSR3)
                Store(0x80, PMC3)
                Notify(\_SB.PCI0.PEX3, 0x02)
            }
        }
        If(LNot(LEqual(VID4, 0xffff))) {
            If(LEqual(And(RSR4, 0x01, ), 0x01)) {
                Store(0xff, RSR4)
                Store(0x80, PMC4)
                Notify(\_SB.PCI0.PEX4, 0x02)
            }
        }
        If(LNot(LEqual(VID5, 0xffff))) {
            If(LEqual(And(RSR5, 0x01, ), 0x01)) {
                Store(0xff, RSR5)
                Store(0x80, PMC5)
                Notify(\_SB.PCI0.PEX5, 0x02)
            }
        }
    }
}
Scope(\_SB) {
    Device(PWRB) {
        Name(_HID, 0x0c0cd041)
        Method(_STA) {
            Return(0x0b)
        }
    }
    Device(IELK) {
        Name(_HID, "AWY0001")
        Method(_STA) {
            If(ELSO) {
                Return(0x0f)
            }
            Return(0x00)
        }
        Method(DAPB, 0, Serialized) {
            Return(0x01)
        }
        Method(ESKU, 1) {
            If(Arg0) {
                Store(0x89, SCP)
            }
        }
        Method(ARPB, 0, Serialized) {
            Return(0x01)
        }
        Method(SMOD, 1) {
            Name(LDON, 0x03)
            Name(LDOF, 0x02)
            If(LNot(Arg0)) {
                Store(LDOF, LEDP)
                Store(0x00, \_SB.PCI0.PX40.ELGN)
                Store(0x01, \_SB.PCI0.PX40.ELYL)
            }
            Else {
                Store(LDON, LEDP)
                Store(0x01, \_SB.PCI0.PX40.ELGN)
                Store(0x00, \_SB.PCI0.PX40.ELYL)
            }
            Return(Zero)
        }
        Method(GPBS) {
            Return(XOr(\_SB.PCI0.PX40.PBLV, 0x01, ))
        }
        Method(CPBS) {
            Store(0x01, \_SB.PCI0.PX40.ELPB)
        }
    }
    Device(PCI0) {
        Name(_HID, 0x080ad041)
        Name(_CID, 0x030ad041)
        Name(_ADR, 0x00)
        Name(_UID, 0x01)
        Name(_BBN, 0x00)
        Method(_S3D) {
            If(LEqual(OSFL, 0x02)) {
                Return(0x02)
            }
            Else {
                Return(0x03)
            }
        }
        Method(_STA) {
            Return(0x0f)
        }
        Method(_CRS) {
            Name(BUF0, Buffer(0x88) {0x88, 0xd, 0x0, 0x2, 0x1, 0x0, 0x0, 0x0, 
0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x1, 0x47, 0x1, 0xf8, 0xc, 0xf8, 0xc, 0x1, 
0x8, 0x88, 0xd, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0xf7, 0xc, 0x0, 0x0, 
0xf8, 0xc, 0x88, 0xd, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0, 0xd, 0xff, 0xff, 0x0, 
0x0, 0x0, 0xf3, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0xa, 0x0, 0xff, 0xff, 0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x87, 
0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, 0xff, 0xff, 
0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 
0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0xff, 0xff, 0xbf, 0xfe, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0xf0, 0xff, 0x79, 0x0 })
            CreateDWordField(BUF0, 0x76, TCMM)
            CreateDWordField(BUF0, 0x82, TOMM)
            Add(AMEM, 0x00010000, TCMM)
            Add(TCMM, 0x00010000, TCMM)
            Subtract(0xfec00000, TCMM, TOMM)
            Return(BUF0)
        }
        Name(PICM, Package(0x17) {
            Package(0x04) {
                0x0002ffff,
                0x00,
                \_SB.PCI0.LNKA,
                0x00,
            },
            Package(0x04) {
                0x0002ffff,
                0x01,
                \_SB.PCI0.LNKB,
                0x00,
            },
            Package(0x04) {
                0x0002ffff,
                0x02,
                \_SB.PCI0.LNKC,
                0x00,
            },
            Package(0x04) {
                0x0002ffff,
                0x03,
                \_SB.PCI0.LNKD,
                0x00,
            },
            Package(0x04) {
                0x001bffff,
                0x00,
                \_SB.PCI0.LNKA,
                0x00,
            },
            Package(0x04) {
                0x0001ffff,
                0x00,
                \_SB.PCI0.LNKA,
                0x00,
            },
            Package(0x04) {
                0x0001ffff,
                0x01,
                \_SB.PCI0.LNKB,
                0x00,
            },
            Package(0x04) {
                0x0001ffff,
                0x02,
                \_SB.PCI0.LNKC,
                0x00,
            },
            Package(0x04) {
                0x0001ffff,
                0x03,
                \_SB.PCI0.LNKD,
                0x00,
            },
            Package(0x04) {
                0x001cffff,
                0x00,
                \_SB.PCI0.LNKA,
                0x00,
            },
            Package(0x04) {
                0x001cffff,
                0x01,
                \_SB.PCI0.LNKB,
                0x00,
            },
            Package(0x04) {
                0x001cffff,
                0x02,
                \_SB.PCI0.LNKC,
                0x00,
            },
            Package(0x04) {
                0x001cffff,
                0x03,
                \_SB.PCI0.LNKD,
                0x00,
            },
            Package(0x04) {
                0x001cffff,
                0x02,
                \_SB.PCI0.LNKC,
                0x00,
            },
            Package(0x04) {
                0x001cffff,
                0x03,
                \_SB.PCI0.LNKD,
                0x00,
            },
            Package(0x04) {
                0x001dffff,
                0x00,
                \_SB.PCI0.LNK1,
                0x00,
            },
            Package(0x04) {
                0x001dffff,
                0x01,
                \_SB.PCI0.LNKD,
                0x00,
            },
            Package(0x04) {
                0x001dffff,
                0x02,
                \_SB.PCI0.LNKC,
                0x00,
            },
            Package(0x04) {
                0x001dffff,
                0x03,
                \_SB.PCI0.LNKA,
                0x00,
            },
            Package(0x04) {
                0x001effff,
                0x00,
                \_SB.PCI0.LNKB,
                0x00,
            },
            Package(0x04) {
                0x001effff,
                0x01,
                \_SB.PCI0.LNKE,
                0x00,
            },
            Package(0x04) {
                0x001fffff,
                0x00,
                \_SB.PCI0.LNKC,
                0x00,
            },
            Package(0x04) {
                0x001fffff,
                0x01,
                \_SB.PCI0.LNKD,
                0x00,
            },
        })
        Name(APIC, Package(0x17) {
            Package(0x04) {
                0x0002ffff,
                0x00,
                0x00,
                0x10,
            },
            Package(0x04) {
                0x0002ffff,
                0x01,
                0x00,
                0x11,
            },
            Package(0x04) {
                0x0002ffff,
                0x02,
                0x00,
                0x12,
            },
            Package(0x04) {
                0x0002ffff,
                0x03,
                0x00,
                0x13,
            },
            Package(0x04) {
                0x001bffff,
                0x00,
                0x00,
                0x10,
            },
            Package(0x04) {
                0x0001ffff,
                0x00,
                0x00,
                0x10,
            },
            Package(0x04) {
                0x0001ffff,
                0x01,
                0x00,
                0x11,
            },
            Package(0x04) {
                0x0001ffff,
                0x02,
                0x00,
                0x12,
            },
            Package(0x04) {
                0x0001ffff,
                0x03,
                0x00,
                0x13,
            },
            Package(0x04) {
                0x001cffff,
                0x00,
                0x00,
                0x10,
            },
            Package(0x04) {
                0x001cffff,
                0x01,
                0x00,
                0x11,
            },
            Package(0x04) {
                0x001cffff,
                0x02,
                0x00,
                0x12,
            },
            Package(0x04) {
                0x001cffff,
                0x03,
                0x00,
                0x13,
            },
            Package(0x04) {
                0x001cffff,
                0x02,
                0x00,
                0x12,
            },
            Package(0x04) {
                0x001cffff,
                0x03,
                0x00,
                0x13,
            },
            Package(0x04) {
                0x001dffff,
                0x00,
                0x00,
                0x17,
            },
            Package(0x04) {
                0x001dffff,
                0x01,
                0x00,
                0x13,
            },
            Package(0x04) {
                0x001dffff,
                0x02,
                0x00,
                0x12,
            },
            Package(0x04) {
                0x001dffff,
                0x03,
                0x00,
                0x10,
            },
            Package(0x04) {
                0x001effff,
                0x00,
                0x00,
                0x11,
            },
            Package(0x04) {
                0x001effff,
                0x01,
                0x00,
                0x14,
            },
            Package(0x04) {
                0x001fffff,
                0x00,
                0x00,
                0x12,
            },
            Package(0x04) {
                0x001fffff,
                0x01,
                0x00,
                0x13,
            },
        })
        Method(_PRT) {
            If(LNot(PICF)) {
                Return(PICM)
            }
            Else {
                Return(APIC)
            }
        }
        Device(PEX0) {
            Name(_ADR, 0x001c0000)
            Method(_STA) {
                Return(0x0f)
            }
            Method(_PRW) {
                Return(Package(0x02) {
                    0x09,
                    0x05,
                })
            }
            OperationRegion(PCE0, PCI_Config, 0x00, 0xff)
            Scope(\) {
                Field(\_SB.PCI0.PEX0.PCE0, ByteAcc, NoLock, Preserve) {
                    VID0,       16,
                    Offset(0x62),
                    RSR0,       8,
                    Offset(0xdf),
                    PMC0,       8
                }
            }
            Name(PIC0, Package(0x04) {
                Package(0x04) {
                    0xffff,
                    0x00,
                    \_SB.PCI0.LNKA,
                    0x00,
                },
                Package(0x04) {
                    0xffff,
                    0x01,
                    \_SB.PCI0.LNKB,
                    0x00,
                },
                Package(0x04) {
                    0xffff,
                    0x02,
                    \_SB.PCI0.LNKC,
                    0x00,
                },
                Package(0x04) {
                    0xffff,
                    0x03,
                    \_SB.PCI0.LNKD,
                    0x00,
                },
            })
            Name(API0, Package(0x04) {
                Package(0x04) {
                    0xffff,
                    0x00,
                    0x00,
                    0x10,
                },
                Package(0x04) {
                    0xffff,
                    0x01,
                    0x00,
                    0x11,
                },
                Package(0x04) {
                    0xffff,
                    0x02,
                    0x00,
                    0x12,
                },
                Package(0x04) {
                    0xffff,
                    0x03,
                    0x00,
                    0x13,
                },
            })
            Method(_PRT) {
                If(LNot(PICF)) {
                    Return(PIC0)
                }
                Else {
                    Return(API0)
                }
            }
        }
        Device(PEX1) {
            Name(_ADR, 0x001c0001)
            Method(_STA) {
                Return(0x0f)
            }
            Method(_PRW) {
                Return(Package(0x02) {
                    0x09,
                    0x05,
                })
            }
            OperationRegion(PCE1, PCI_Config, 0x00, 0xff)
            Scope(\) {
                Field(\_SB.PCI0.PEX1.PCE1, ByteAcc, NoLock, Preserve) {
                    VID1,       16,
                    Offset(0x62),
                    RSR1,       8,
                    Offset(0xdf),
                    PMC1,       8
                }
            }
            Name(PIC1, Package(0x04) {
                Package(0x04) {
                    0xffff,
                    0x00,
                    \_SB.PCI0.LNKB,
                    0x00,
                },
                Package(0x04) {
                    0xffff,
                    0x01,
                    \_SB.PCI0.LNKC,
                    0x00,
                },
                Package(0x04) {
                    0xffff,
                    0x02,
                    \_SB.PCI0.LNKD,
                    0x00,
                },
                Package(0x04) {
                    0xffff,
                    0x03,
                    \_SB.PCI0.LNKA,
                    0x00,
                },
            })
            Name(API1, Package(0x04) {
                Package(0x04) {
                    0xffff,
                    0x00,
                    0x00,
                    0x11,
                },
                Package(0x04) {
                    0xffff,
                    0x01,
                    0x00,
                    0x12,
                },
                Package(0x04) {
                    0xffff,
                    0x02,
                    0x00,
                    0x13,
                },
                Package(0x04) {
                    0xffff,
                    0x03,
                    0x00,
                    0x10,
                },
            })
            Method(_PRT) {
                If(LNot(PICF)) {
                    Return(PIC1)
                }
                Else {
                    Return(API1)
                }
            }
        }
        Device(PEX2) {
            Name(_ADR, 0x001c0002)
            Method(_STA) {
                Return(0x0f)
            }
            Method(_PRW) {
                Return(Package(0x02) {
                    0x09,
                    0x05,
                })
            }
            OperationRegion(PCE2, PCI_Config, 0x00, 0xff)
            Scope(\) {
                Field(\_SB.PCI0.PEX2.PCE2, ByteAcc, NoLock, Preserve) {
                    VID2,       16,
                    Offset(0x62),
                    RSR2,       8,
                    Offset(0xdf),
                    PMC2,       8
                }
            }
            Name(PIC2, Package(0x04) {
                Package(0x04) {
                    0xffff,
                    0x00,
                    \_SB.PCI0.LNKC,
                    0x00,
                },
                Package(0x04) {
                    0xffff,
                    0x01,
                    \_SB.PCI0.LNKD,
                    0x00,
                },
                Package(0x04) {
                    0xffff,
                    0x02,
                    \_SB.PCI0.LNKA,
                    0x00,
                },
                Package(0x04) {
                    0xffff,
                    0x03,
                    \_SB.PCI0.LNKB,
                    0x00,
                },
            })
            Name(API2, Package(0x04) {
                Package(0x04) {
                    0xffff,
                    0x00,
                    0x00,
                    0x12,
                },
                Package(0x04) {
                    0xffff,
                    0x01,
                    0x00,
                    0x13,
                },
                Package(0x04) {
                    0xffff,
                    0x02,
                    0x00,
                    0x10,
                },
                Package(0x04) {
                    0xffff,
                    0x03,
                    0x00,
                    0x11,
                },
            })
            Method(_PRT) {
                If(LNot(PICF)) {
                    Return(PIC2)
                }
                Else {
                    Return(API2)
                }
            }
        }
        Device(PEX3) {
            Name(_ADR, 0x001c0003)
            Method(_STA) {
                Return(0x0f)
            }
            Method(_PRW) {
                Return(Package(0x02) {
                    0x09,
                    0x05,
                })
            }
            OperationRegion(PCE3, PCI_Config, 0x00, 0xff)
            Scope(\) {
                Field(\_SB.PCI0.PEX3.PCE3, ByteAcc, NoLock, Preserve) {
                    VID3,       16,
                    Offset(0x62),
                    RSR3,       8,
                    Offset(0xdf),
                    PMC3,       8
                }
            }
            Name(PIC3, Package(0x04) {
                Package(0x04) {
                    0xffff,
                    0x00,
                    \_SB.PCI0.LNKD,
                    0x00,
                },
                Package(0x04) {
                    0xffff,
                    0x01,
                    \_SB.PCI0.LNKA,
                    0x00,
                },
                Package(0x04) {
                    0xffff,
                    0x02,
                    \_SB.PCI0.LNKB,
                    0x00,
                },
                Package(0x04) {
                    0xffff,
                    0x03,
                    \_SB.PCI0.LNKC,
                    0x00,
                },
            })
            Name(API3, Package(0x04) {
                Package(0x04) {
                    0xffff,
                    0x00,
                    0x00,
                    0x13,
                },
                Package(0x04) {
                    0xffff,
                    0x01,
                    0x00,
                    0x10,
                },
                Package(0x04) {
                    0xffff,
                    0x02,
                    0x00,
                    0x11,
                },
                Package(0x04) {
                    0xffff,
                    0x03,
                    0x00,
                    0x12,
                },
            })
            Method(_PRT) {
                If(LNot(PICF)) {
                    Return(PIC3)
                }
                Else {
                    Return(API3)
                }
            }
        }
        Device(PEX4) {
            Name(_ADR, 0x001c0004)
            Method(_STA) {
                Return(0x0f)
            }
            Method(_PRW) {
                Return(Package(0x02) {
                    0x09,
                    0x05,
                })
            }
            OperationRegion(PCE4, PCI_Config, 0x00, 0xff)
            Scope(\) {
                Field(\_SB.PCI0.PEX4.PCE4, ByteAcc, NoLock, Preserve) {
                    VID4,       16,
                    Offset(0x62),
                    RSR4,       8,
                    Offset(0xdf),
                    PMC4,       8
                }
            }
            Name(PIC4, Package(0x04) {
                Package(0x04) {
                    0xffff,
                    0x00,
                    \_SB.PCI0.LNKC,
                    0x00,
                },
                Package(0x04) {
                    0xffff,
                    0x01,
                    \_SB.PCI0.LNKD,
                    0x00,
                },
                Package(0x04) {
                    0xffff,
                    0x02,
                    \_SB.PCI0.LNKA,
                    0x00,
                },
                Package(0x04) {
                    0xffff,
                    0x03,
                    \_SB.PCI0.LNKB,
                    0x00,
                },
            })
            Name(API4, Package(0x04) {
                Package(0x04) {
                    0xffff,
                    0x00,
                    0x00,
                    0x10,
                },
                Package(0x04) {
                    0xffff,
                    0x01,
                    0x00,
                    0x11,
                },
                Package(0x04) {
                    0xffff,
                    0x02,
                    0x00,
                    0x12,
                },
                Package(0x04) {
                    0xffff,
                    0x03,
                    0x00,
                    0x13,
                },
            })
            Method(_PRT) {
                If(LNot(PICF)) {
                    Return(PIC4)
                }
                Else {
                    Return(API4)
                }
            }
        }
        Device(PEX5) {
            Name(_ADR, 0x001c0005)
            Method(_STA) {
                Return(0x0f)
            }
            Method(_PRW) {
                Return(Package(0x02) {
                    0x09,
                    0x05,
                })
            }
            OperationRegion(PCE5, PCI_Config, 0x00, 0xff)
            Scope(\) {
                Field(\_SB.PCI0.PEX5.PCE5, ByteAcc, NoLock, Preserve) {
                    VID5,       16,
                    Offset(0x62),
                    RSR5,       8,
                    Offset(0xdf),
                    PMC5,       8
                }
            }
            Name(PIC5, Package(0x04) {
                Package(0x04) {
                    0xffff,
                    0x00,
                    \_SB.PCI0.LNKD,
                    0x00,
                },
                Package(0x04) {
                    0xffff,
                    0x01,
                    \_SB.PCI0.LNKA,
                    0x00,
                },
                Package(0x04) {
                    0xffff,
                    0x02,
                    \_SB.PCI0.LNKB,
                    0x00,
                },
                Package(0x04) {
                    0xffff,
                    0x03,
                    \_SB.PCI0.LNKC,
                    0x00,
                },
            })
            Name(API5, Package(0x04) {
                Package(0x04) {
                    0xffff,
                    0x00,
                    0x00,
                    0x11,
                },
                Package(0x04) {
                    0xffff,
                    0x01,
                    0x00,
                    0x12,
                },
                Package(0x04) {
                    0xffff,
                    0x02,
                    0x00,
                    0x13,
                },
                Package(0x04) {
                    0xffff,
                    0x03,
                    0x00,
                    0x10,
                },
            })
            Method(_PRT) {
                If(LNot(PICF)) {
                    Return(PIC5)
                }
                Else {
                    Return(API5)
                }
            }
        }
        Device(HUB0) {
            Name(_ADR, 0x001e0000)
            Method(_STA) {
                Return(0x0f)
            }
            Name(PICM, Package(0x20) {
                Package(0x04) {
                    0x000fffff,
                    0x00,
                    \_SB.PCI0.LNKD,
                    0x00,
                },
                Package(0x04) {
                    0x000fffff,
                    0x01,
                    \_SB.PCI0.LNKA,
                    0x00,
                },
                Package(0x04) {
                    0x000fffff,
                    0x02,
                    \_SB.PCI0.LNKB,
                    0x00,
                },
                Package(0x04) {
                    0x000fffff,
                    0x03,
                    \_SB.PCI0.LNKC,
                    0x00,
                },
                Package(0x04) {
                    0x000effff,
                    0x00,
                    \_SB.PCI0.LNKC,
                    0x00,
                },
                Package(0x04) {
                    0x000effff,
                    0x01,
                    \_SB.PCI0.LNKD,
                    0x00,
                },
                Package(0x04) {
                    0x000effff,
                    0x02,
                    \_SB.PCI0.LNKA,
                    0x00,
                },
                Package(0x04) {
                    0x000effff,
                    0x03,
                    \_SB.PCI0.LNKB,
                    0x00,
                },
                Package(0x04) {
                    0x000dffff,
                    0x00,
                    \_SB.PCI0.LNKB,
                    0x00,
                },
                Package(0x04) {
                    0x000dffff,
                    0x01,
                    \_SB.PCI0.LNKC,
                    0x00,
                },
                Package(0x04) {
                    0x000dffff,
                    0x02,
                    \_SB.PCI0.LNKD,
                    0x00,
                },
                Package(0x04) {
                    0x000dffff,
                    0x03,
                    \_SB.PCI0.LNKA,
                    0x00,
                },
                Package(0x04) {
                    0x000cffff,
                    0x00,
                    \_SB.PCI0.LNKA,
                    0x00,
                },
                Package(0x04) {
                    0x000cffff,
                    0x01,
                    \_SB.PCI0.LNKB,
                    0x00,
                },
                Package(0x04) {
                    0x000cffff,
                    0x02,
                    \_SB.PCI0.LNKC,
                    0x00,
                },
                Package(0x04) {
                    0x000cffff,
                    0x03,
                    \_SB.PCI0.LNKD,
                    0x00,
                },
                Package(0x04) {
                    0x000bffff,
                    0x00,
                    \_SB.PCI0.LNKD,
                    0x00,
                },
                Package(0x04) {
                    0x000bffff,
                    0x01,
                    \_SB.PCI0.LNKA,
                    0x00,
                },
                Package(0x04) {
                    0x000bffff,
                    0x02,
                    \_SB.PCI0.LNKB,
                    0x00,
                },
                Package(0x04) {
                    0x000bffff,
                    0x03,
                    \_SB.PCI0.LNKC,
                    0x00,
                },
                Package(0x04) {
                    0x000affff,
                    0x00,
                    \_SB.PCI0.LNKC,
                    0x00,
                },
                Package(0x04) {
                    0x000affff,
                    0x01,
                    \_SB.PCI0.LNKD,
                    0x00,
                },
                Package(0x04) {
                    0x000affff,
                    0x02,
                    \_SB.PCI0.LNKA,
                    0x00,
                },
                Package(0x04) {
                    0x000affff,
                    0x03,
                    \_SB.PCI0.LNKB,
                    0x00,
                },
                Package(0x04) {
                    0x0009ffff,
                    0x00,
                    \_SB.PCI0.LNKB,
                    0x00,
                },
                Package(0x04) {
                    0x0009ffff,
                    0x01,
                    \_SB.PCI0.LNKC,
                    0x00,
                },
                Package(0x04) {
                    0x0009ffff,
                    0x02,
                    \_SB.PCI0.LNKD,
                    0x00,
                },
                Package(0x04) {
                    0x0009ffff,
                    0x03,
                    \_SB.PCI0.LNKA,
                    0x00,
                },
                Package(0x04) {
                    0x0008ffff,
                    0x00,
                    \_SB.PCI0.LNKE,
                    0x00,
                },
                Package(0x04) {
                    0x0008ffff,
                    0x01,
                    \_SB.PCI0.LNKF,
                    0x00,
                },
                Package(0x04) {
                    0x0008ffff,
                    0x02,
                    \_SB.PCI0.LNK0,
                    0x00,
                },
                Package(0x04) {
                    0x0008ffff,
                    0x03,
                    \_SB.PCI0.LNK1,
                    0x00,
                },
            })
            Name(APIC, Package(0x20) {
                Package(0x04) {
                    0x000fffff,
                    0x00,
                    0x00,
                    0x13,
                },
                Package(0x04) {
                    0x000fffff,
                    0x01,
                    0x00,
                    0x10,
                },
                Package(0x04) {
                    0x000fffff,
                    0x02,
                    0x00,
                    0x11,
                },
                Package(0x04) {
                    0x000fffff,
                    0x03,
                    0x00,
                    0x12,
                },
                Package(0x04) {
                    0x000effff,
                    0x00,
                    0x00,
                    0x12,
                },
                Package(0x04) {
                    0x000effff,
                    0x01,
                    0x00,
                    0x13,
                },
                Package(0x04) {
                    0x000effff,
                    0x02,
                    0x00,
                    0x10,
                },
                Package(0x04) {
                    0x000effff,
                    0x03,
                    0x00,
                    0x11,
                },
                Package(0x04) {
                    0x000dffff,
                    0x00,
                    0x00,
                    0x11,
                },
                Package(0x04) {
                    0x000dffff,
                    0x01,
                    0x00,
                    0x12,
                },
                Package(0x04) {
                    0x000dffff,
                    0x02,
                    0x00,
                    0x13,
                },
                Package(0x04) {
                    0x000dffff,
                    0x03,
                    0x00,
                    0x10,
                },
                Package(0x04) {
                    0x000cffff,
                    0x00,
                    0x00,
                    0x10,
                },
                Package(0x04) {
                    0x000cffff,
                    0x01,
                    0x00,
                    0x11,
                },
                Package(0x04) {
                    0x000cffff,
                    0x02,
                    0x00,
                    0x12,
                },
                Package(0x04) {
                    0x000cffff,
                    0x03,
                    0x00,
                    0x13,
                },
                Package(0x04) {
                    0x000bffff,
                    0x00,
                    0x00,
                    0x13,
                },
                Package(0x04) {
                    0x000bffff,
                    0x01,
                    0x00,
                    0x10,
                },
                Package(0x04) {
                    0x000bffff,
                    0x02,
                    0x00,
                    0x11,
                },
                Package(0x04) {
                    0x000bffff,
                    0x03,
                    0x00,
                    0x12,
                },
                Package(0x04) {
                    0x000affff,
                    0x00,
                    0x00,
                    0x12,
                },
                Package(0x04) {
                    0x000affff,
                    0x01,
                    0x00,
                    0x13,
                },
                Package(0x04) {
                    0x000affff,
                    0x02,
                    0x00,
                    0x10,
                },
                Package(0x04) {
                    0x000affff,
                    0x03,
                    0x00,
                    0x11,
                },
                Package(0x04) {
                    0x0009ffff,
                    0x00,
                    0x00,
                    0x11,
                },
                Package(0x04) {
                    0x0009ffff,
                    0x01,
                    0x00,
                    0x12,
                },
                Package(0x04) {
                    0x0009ffff,
                    0x02,
                    0x00,
                    0x13,
                },
                Package(0x04) {
                    0x0009ffff,
                    0x03,
                    0x00,
                    0x10,
                },
                Package(0x04) {
                    0x0008ffff,
                    0x00,
                    0x00,
                    0x14,
                },
                Package(0x04) {
                    0x0008ffff,
                    0x01,
                    0x00,
                    0x15,
                },
                Package(0x04) {
                    0x0008ffff,
                    0x02,
                    0x00,
                    0x16,
                },
                Package(0x04) {
                    0x0008ffff,
                    0x03,
                    0x00,
                    0x17,
                },
            })
            Method(_PRT) {
                If(LNot(PICF)) {
                    Return(PICM)
                }
                Else {
                    Return(APIC)
                }
            }
            Method(_PRW) {
                Return(Package(0x02) {
                    0x0b,
                    0x05,
                })
            }
        }
        Device(PX40) {
            Name(_ADR, 0x001f0000)
            OperationRegion(ELR0, PCI_Config, 0x00, 0x0100)
            Field(ELR0, AnyAcc, NoLock, Preserve) {
                Offset(0xa0),
                ,       9,
                PBLV,   1,
                Offset(0xa2),
                Offset(0xb0),
                ,       3,
                ELPB,   1,
                Offset(0xb1),
                ,       2,
                ELGN,   2,
                ELYL,   2
            }
            OperationRegion(OP9F, PCI_Config, 0x58, 0x02)
            Field(OP9F, AnyAcc, NoLock, Preserve) {
                BA45,   16
            }
            Method(GPBS) {
                And(0xfffe, BA45, Local0)
                Return(Local0)
            }
            Scope(\) {
                Name(IDTS, Package(0x03) {
                    "\x5fDTS",
                    0x7f6e6f40,
                    0x00,
                })
            }
            OperationRegion(DTST, SystemMemory, DerefOf(Index(IDTS, 0x01, )), 
0x60)
            Field(DTST, AnyAcc, Lock, Preserve) {
                Offset(0x20),
                DTS1,   8,
                DTS2,   8,
                TMPS,   8
            }
            ThermalZone(TZ00) {
                Method(_CRT, 0, Serialized) {
                    Return(Add(0x0aac, Multiply(0x7f, 0x0a, ), ))
                }
                Method(_TMP, 0, Serialized) {
                    Store(0x8a, SCP)
                    Return(Add(0x0aac, Multiply(TMPS, 0x0a, ), ))
                }
            }
            OperationRegion(PREV, PCI_Config, 0x08, 0x01)
            Scope(\) {
                Field(\_SB.PCI0.PX40.PREV, ByteAcc, NoLock, Preserve) {
                    REV0,       8
                }
            }
            OperationRegion(PIRQ, PCI_Config, 0x60, 0x04)
            Scope(\) {
                Field(\_SB.PCI0.PX40.PIRQ, ByteAcc, NoLock, Preserve) {
                    PIRA,       8,
                    PIRB,       8,
                    PIRC,       8,
                    PIRD,       8
                }
            }
            OperationRegion(PIR2, PCI_Config, 0x68, 0x04)
            Scope(\) {
                Field(\_SB.PCI0.PX40.PIR2, ByteAcc, NoLock, Preserve) {
                    PIRE,       8,
                    PIRF,       8,
                    PIRG,       8,
                    PIRH,       8
                }
            }
            OperationRegion(LPIO, PCI_Config, 0x80, 0x0e)
            Scope(\) {
                Field(\_SB.PCI0.PX40.LPIO, ByteAcc, NoLock, Preserve) {
                    UAIO,       8,
                    PRIO,       8,
                    LPE1,       8,
                    LPE2,       8,
                    GN1L,       8,
                    GN1H,       8,
                    GN2L,       8,
                    GN2H,       8
                }
                Method(DISD, 1) {
                    If(LEqual(Arg0, 0x00)) {
                        And(LPE1, 0xfe, LPE1)
                    }
                    If(LEqual(Arg0, 0x01)) {
                        And(LPE1, 0xfd, LPE1)
                    }
                    If(LEqual(Arg0, 0x02)) {
                        And(LPE1, 0xfb, LPE1)
                    }
                    If(LEqual(Arg0, 0x03)) {
                        And(LPE1, 0xf7, LPE1)
                    }
                    If(LEqual(Arg0, 0x04)) {
                        And(LPE2, 0xfc, LPE2)
                    }
                    If(LEqual(Arg0, 0x05)) {
                        And(LPE1, 0xdf, LPE1)
                    }
                    If(LEqual(Arg0, 0x06)) {
                        And(GN2L, 0xfe, GN2L)
                    }
                }
                Method(CKIO, 2) {
                    If(LEqual(Arg1, 0x00)) {
                        Or(LPE1, 0x01, LPE1)
                        And(UAIO, 0xf0, Local0)
                        If(LEqual(Arg0, 0x03f8)) {
                            Or(Local0, 0x00, UAIO)
                        }
                        If(LEqual(Arg0, 0x02f8)) {
                            Or(Local0, 0x01, UAIO)
                        }
                        If(LEqual(Arg0, 0x02e8)) {
                            Or(Local0, 0x05, UAIO)
                        }
                        If(LEqual(Arg0, 0x03e8)) {
                            Or(Local0, 0x07, UAIO)
                        }
                    }
                    If(LEqual(Arg1, 0x01)) {
                        Or(LPE1, 0x02, LPE1)
                        And(UAIO, 0x0f, Local0)
                        If(LEqual(Arg0, 0x03f8)) {
                            Or(Local0, 0x00, UAIO)
                        }
                        If(LEqual(Arg0, 0x02f8)) {
                            Or(Local0, 0x10, UAIO)
                        }
                        If(LEqual(Arg0, 0x02e8)) {
                            Or(Local0, 0x50, UAIO)
                        }
                        If(LEqual(Arg0, 0x03e8)) {
                            Or(Local0, 0x70, UAIO)
                        }
                    }
                    If(LEqual(Arg1, 0x02)) {
                        Or(LPE1, 0x04, LPE1)
                        And(PRIO, 0xfc, Local0)
                        If(LEqual(Arg0, 0x0378)) {
                            Or(Local0, 0x00, PRIO)
                        }
                        If(LEqual(Arg0, 0x0278)) {
                            Or(Local0, 0x01, PRIO)
                        }
                        If(LEqual(Arg0, 0x03bc)) {
                            Or(Local0, 0x02, PRIO)
                        }
                    }
                    If(LEqual(Arg1, 0x03)) {
                        Or(LPE1, 0x08, LPE1)
                    }
                    If(LEqual(Arg1, 0x04)) {
                        If(LEqual(Arg0, 0x0201)) {
                            Or(LPE2, 0x01, LPE2)
                        }
                        If(LEqual(Arg0, 0x0209)) {
                            Or(LPE2, 0x02, LPE2)
                        }
                    }
                    If(LEqual(Arg1, 0x06)) {
                        If(LNot(LEqual(Arg0, 0xffff))) {
                            And(Arg0, 0xff, Local0)
                            Or(Local0, 0x01, GN2L)
                            ShiftRight(Arg0, 0x08, GN2H)
                        }
                        Else {
                            Store(Zero, GN2H)
                            Store(Zero, GN2L)
                        }
                    }
                }
            }
            Scope(\) {
                Method(SLDM, 2) {
                }
            }
            Scope(\) {
                OperationRegion(\SCPP, SystemIO, 0xb2, 0x01)
                Field(\SCPP, ByteAcc, NoLock, Preserve) {
                    SMIP,       8
                }
            }
            Method(\_SB.PCI0._INI) {
                If(STRC(\_OS, "Microsoft\x20Windows")) {
                    Store(0x56, SMIP)
                }
                Else {
                    If(STRC(\_OS, "Microsoft\x20Windows\x20NT")) {
                        If(CondRefOf(\_OSI, Local0)) {
                            If(\_OSI("Windows\x202001")) {
                                Store(0x59, SMIP)
                                Store(0x00, OSFL)
                                Store(0x03, OSFX)
                            }
                            If(\_OSI("Windows\x202006")) {
                                Store(0x59, SMIP)
                                Store(0x00, OSFL)
                                Store(0x04, OSFX)
                            }
                        }
                        Else {
                            Store(0x58, SMIP)
                            Store(0x00, OSFX)
                            Store(0x00, OSFL)
                        }
                    }
                    Else {
                        Store(0x57, SMIP)
                        Store(0x02, OSFX)
                        Store(0x02, OSFL)
                    }
                }
            }
            Scope(\) {
                Method(OSTP) {
                    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)
                    }
                    If(LEqual(OSFX, 0x04)) {
                        Store(0x59, SMIP)
                    }
                }
            }
            Device(SYSR) {
                Name(_HID, 0x020cd041)
                Name(_UID, 0x01)
                Name(_CRS, Buffer(0x62) {0x47, 0x1, 0x10, 0x0, 0x10, 0x0, 0x1, 
0x10, 0x47, 0x1, 0x22, 0x0, 0x22, 0x0, 0x1, 0x1e, 0x47, 0x1, 0x44, 0x0, 0x44, 
0x0, 0x1, 0x1c, 0x47, 0x1, 0x62, 0x0, 0x62, 0x0, 0x1, 0x2, 0x47, 0x1, 0x65, 
0x0, 0x65, 0x0, 0x1, 0xb, 0x47, 0x1, 0x74, 0x0, 0x74, 0x0, 0x1, 0xc, 0x47, 0x1, 
0x91, 0x0, 0x91, 0x0, 0x1, 0x3, 0x47, 0x1, 0xa2, 0x0, 0xa2, 0x0, 0x1, 0x1e, 
0x47, 0x1, 0xe0, 0x0, 0xe0, 0x0, 0x1, 0x10, 0x47, 0x1, 0xd0, 0x4, 0xd0, 0x4, 
0x1, 0x2, 0x47, 0x1, 0x0, 0x8, 0x0, 0x8, 0x1, 0x80, 0x47, 0x1, 0x80, 0x8, 0x80, 
0x8, 0x1, 0x10, 0x79, 0x0 })
            }
            Device(PIC) {
                Name(_HID, 0xd041)
                Name(_CRS, Buffer(0x15) {0x47, 0x1, 0x20, 0x0, 0x20, 0x0, 0x1, 
0x2, 0x47, 0x1, 0xa0, 0x0, 0xa0, 0x0, 0x1, 0x2, 0x22, 0x4, 0x0, 0x79, 0x0 })
            }
            Device(DMA1) {
                Name(_HID, 0x0002d041)
                Name(_CRS, Buffer(0x25) {0x2a, 0x10, 0x4, 0x47, 0x1, 0x0, 0x0, 
0x0, 0x0, 0x1, 0x10, 0x47, 0x1, 0x80, 0x0, 0x80, 0x0, 0x1, 0x11, 0x47, 0x1, 
0x94, 0x0, 0x94, 0x0, 0x1, 0xc, 0x47, 0x1, 0xc0, 0x0, 0xc0, 0x0, 0x1, 0x20, 
0x79, 0x0 })
            }
            Device(TMR) {
                Name(_HID, 0x0001d041)
                Name(ATT5, Buffer(0x0d) {0x47, 0x1, 0x40, 0x0, 0x40, 0x0, 0x0, 
0x4, 0x22, 0x1, 0x0, 0x79, 0x0 })
                Name(ATT6, Buffer(0x0a) {0x47, 0x1, 0x40, 0x0, 0x40, 0x0, 0x0, 
0x4, 0x79, 0x0 })
                Method(_CRS) {
                    If(LNot(LLess(OSFX, 0x03))) {
                        If(HPTF) {
                            Return(ATT6)
                        }
                        Else {
                            Return(ATT5)
                        }
                    }
                    Else {
                        Return(ATT5)
                    }
                }
            }
            Device(HPET) {
                Name(_HID, 0x0301d041)
                Name(ATT3, Buffer(0x14) {0x22, 0x1, 0x0, 0x22, 0x0, 0x1, 0x86, 
0x9, 0x0, 0x1, 0x0, 0x0, 0xd0, 0xfe, 0x0, 0x4, 0x0, 0x0, 0x79, 0x0 })
                Name(ATT4, Buffer(0x02) {0x79, 0x0 })
                Method(_STA) {
                    If(LNot(LLess(OSFX, 0x03))) {
                        If(HPTF) {
                            Return(0x0f)
                        }
                        Else {
                            Return(0x00)
                        }
                    }
                    Else {
                        Return(0x00)
                    }
                }
                Method(_CRS) {
                    If(LNot(LLess(OSFX, 0x03))) {
                        If(HPTF) {
                            Return(ATT3)
                        }
                        Else {
                            Return(ATT4)
                        }
                    }
                    Else {
                        Return(ATT4)
                    }
                }
            }
            Device(RTC) {
                Name(_HID, 0x000bd041)
                Name(ATT0, Buffer(0x0d) {0x47, 0x1, 0x70, 0x0, 0x70, 0x0, 0x0, 
0x4, 0x22, 0x0, 0x1, 0x79, 0x0 })
                Name(ATT1, Buffer(0x0a) {0x47, 0x1, 0x70, 0x0, 0x70, 0x0, 0x0, 
0x4, 0x79, 0x0 })
                Method(_CRS) {
                    If(LNot(LLess(OSFX, 0x03))) {
                        If(HPTF) {
                            Return(ATT1)
                        }
                        Else {
                            Return(ATT0)
                        }
                    }
                    Else {
                        Return(ATT0)
                    }
                }
            }
            Device(SPKR) {
                Name(_HID, 0x0008d041)
                Name(_CRS, Buffer(0x0a) {0x47, 0x1, 0x61, 0x0, 0x61, 0x0, 0x1, 
0x1, 0x79, 0x0 })
            }
            Device(COPR) {
                Name(_HID, 0x040cd041)
                Name(_CRS, Buffer(0x0d) {0x47, 0x1, 0xf0, 0x0, 0xf0, 0x0, 0x1, 
0x10, 0x22, 0x0, 0x20, 0x79, 0x0 })
            }
            Device(PMIO) {
                Name(_HID, 0x020cd041)
                Name(_UID, 0x02)
                Method(_CRS) {
                    Name(BUF0, Buffer(0x0a) {0x47, 0x1, 0x0, 0x4, 0x0, 0x4, 
0x1, 0xc0, 0x79, 0x0 })
                    Return(BUF0)
                }
            }
        }
        Device(USB0) {
            Name(_ADR, 0x001d0000)
            Method(_S3D) {
                If(LEqual(OSFL, 0x02)) {
                    Return(0x02)
                }
                Return(0x03)
            }
            Method(_PRW) {
                Return(Package(0x02) {
                    0x03,
                    0x04,
                })
            }
        }
        Device(USB1) {
            Name(_ADR, 0x001d0001)
            Method(_S3D) {
                If(LEqual(OSFL, 0x02)) {
                    Return(0x02)
                }
                Return(0x03)
            }
            Method(_PRW) {
                Return(Package(0x02) {
                    0x04,
                    0x04,
                })
            }
        }
        Device(USB2) {
            Name(_ADR, 0x001d0002)
            Method(_S3D) {
                If(LEqual(OSFL, 0x02)) {
                    Return(0x02)
                }
                Return(0x03)
            }
            Method(_PRW) {
                Return(Package(0x02) {
                    0x0c,
                    0x04,
                })
            }
        }
        Device(USB3) {
            Name(_ADR, 0x001d0003)
            Method(_S3D) {
                If(LEqual(OSFL, 0x02)) {
                    Return(0x02)
                }
                Return(0x03)
            }
            Method(_PRW) {
                Return(Package(0x02) {
                    0x0e,
                    0x04,
                })
            }
        }
        Device(USBE) {
            Name(_ADR, 0x001d0007)
            Method(_S3D) {
                If(LEqual(OSFL, 0x02)) {
                    Return(0x02)
                }
                Return(0x03)
            }
            Method(_PRW) {
                Return(Package(0x02) {
                    0x0d,
                    0x04,
                })
            }
        }
        Device(ICHX) {
            Name(_ADR, 0x001f0001)
            OperationRegion(PCI, PCI_Config, 0x40, 0x20)
            Field(PCI, DWordAcc, NoLock, Preserve) {
                ITM0,   16,
                ITM1,   16,
                SIT0,   4,
                SIT1,   4,
                Offset(0x8),
                UDC0,   2,
                UDC1,   2,
                Offset(0xa),
                UDT0,   8,
                UDT1,   8,
                Offset(0x14),
                ICF0,   2,
                ICF1,   2,
                ,       6,
                WPPE,   1,
                ,       1,
                FAS0,   2,
                FAS1,   2
            }
            Method(GTM, 6) {
                Store(Buffer(0x14) { }, Local0)
                CreateDWordField(Local0, 0x00, PIO0)
                CreateDWordField(Local0, 0x04, DMA0)
                CreateDWordField(Local0, 0x08, PIO1)
                CreateDWordField(Local0, 0x0c, DMA1)
                CreateDWordField(Local0, 0x10, FLAG)
                Store(0x10, FLAG)
                If(LOr(And(Arg0, 0x08, ), LNot(And(Arg0, 0x01, )))) {
                    Store(0x0384, PIO0)
                }
                Else {
                    Add(ShiftRight(And(Arg0, 0x0300, ), 0x08, ), 
ShiftRight(And(Arg0, 0x3000, ), 0x0c, ), Local1)
                    Multiply(Subtract(0x09, Local1, ), 0x1e, PIO0)
                }
                If(LOr(LAnd(Arg0, 0x4000), LAnd(Arg2, 0x01))) {
                    If(LOr(And(Arg0, 0x80, ), LNot(And(Arg0, 0x10, )))) {
                        Store(0x0384, PIO1)
                    }
                    Else {
                        Add(And(Arg1, 0x03, ), ShiftRight(And(Arg1, 0x0c, ), 
0x02, ), Local1)
                        Multiply(Subtract(0x09, Local1, ), 0x1e, PIO1)
                    }
                }
                Else {
                    Store(PIO0, PIO1)
                }
                If(And(Arg2, 0x01, )) {
                    Subtract(0x04, And(Arg3, 0x03, ), Local1)
                    If(And(Arg5, 0x01, )) {
                        Store(0x14, DMA0)
                    }
                    Else {
                        If(And(Arg4, 0x01, )) {
                            Multiply(Local1, 0x0f, DMA0)
                        }
                        Else {
                            Multiply(Local1, 0x1e, DMA0)
                        }
                    }
                }
                Else {
                    Store(PIO0, DMA0)
                }
                If(LOr(LAnd(Arg0, 0x4000), LAnd(Arg2, 0x01))) {
                    If(And(Arg2, 0x02, )) {
                        Subtract(0x04, ShiftRight(And(Arg3, 0x30, ), 0x04, ), 
Local1)
                        If(And(Arg5, 0x02, )) {
                            Store(0x14, DMA1)
                        }
                        Else {
                            If(And(Arg4, 0x02, )) {
                                Multiply(Local1, 0x0f, DMA1)
                            }
                            Else {
                                Multiply(Local1, 0x1e, DMA1)
                            }
                        }
                    }
                    Else {
                        Store(PIO1, DMA1)
                    }
                }
                Else {
                    Store(DMA0, DMA1)
                }
                Store(Zero, FLAG)
                If(And(Arg0, 0x01, )) {
                    Or(FLAG, 0x10, FLAG)
                }
                If(And(Arg2, 0x01, )) {
                    Or(FLAG, 0x01, FLAG)
                }
                If(And(Arg0, 0x02, )) {
                    Or(FLAG, 0x02, FLAG)
                }
                If(And(Arg2, 0x02, )) {
                    Or(FLAG, 0x04, FLAG)
                }
                If(And(Arg0, 0x20, )) {
                    Or(FLAG, 0x08, FLAG)
                }
                Return(Local0)
            }
            Method(STM, 3) {
                Store(Buffer(0x18) { }, Local7)
                CreateDWordField(Local7, 0x00, ITM)
                CreateDWordField(Local7, 0x04, SIT)
                CreateDWordField(Local7, 0x08, UDC)
                CreateDWordField(Local7, 0x0c, UDT)
                CreateDWordField(Local7, 0x10, ICF)
                CreateDWordField(Local7, 0x14, FAS)
                CreateDWordField(Arg0, 0x00, PIO0)
                CreateDWordField(Arg0, 0x04, DMA0)
                CreateDWordField(Arg0, 0x08, PIO1)
                CreateDWordField(Arg0, 0x0c, DMA1)
                CreateDWordField(Arg0, 0x10, FLAG)
                Store(FLAG, Local4)
                Store(0x8000, Local0)
                If(And(Local4, 0x02, )) {
                    Or(Local0, 0x07, Local0)
                }
                If(And(Local4, 0x08, )) {
                    Or(Local0, 0x4000, Local0)
                    Or(Local0, 0x70, Local0)
                }
                If(LAnd(LLess(DMA0, PIO0), LNot(And(Local4, 0x01, )))) {
                    Or(Local0, 0x08, Local0)
                }
                If(LAnd(LLess(DMA1, PIO1), LNot(And(Local4, 0x04, )))) {
                    Or(Local0, 0x80, Local0)
                }
                If(PIO0) {
                    If(LLess(PIO0, 0x0384)) {
                        Or(Local0, 0x01, Local0)
                    }
                }
                If(PIO1) {
                    If(LLess(PIO1, 0x0384)) {
                        Or(Local0, 0x10, Local0)
                    }
                }
                If(And(Local4, 0x01, )) {
                    Store(PIO0, Local1)
                }
                Else {
                    Store(DMA0, Local1)
                }
                If(Local1) {
                    If(LNot(LGreater(Local1, 0x78))) {
                        Or(Local0, 0x2300, Local0)
                    }
                    Else {
                        If(LNot(LGreater(Local1, 0xb4))) {
                            Or(Local0, 0x2100, Local0)
                        }
                        Else {
                            If(LNot(LGreater(Local1, 0xf0))) {
                                Or(Local0, 0x1000, Local0)
                            }
                        }
                    }
                }
                Store(Local0, ITM)
                Store(Zero, Local0)
                If(And(Local4, 0x04, )) {
                    Store(PIO1, Local1)
                }
                Else {
                    Store(DMA1, Local1)
                }
                If(Local1) {
                    If(LNot(LGreater(Local1, 0x78))) {
                        Store(0x0b, Local0)
                    }
                    Else {
                        If(LNot(LGreater(Local1, 0xb4))) {
                            Store(0x09, Local0)
                        }
                        Else {
                            If(LNot(LGreater(Local1, 0xf0))) {
                                Store(0x04, Local0)
                            }
                        }
                    }
                }
                Store(Local0, SIT)
                Store(0x00, Local0)
                If(And(Local4, 0x01, )) {
                    Or(Local0, 0x01, Local0)
                }
                If(And(Local4, 0x04, )) {
                    Or(Local0, 0x02, Local0)
                }
                Store(Local0, UDC)
                Store(0x00, Local0)
                If(And(Local4, 0x01, )) {
                    If(LEqual(DMA0, 0x14)) {
                        Store(0x01, Local0)
                    }
                    Else {
                        If(LLess(DMA0, 0x3c)) {
                            Divide(DMA0, 0x0f, , Local1)
                        }
                        Else {
                            Divide(DMA0, 0x1e, , Local1)
                        }
                        Subtract(0x04, Local1, Local0)
                    }
                }
                If(And(Local4, 0x04, )) {
                    If(LEqual(DMA1, 0x14)) {
                        Store(0x01, Local1)
                    }
                    Else {
                        If(LLess(DMA1, 0x3c)) {
                            Divide(DMA1, 0x0f, , Local1)
                        }
                        Else {
                            Divide(DMA1, 0x1e, , Local1)
                        }
                        Subtract(0x04, Local1, Local1)
                    }
                    ShiftLeft(Local1, 0x04, Local1)
                    Or(Local0, Local1, Local0)
                }
                Store(Local0, UDT)
                Store(0x00, Local0)
                If(DMA0) {
                    If(LGreater(DMA0, 0x14)) {
                        If(LLess(DMA0, 0x3c)) {
                            Or(Local0, 0x01, Local0)
                        }
                    }
                }
                If(DMA1) {
                    If(LGreater(DMA1, 0x14)) {
                        If(LLess(DMA1, 0x3c)) {
                            Or(Local0, 0x02, Local0)
                        }
                    }
                }
                Store(Local0, ICF)
                Store(0x00, Local0)
                If(LEqual(DMA0, 0x14)) {
                    Or(Local0, 0x01, Local0)
                }
                If(LEqual(DMA1, 0x14)) {
                    Or(Local0, 0x02, Local0)
                }
                Store(Local0, FAS)
                Return(Local7)
            }
            Method(H15P, 1) {
                Name(BUFF, Buffer(0x08) {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 
})
                Store(Arg0, Local0)
                Store(BUFF, Local1)
                Concatenate(Local0, Local1, Local7)
                CreateWordField(Local7, 0x02, CYL)
                CreateWordField(Local7, 0x06, HEAD)
                CreateWordField(Local7, 0x0c, SPT)
                If(LAnd(LNot(LLess(HEAD, 0x10)), LNot(LLess(CYL, 0x2000)))) {
                    Return(SPT)
                }
                Else {
                    Return(Zero)
                }
            }
            Method(GTF0, 7) {
                Store(Buffer(0x07) {0x3, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xef }, 
Local7)
                CreateByteField(Local7, 0x01, MODE)
                If(And(Arg2, 0x01, )) {
                    And(Arg3, 0x03, Local0)
                    If(And(Arg6, 0x01, )) {
                        Add(Local0, 0x04, Local0)
                    }
                    Else {
                        If(And(Arg4, 0x01, )) {
                            Add(Local0, 0x02, Local0)
                        }
                    }
                    Or(Local0, 0x40, MODE)
                }
                Else {
                    Add(ShiftRight(And(Arg0, 0x0300, ), 0x08, ), 
ShiftRight(And(Arg0, 0x3000, ), 0x0c, ), Local0)
                    If(LNot(LLess(Local0, 0x05))) {
                        Store(0x22, MODE)
                    }
                    Else {
                        If(LNot(LLess(Local0, 0x03))) {
                            Store(0x21, MODE)
                        }
                        Else {
                            Store(0x20, MODE)
                        }
                    }
                }
                Concatenate(Local7, Local7, Local6)
                If(LOr(And(Arg0, 0x08, ), LNot(And(Arg0, 0x01, )))) {
                    If(And(Arg0, 0x02, )) {
                        Store(0x00, MODE)
                    }
                    Else {
                        Store(0x01, MODE)
                    }
                }
                Else {
                    Add(ShiftRight(And(Arg0, 0x0300, ), 0x08, ), 
ShiftRight(And(Arg0, 0x3000, ), 0x0c, ), Local0)
                    If(LNot(LLess(Local0, 0x05))) {
                        Store(0x0c, MODE)
                    }
                    Else {
                        If(LNot(LLess(Local0, 0x03))) {
                            Store(0x0b, MODE)
                        }
                        Else {
                            Store(0x0a, MODE)
                        }
                    }
                }
                Concatenate(Local6, Local7, Local5)
                If(Arg5) {
                    Store(Buffer(0x07) {0x0, 0x0, 0x0, 0x0, 0x0, 0xae, 0x91 }, 
Local4)
                    CreateByteField(Local4, 0x01, SPT)
                    Store(Arg5, SPT)
                    Concatenate(Local5, Local4, Local6)
                    Return(Local6)
                }
                Else {
                    Return(Local5)
                }
            }
            Method(GTF1, 7) {
                Store(Buffer(0x07) {0x3, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xef }, 
Local7)
                CreateByteField(Local7, 0x01, MODE)
                If(And(Arg2, 0x02, )) {
                    ShiftRight(And(Arg3, 0x30, ), 0x04, Local0)
                    If(And(Arg6, 0x02, )) {
                        Add(Local0, 0x04, Local0)
                    }
                    Else {
                        If(And(Arg4, 0x02, )) {
                            Add(Local0, 0x02, Local0)
                        }
                    }
                    Or(Local0, 0x40, MODE)
                }
                Else {
                    Add(ShiftRight(And(Arg1, 0x03, ), 0x02, ), And(Arg1, 0x0c, 
), Local0)
                    If(LNot(LLess(Local0, 0x05))) {
                        Store(0x22, MODE)
                    }
                    Else {
                        If(LNot(LLess(Local0, 0x03))) {
                            Store(0x21, MODE)
                        }
                        Else {
                            Store(0x20, MODE)
                        }
                    }
                }
                Concatenate(Local7, Local7, Local6)
                If(LOr(And(Arg0, 0x80, ), LNot(And(Arg0, 0x10, )))) {
                    If(And(Arg0, 0x20, )) {
                        Store(0x00, MODE)
                    }
                    Else {
                        Store(0x01, MODE)
                    }
                }
                Else {
                    Add(ShiftRight(And(Arg1, 0x03, ), 0x02, ), And(Arg1, 0x0c, 
), Local0)
                    If(LNot(LLess(Local0, 0x05))) {
                        Store(0x0c, MODE)
                    }
                    Else {
                        If(LNot(LLess(Local0, 0x03))) {
                            Store(0x0b, MODE)
                        }
                        Else {
                            Store(0x0a, MODE)
                        }
                    }
                }
                Concatenate(Local6, Local7, Local5)
                If(Arg5) {
                    Store(Buffer(0x07) {0x0, 0x0, 0x0, 0x0, 0x0, 0xbe, 0x91 }, 
Local4)
                    CreateByteField(Local4, 0x01, SPT)
                    Store(Arg5, SPT)
                    Concatenate(Local5, Local4, Local6)
                    Return(Local6)
                }
                Else {
                    Return(Local5)
                }
            }
            Device(PRIM) {
                Name(_ADR, 0x00)
                Method(_GTM) {
                    Store(GTM(ITM0, SIT0, UDC0, UDT0, ICF0, FAS0), Local0)
                    Return(Local0)
                }
                Method(_STM, 3) {
                    Store(STM(Arg0, Arg1, Arg2), Local0)
                    CreateDWordField(Local0, 0x00, ITM)
                    CreateDWordField(Local0, 0x04, SIT)
                    CreateDWordField(Local0, 0x08, UDC)
                    CreateDWordField(Local0, 0x0c, UDT)
                    CreateDWordField(Local0, 0x10, ICF)
                    CreateDWordField(Local0, 0x14, FAS)
                    Store(UDC, UDC0)
                    Store(UDT, UDT0)
                    Store(ICF, ICF0)
                    Store(FAS, FAS0)
                }
                Device(MAST) {
                    Name(_ADR, 0x00)
                    Name(H15F, Zero)
                    Method(_GTF) {
                        Store(GTF0(ITM0, SIT0, UDC0, UDT0, ICF0, H15F, FAS0), 
Local0)
                        Return(Local0)
                    }
                }
                Device(SLAV) {
                    Name(_ADR, 0x01)
                    Name(H15F, Zero)
                    Method(_GTF) {
                        Store(GTF1(ITM0, SIT0, UDC0, UDT0, ICF0, H15F, FAS0), 
Local0)
                        Return(Local0)
                    }
                }
            }
            Device(SECN) {
                Name(_ADR, 0x01)
                Method(_GTM) {
                    Store(GTM(ITM1, SIT1, UDC1, UDT1, ICF1, FAS1), Local0)
                    Return(Local0)
                }
                Method(_STM, 3) {
                    Store(STM(Arg0, Arg1, Arg2), Local0)
                    CreateDWordField(Local0, 0x00, ITM)
                    CreateDWordField(Local0, 0x04, SIT)
                    CreateDWordField(Local0, 0x08, UDC)
                    CreateDWordField(Local0, 0x0c, UDT)
                    CreateDWordField(Local0, 0x10, ICF)
                    CreateDWordField(Local0, 0x14, FAS)
                    Store(UDC, UDC1)
                    Store(UDT, UDT1)
                    Store(ICF, ICF1)
                    Store(FAS, FAS1)
                }
                Device(MAST) {
                    Name(_ADR, 0x00)
                    Name(H15F, Zero)
                    Method(_GTF) {
                        Store(GTF0(ITM1, SIT1, UDC1, UDT1, ICF1, H15F, FAS1), 
Local0)
                        Return(Local0)
                    }
                }
                Device(SLAV) {
                    Name(_ADR, 0x01)
                    Name(H15F, Zero)
                    Method(_GTF) {
                        Store(GTF1(ITM1, SIT1, UDC1, UDT1, ICF1, H15F, FAS1), 
Local0)
                        Return(Local0)
                    }
                }
            }
        }
        Device(IDE1) {
            Name(_ADR, 0x001f0002)
            OperationRegion(PCI, PCI_Config, 0x40, 0x20)
            Field(PCI, DWordAcc, NoLock, Preserve) {
                ITM0,   16,
                ITM1,   16,
                SIT0,   4,
                SIT1,   4,
                Offset(0x8),
                UDC0,   2,
                UDC1,   2,
                Offset(0xa),
                UDT0,   8,
                UDT1,   8,
                Offset(0x14),
                ICF0,   2,
                ICF1,   2,
                ,       6,
                WPPE,   1,
                ,       1,
                FAS0,   2,
                FAS1,   2
            }
            Device(PRIM) {
                Name(_ADR, 0x00)
                Method(_GTM) {
                    Store(\_SB.PCI0.ICHX.GTM(ITM0, SIT0, UDC0, UDT0, ICF0, 
FAS0), Local0)
                    Return(Local0)
                }
                Method(_STM, 3) {
                    Store(\_SB.PCI0.ICHX.STM(Arg0, Arg1, Arg2), Local0)
                    CreateDWordField(Local0, 0x00, ITM)
                    CreateDWordField(Local0, 0x04, SIT)
                    CreateDWordField(Local0, 0x08, UDC)
                    CreateDWordField(Local0, 0x0c, UDT)
                    CreateDWordField(Local0, 0x10, ICF)
                    CreateDWordField(Local0, 0x14, FAS)
                    Store(UDC, UDC0)
                    Store(UDT, UDT0)
                    Store(ICF, ICF0)
                    Store(FAS, FAS0)
                }
                Device(DRV0) {
                    Name(_ADR, 0x00)
                    Name(H15F, Zero)
                    Method(_GTF) {
                        Store(\_SB.PCI0.ICHX.GTF0(ITM0, SIT0, UDC0, UDT0, ICF0, 
H15F, FAS0), Local0)
                        Return(Local0)
                    }
                }
                Device(DRV1) {
                    Name(_ADR, 0x01)
                    Name(H15F, Zero)
                    Method(_GTF) {
                        Store(\_SB.PCI0.ICHX.GTF1(ITM0, SIT0, UDC0, UDT0, ICF0, 
H15F, FAS0), Local0)
                        Return(Local0)
                    }
                }
            }
            Device(SECD) {
                Name(_ADR, 0x01)
                Method(_GTM) {
                    Store(\_SB.PCI0.ICHX.GTM(ITM1, SIT1, UDC1, UDT1, ICF1, 
FAS1), Local0)
                    Return(Local0)
                }
                Method(_STM, 3) {
                    Store(\_SB.PCI0.ICHX.STM(Arg0, Arg1, Arg2), Local0)
                    CreateDWordField(Local0, 0x00, ITM)
                    CreateDWordField(Local0, 0x04, SIT)
                    CreateDWordField(Local0, 0x08, UDC)
                    CreateDWordField(Local0, 0x0c, UDT)
                    CreateDWordField(Local0, 0x10, ICF)
                    CreateDWordField(Local0, 0x14, FAS)
                    Store(UDC, UDC1)
                    Store(UDT, UDT1)
                    Store(ICF, ICF1)
                    Store(FAS, FAS1)
                }
                Device(DRV0) {
                    Name(_ADR, 0x00)
                    Name(H15F, Zero)
                    Method(_GTF) {
                        Store(\_SB.PCI0.ICHX.GTF0(ITM1, SIT1, UDC1, UDT1, ICF1, 
H15F, FAS1), Local0)
                        Return(Local0)
                    }
                }
                Device(DRV1) {
                    Name(_ADR, 0x01)
                    Name(H15F, Zero)
                    Method(_GTF) {
                        Store(\_SB.PCI0.ICHX.GTF1(ITM1, SIT1, UDC1, UDT1, ICF1, 
H15F, FAS1), Local0)
                        Return(Local0)
                    }
                }
            }
        }
        Device(PX43) {
            Name(_ADR, 0x001f0003)
            OperationRegion(PBAS, PCI_Config, 0x20, 0x02)
            Field(PBAS, ByteAcc, NoLock, Preserve) {
                BAS0,   16
            }
            Method(SMBB) {
                And(BAS0, 0xfffe, Local0)
                Return(Local0)
            }
        }
        Device(AC97) {
            Name(_ADR, 0x001e0002)
            Method(_PRW) {
                Return(Package(0x02) {
                    0x05,
                    0x05,
                })
            }
        }
        Device(AZAL) {
            Name(_ADR, 0x001b0000)
            Method(_PRW) {
                Return(Package(0x02) {
                    0x05,
                    0x05,
                })
            }
        }
        Name(BUFA, Buffer(0x06) {0x23, 0xb8, 0xde, 0x18, 0x79, 0x0 })
        Name(BUFB, Buffer(0x06) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
        CreateWordField(BUFB, 0x01, IRQV)
        Device(LNKA) {
            Name(_HID, 0x0f0cd041)
            Name(_UID, 0x01)
            Method(_STA) {
                And(PIRA, 0x80, Local0)
                If(LEqual(Local0, 0x80)) {
                    Return(0x09)
                }
                Else {
                    Return(0x0b)
                }
            }
            Method(_PRS) {
                Return(BUFA)
            }
            Method(_DIS) {
                Or(PIRA, 0x80, PIRA)
            }
            Method(_CRS) {
                And(PIRA, 0x0f, Local0)
                ShiftLeft(0x01, Local0, IRQV)
                Return(BUFB)
            }
            Method(_SRS, 1) {
                CreateWordField(Arg0, 0x01, IRQ1)
                FindSetRightBit(IRQ1, Local0)
                Decrement(Local0)
                Store(Local0, PIRA)
            }
        }
        Device(LNKB) {
            Name(_HID, 0x0f0cd041)
            Name(_UID, 0x02)
            Method(_STA) {
                And(PIRB, 0x80, Local0)
                If(LEqual(Local0, 0x80)) {
                    Return(0x09)
                }
                Else {
                    Return(0x0b)
                }
            }
            Method(_PRS) {
                Return(BUFA)
            }
            Method(_DIS) {
                Or(PIRB, 0x80, PIRB)
            }
            Method(_CRS) {
                And(PIRB, 0x0f, Local0)
                ShiftLeft(0x01, Local0, IRQV)
                Return(BUFB)
            }
            Method(_SRS, 1) {
                CreateWordField(Arg0, 0x01, IRQ1)
                FindSetRightBit(IRQ1, Local0)
                Decrement(Local0)
                Store(Local0, PIRB)
            }
        }
        Device(LNKC) {
            Name(_HID, 0x0f0cd041)
            Name(_UID, 0x03)
            Method(_STA) {
                And(PIRC, 0x80, Local0)
                If(LEqual(Local0, 0x80)) {
                    Return(0x09)
                }
                Else {
                    Return(0x0b)
                }
            }
            Method(_PRS) {
                Return(BUFA)
            }
            Method(_DIS) {
                Or(PIRC, 0x80, PIRC)
            }
            Method(_CRS) {
                And(PIRC, 0x0f, Local0)
                ShiftLeft(0x01, Local0, IRQV)
                Return(BUFB)
            }
            Method(_SRS, 1) {
                CreateWordField(Arg0, 0x01, IRQ1)
                FindSetRightBit(IRQ1, Local0)
                Decrement(Local0)
                Store(Local0, PIRC)
            }
        }
        Device(LNKD) {
            Name(_HID, 0x0f0cd041)
            Name(_UID, 0x04)
            Method(_STA) {
                And(PIRD, 0x80, Local0)
                If(LEqual(Local0, 0x80)) {
                    Return(0x09)
                }
                Else {
                    Return(0x0b)
                }
            }
            Method(_PRS) {
                Return(BUFA)
            }
            Method(_DIS) {
                Or(PIRD, 0x80, PIRD)
            }
            Method(_CRS) {
                And(PIRD, 0x0f, Local0)
                ShiftLeft(0x01, Local0, IRQV)
                Return(BUFB)
            }
            Method(_SRS, 1) {
                CreateWordField(Arg0, 0x01, IRQ1)
                FindSetRightBit(IRQ1, Local0)
                Decrement(Local0)
                Store(Local0, PIRD)
            }
        }
        Device(LNKE) {
            Name(_HID, 0x0f0cd041)
            Name(_UID, 0x05)
            Method(_STA) {
                And(PIRE, 0x80, Local0)
                If(LEqual(Local0, 0x80)) {
                    Return(0x09)
                }
                Else {
                    Return(0x0b)
                }
            }
            Method(_PRS) {
                Return(BUFA)
            }
            Method(_DIS) {
                Or(PIRE, 0x80, PIRE)
            }
            Method(_CRS) {
                And(PIRE, 0x0f, Local0)
                ShiftLeft(0x01, Local0, IRQV)
                Return(BUFB)
            }
            Method(_SRS, 1) {
                CreateWordField(Arg0, 0x01, IRQ1)
                FindSetRightBit(IRQ1, Local0)
                Decrement(Local0)
                Store(Local0, PIRE)
            }
        }
        Device(LNKF) {
            Name(_HID, 0x0f0cd041)
            Name(_UID, 0x06)
            Method(_STA) {
                And(PIRF, 0x80, Local0)
                If(LEqual(Local0, 0x80)) {
                    Return(0x09)
                }
                Else {
                    Return(0x0b)
                }
            }
            Method(_PRS) {
                Return(BUFA)
            }
            Method(_DIS) {
                Or(PIRF, 0x80, PIRF)
            }
            Method(_CRS) {
                And(PIRF, 0x0f, Local0)
                ShiftLeft(0x01, Local0, IRQV)
                Return(BUFB)
            }
            Method(_SRS, 1) {
                CreateWordField(Arg0, 0x01, IRQ1)
                FindSetRightBit(IRQ1, Local0)
                Decrement(Local0)
                Store(Local0, PIRF)
            }
        }
        Device(LNK0) {
            Name(_HID, 0x0f0cd041)
            Name(_UID, 0x07)
            Method(_STA) {
                And(PIRG, 0x80, Local0)
                If(LEqual(Local0, 0x80)) {
                    Return(0x09)
                }
                Else {
                    Return(0x0b)
                }
            }
            Method(_PRS) {
                Return(BUFA)
            }
            Method(_DIS) {
                Or(PIRG, 0x80, PIRG)
            }
            Method(_CRS) {
                And(PIRG, 0x0f, Local0)
                ShiftLeft(0x01, Local0, IRQV)
                Return(BUFB)
            }
            Method(_SRS, 1) {
                CreateWordField(Arg0, 0x01, IRQ1)
                FindSetRightBit(IRQ1, Local0)
                Decrement(Local0)
                Store(Local0, PIRG)
            }
        }
        Device(LNK1) {
            Name(_HID, 0x0f0cd041)
            Name(_UID, 0x08)
            Method(_STA) {
                And(PIRH, 0x80, Local0)
                If(LEqual(Local0, 0x80)) {
                    Return(0x09)
                }
                Else {
                    Return(0x0b)
                }
            }
            Method(_PRS) {
                Return(BUFA)
            }
            Method(_DIS) {
                Or(PIRH, 0x80, PIRH)
            }
            Method(_CRS) {
                And(PIRH, 0x0f, Local0)
                ShiftLeft(0x01, Local0, IRQV)
                Return(BUFB)
            }
            Method(_SRS, 1) {
                CreateWordField(Arg0, 0x01, IRQ1)
                FindSetRightBit(IRQ1, Local0)
                Decrement(Local0)
                Store(Local0, PIRH)
            }
        }
        Method(_PRW) {
            Return(Package(0x02) {
                0x0b,
                0x05,
            })
        }
    }
    OperationRegion(MBTM, SystemMemory, 0x000ff824, 0x04)
    Field(MBTM, DWordAcc, NoLock, Preserve) {
        MBIM,   32
    }
    Device(MEM) {
        Name(_HID, 0x010cd041)
        Method(_CRS) {
            Name(BUF0, Buffer(0x9e) {0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0, 
0x0, 0x0, 0x1, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0xd0, 0xfe, 0x0, 0x1, 0x0, 
0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x86, 0x9, 
0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 
0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x8, 0x0, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0xc0, 0xfe, 0x0, 0x10, 0x0, 
0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x30, 0xd1, 0xfe, 0x0, 0xb0, 0x0, 0x0, 0x86, 
0x9, 0x0, 0x1, 0x0, 0x0, 0xd2, 0xfe, 0x0, 0x0, 0x7, 0x0, 0x86, 0x9, 0x0, 0x1, 
0x0, 0x0, 0xe0, 0xfe, 0x0, 0x10, 0x0, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0xb0, 
0xff, 0x0, 0x0, 0x8, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0xf0, 0xff, 0x0, 0x0, 
0x10, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x1, 0x0, 0x79, 
0x0 })
            CreateDWordField(BUF0, 0x1c, ACMM)
            CreateDWordField(BUF0, 0x20, ASSM)
            CreateDWordField(BUF0, 0x38, EXTM)
            Subtract(AMEM, 0x00100000, EXTM)
            CreateDWordField(BUF0, 0x40, MBBA)
            CreateDWordField(BUF0, 0x44, MBTM)
            If(LNot(LEqual(MBIM, Zero))) {
                Store(MBIM, MBBA)
                Subtract(EXTM, 0x0800, EXTM)
            }
            Else {
                Store(Zero, MBTM)
            }
            Store(AMEM, ACMM)
            And(AMEM, 0x000fffff, Local0)
            Subtract(0x00100000, Local0, ASSM)
            Return(BUF0)
        }
    }
    Device(\_SB.PCI0.PX40.FWH) {
        Name(_HID, 0x0008d425)
        Method(_CRS) {
            Name(FWH0, Buffer(0x0e) {0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0xb8, 0xff, 
0x0, 0x0, 0x8, 0x0, 0x79, 0x0 })
            Return(FWH0)
        }
    }
    Device(\_SB.PCI0.EXPL) {
        Name(_HID, 0x020cd041)
        Name(_UID, 0x04)
        Method(_CRS) {
            Name(BUF0, Buffer(0x0e) {0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0x0, 0xe0, 
0x0, 0x0, 0x0, 0x10, 0x79, 0x0 })
            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) {0x0, 0x0, 0x0, 0x0, 0x0 })
CreateByteField(TVAR, 0x00, PLCY)
CreateWordField(TVAR, 0x01, CTOS)
CreateWordField(TVAR, 0x03, CTHY)
Name(TBUF, Buffer(0x04) {0x0, 0x0, 0x0, 0x0 })
CreateByteField(TBUF, 0x00, DB00)
CreateByteField(TBUF, 0x01, DB01)
CreateWordField(TBUF, 0x00, DW00)
CreateWordField(TBUF, 0x02, DW01)
CreateDWordField(TBUF, 0x00, DATD)
Name(TSAD, 0x98)
Method(SCFG, 1) {
    WBYT(TSAD, 0x03, Arg0)
}
Method(STOS, 3) {
    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)
    }
    WBYT(TSAD, 0x07, Local0)
}
Method(STHY, 3) {
    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)
    }
    WBYT(TSAD, 0x08, Local0)
}
Method(RTMP) {
    Store(RBYT(TSAD, 0x01), Local0)
    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)
    }
    If(LEqual(SSHU, 0x01)) {
        Return(0x0c3c)
    }
    Else {
        Return(Local0)
    }
}
Method(SMBC, 5, Serialized) {
    OperationRegion(SM00, SystemIO, \_SB.PCI0.PX43.SMBB(), 0x07)
    Field(SM00, ByteAcc, Lock, Preserve) {
        HSTS,   8,
        SSTS,   8,
        CTLR,   8,
        CMDR,   8,
        ADDR,   8,
        DAT0,   8,
        DAT1,   8
    }
    Field(SM00, ByteAcc, Lock, Preserve) {
        Offset(0x5),
        DATW,   16
    }
    If(LEqual(And(Arg0, 0x0200, ), 0x00)) {
        Store(0x01, Local1)
        And(HSTS, 0x40, Local0)
        While(LNot(LEqual(Local0, 0x00))) {
            Add(Local1, 0x01, Local1)
            If(LEqual(Local1, 0x03e8)) {
                Store(0x40, HSTS)
            }
            Else {
                Sleep(0x01)
            }
            And(HSTS, 0x40, Local0)
        }
    }
    And(HSTS, 0x01, Local0)
    While(LEqual(Local0, 0x01)) {
        Sleep(0x01)
        And(HSTS, 0x01, Local0)
    }
    And(CTLR, 0xbf, Local7)
    Store(0x00, Local1)
    While(LNot(LEqual(Local1, 0x05))) {
        Store(And(Arg0, 0xff, ), ADDR)
        Store(Arg1, CMDR)
        Store(Arg2, DAT0)
        Store(Arg3, DAT1)
        Store(0xbf, HSTS)
        Store(Arg4, CTLR)
        And(HSTS, 0x1e, Local0)
        While(LEqual(Local0, Zero)) {
            Sleep(0x01)
            And(HSTS, 0x1e, Local0)
        }
        Store(0xbf, HSTS)
        If(LEqual(And(Local0, 0x18, ), 0x00)) {
            Store(0x05, Local1)
        }
        Else {
            Add(Local1, 0x01, Local1)
        }
    }
    Store(Local7, CTLR)
    Store(Ones, Local1)
    If(LEqual(Local0, 0x02)) {
        Store(DATW, Local1)
    }
    If(LEqual(And(Arg0, 0x0100, ), 0x00)) {
        Store(0x40, HSTS)
    }
    Return(Local1)
}
Method(SBYT, 2) {
    SMBC(Arg0, Arg1, 0x00, 0x00, 0x44)
}
Method(WBYT, 3) {
    SMBC(Arg0, Arg1, Arg2, 0x00, 0x48)
}
Method(WWRD, 4) {
    SMBC(Arg0, Arg1, Arg2, Arg3, 0x4c)
}
Method(RBYT, 2) {
    Or(Arg0, 0x01, Local1)
    Return(SMBC(Local1, Arg1, 0x00, 0x00, 0x48))
}
Method(RWRD, 2) {
    Or(Arg0, 0x01, Local1)
    Return(SMBC(Local1, Arg1, 0x00, 0x00, 0x4c))
}
Scope(\_TZ) {
    Device(FAN) {
        Name(_HID, 0x0b0cd041)
        Method(_INI) {
            Store(TP1H, CTOS)
            Store(TP1L, CTHY)
        }
    }
    ThermalZone(THRM) {
        Name(_AL0, Package(0x01) {
            FAN,
        })
        Method(_AC0) {
            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) {
            If(Or(PLCY, PLCY, Local7)) {
                Return(TP1H)
            }
            Else {
                Return(TP2H)
            }
        }
        Method(_CRT) {
            Return(TRPC)
        }
        Method(_TMP) {
            And(SENF, 0x01, Local6)
            If(LEqual(Local6, 0x01)) {
                Return(RTMP())
            }
            Else {
                Return(0x0b86)
            }
        }
        Method(_SCP, 1) {
            If(Arg0) {
                Store(One, PLCY)
            }
            Else {
                Store(Zero, PLCY)
            }
            Notify(\_TZ.THRM, 0x81)
        }
        Method(STMP, 2) {
            Store(Arg1, DW00)
            If(Arg0) {
                STHY(DB00, DB01, DW00)
            }
            Else {
                STOS(DB00, DB01, DW00)
            }
        }
    }
}

}
/*
HPET: Length=56, Revision=1, Checksum=240,
        OEMID=IntelR, OEM Table ID=AWRDACPI, OEM Revision=0x30302e32,
        Creator ID=AWRD, Creator Revision=0x98
 */
/*
MCFG: Length=60, Revision=1, Checksum=64,
        OEMID=IntelR, OEM Table ID=AWRDACPI, OEM Revision=0x30302e32,
        Creator ID=AWRD, Creator Revision=0x0
 */
/*
APIC: Length=104, Revision=1, Checksum=217,
        OEMID=IntelR, OEM Table ID=AWRDACPI, OEM Revision=0x30302e32,
        Creator ID=AWRD, Creator Revision=0x0
 */
/*
SSDT: Length=348, Revision=1, Checksum=92,
        OEMID=PmRef, OEM Table ID=Cpu0Ist, OEM Revision=0x3000,
        Creator ID=INTL, Creator Revision=0x20050624
 */
/*
SSDT: Length=483, Revision=1, Checksum=140,
        OEMID=PmRef, OEM Table ID=CpuPm, OEM Revision=0x3000,
        Creator ID=INTL, Creator Revision=0x20050624
 */


Home | Main Index | Thread Index | Old Index