blob: 48ca815d77b218b513832a8726e45ef730ff2c57 [file] [log] [blame]
/*
* Intel ACPI Component Architecture
* AML/ASL+ Disassembler version 20160831-64
* Copyright (c) 2000 - 2016 Intel Corporation
*
* Disassembling to symbolic ASL+ operators
*
* Disassembly of dsdt.dat, Mon Jan 2 15:19:14 2017
*
* Original Table Header:
* Signature "DSDT"
* Length 0x00006909 (26889)
* Revision 0x01 **** 32-bit table (V1), no 64-bit math support
* Checksum 0xD7
* OEM ID "A0798"
* OEM Table ID "A0798000"
* OEM Revision 0x00000000 (0)
* Compiler ID "INTL"
* Compiler Version 0x20051117 (537202967)
*/
DefinitionBlock ("", "DSDT", 1, "A0798", "A0798000", 0x00000000)
{
Scope (\_PR)
{
Processor (CPU1, 0x01, 0x00000810, 0x06)
{
OperationRegion (STBL, SystemMemory, 0x7F7AE0C0, 0x0214)
Name (NCPU, 0x02)
Name (TYPE, 0x80000000)
Name (HNDL, 0x80000000)
Name (CFGD, 0x01000009)
Name (TBLD, 0x80)
Method (_PDC, 1, NotSerialized) // _PDC: Processor Driver Capabilities
{
CreateDWordField (Arg0, 0x00, REVS)
CreateDWordField (Arg0, 0x04, SIZE)
Local0 = SizeOf (Arg0)
Local1 = (Local0 - 0x08)
CreateField (Arg0, 0x40, (Local1 * 0x08), TEMP)
Name (STS0, Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00 /* .... */
})
Concatenate (STS0, TEMP, Local2)
_OSC (ToUUID ("4077a616-290c-47be-9ebd-d87058713953"), REVS, SIZE, Local2)
}
Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities
{
CreateDWordField (Arg3, 0x00, STS0)
CreateDWordField (Arg3, 0x04, CAP0)
CreateDWordField (Arg0, 0x00, IID0)
CreateDWordField (Arg0, 0x04, IID1)
CreateDWordField (Arg0, 0x08, IID2)
CreateDWordField (Arg0, 0x0C, IID3)
Name (UID0, ToUUID ("4077a616-290c-47be-9ebd-d87058713953"))
CreateDWordField (UID0, 0x00, EID0)
CreateDWordField (UID0, 0x04, EID1)
CreateDWordField (UID0, 0x08, EID2)
CreateDWordField (UID0, 0x0C, EID3)
If (!(((IID0 == EID0) && (IID1 == EID1)) && ((
IID2 == EID2) && (IID3 == EID3))))
{
STS0 = 0x06
Return (Arg3)
}
If (Arg1 != 0x01)
{
STS0 = 0x0A
Return (Arg3)
}
TYPE = ((TYPE & 0x7FFFFFFF) | CAP0) /* \_PR_.CPU1._OSC.CAP0 */
If (CFGD & 0x01)
{
If (((CFGD & 0x01000000) && ((TYPE & 0x09) ==
0x09)) && !(TBLD & 0x01))
{
TBLD |= 0x01
Load (STBL, HNDL) /* \_PR_.CPU1.HNDL */
}
}
If (CFGD & 0xF0)
{
If (((CFGD & 0x01000000) && (TYPE & 0x18)) && !
(TBLD & 0x02))
{
TBLD |= 0x02
}
}
Return (Arg3)
}
}
}
Scope (\_PR)
{
Processor (CPU2, 0x02, 0x00000810, 0x06)
{
OperationRegion (STBL, SystemMemory, 0x7F7AE2E0, 0x0143)
Name (NCPU, 0x02)
Name (TYPE, 0x80000000)
Name (HNDL, 0x80000000)
Name (CFGD, 0x01000009)
Name (TBLD, 0x80)
Method (_PDC, 1, NotSerialized) // _PDC: Processor Driver Capabilities
{
CreateDWordField (Arg0, 0x00, REVS)
CreateDWordField (Arg0, 0x04, SIZE)
Local0 = SizeOf (Arg0)
Local1 = (Local0 - 0x08)
CreateField (Arg0, 0x40, (Local1 * 0x08), TEMP)
Name (STS1, Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00 /* .... */
})
Concatenate (STS1, TEMP, Local2)
_OSC (ToUUID ("4077a616-290c-47be-9ebd-d87058713953"), REVS, SIZE, Local2)
}
Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities
{
CreateDWordField (Arg3, 0x00, STS1)
CreateDWordField (Arg3, 0x04, CAP1)
CreateDWordField (Arg0, 0x00, IID0)
CreateDWordField (Arg0, 0x04, IID1)
CreateDWordField (Arg0, 0x08, IID2)
CreateDWordField (Arg0, 0x0C, IID3)
Name (UID0, ToUUID ("4077a616-290c-47be-9ebd-d87058713953"))
CreateDWordField (UID0, 0x00, EID0)
CreateDWordField (UID0, 0x04, EID1)
CreateDWordField (UID0, 0x08, EID2)
CreateDWordField (UID0, 0x0C, EID3)
If (!(((IID0 == EID0) && (IID1 == EID1)) && ((
IID2 == EID2) && (IID3 == EID3))))
{
STS1 = 0x06
Return (Arg3)
}
If (Arg1 != 0x01)
{
STS1 = 0x0A
Return (Arg3)
}
TYPE = ((TYPE & 0x7FFFFFFF) | CAP1) /* \_PR_.CPU2._OSC.CAP1 */
If (CFGD & 0x01)
{
If (((CFGD & 0x01000000) && ((TYPE & 0x09) ==
0x09)) && !(TBLD & 0x01))
{
TBLD |= 0x01
Load (STBL, HNDL) /* \_PR_.CPU2.HNDL */
}
}
If (CFGD & 0xF0)
{
If (((CFGD & 0x01000000) && (TYPE & 0x18)) && !
(TBLD & 0x02))
{
TBLD |= 0x02
}
}
Return (Arg3)
}
}
}
Scope (\_PR)
{
Processor (CPU3, 0x03, 0x00000810, 0x06)
{
OperationRegion (STBL, SystemMemory, 0xFFFF0000, 0xFFFF)
Name (NCPU, 0x80)
Name (TYPE, 0x80000000)
Name (HNDL, 0x80000000)
Name (CFGD, 0x80000000)
Name (TBLD, 0x80)
Method (_PDC, 1, NotSerialized) // _PDC: Processor Driver Capabilities
{
CreateDWordField (Arg0, 0x00, REVS)
CreateDWordField (Arg0, 0x04, SIZE)
Local0 = SizeOf (Arg0)
Local1 = (Local0 - 0x08)
CreateField (Arg0, 0x40, (Local1 * 0x08), TEMP)
Name (STS2, Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00 /* .... */
})
Concatenate (STS2, TEMP, Local2)
_OSC (ToUUID ("4077a616-290c-47be-9ebd-d87058713953"), REVS, SIZE, Local2)
}
Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities
{
CreateDWordField (Arg3, 0x00, STS2)
CreateDWordField (Arg3, 0x04, CAP2)
CreateDWordField (Arg0, 0x00, IID0)
CreateDWordField (Arg0, 0x04, IID1)
CreateDWordField (Arg0, 0x08, IID2)
CreateDWordField (Arg0, 0x0C, IID3)
Name (UID0, ToUUID ("4077a616-290c-47be-9ebd-d87058713953"))
CreateDWordField (UID0, 0x00, EID0)
CreateDWordField (UID0, 0x04, EID1)
CreateDWordField (UID0, 0x08, EID2)
CreateDWordField (UID0, 0x0C, EID3)
If (!(((IID0 == EID0) && (IID1 == EID1)) && ((
IID2 == EID2) && (IID3 == EID3))))
{
STS2 = 0x06
Return (Arg3)
}
If (Arg1 != 0x01)
{
STS2 = 0x0A
Return (Arg3)
}
TYPE = ((TYPE & 0x7FFFFFFF) | CAP2) /* \_PR_.CPU3._OSC.CAP2 */
If (CFGD & 0x01)
{
If (((CFGD & 0x01000000) && ((TYPE & 0x09) ==
0x09)) && !(TBLD & 0x01))
{
TBLD |= 0x01
Load (STBL, HNDL) /* \_PR_.CPU3.HNDL */
}
}
If (CFGD & 0xF0)
{
If (((CFGD & 0x01000000) && (TYPE & 0x18)) && !
(TBLD & 0x02))
{
TBLD |= 0x02
}
}
Return (Arg3)
}
}
}
Scope (\_PR)
{
Processor (CPU4, 0x04, 0x00000810, 0x06)
{
OperationRegion (STBL, SystemMemory, 0xFFFF0000, 0xFFFF)
Name (NCPU, 0x80)
Name (TYPE, 0x80000000)
Name (HNDL, 0x80000000)
Name (CFGD, 0x80000000)
Name (TBLD, 0x80)
Method (_PDC, 1, NotSerialized) // _PDC: Processor Driver Capabilities
{
CreateDWordField (Arg0, 0x00, REVS)
CreateDWordField (Arg0, 0x04, SIZE)
Local0 = SizeOf (Arg0)
Local1 = (Local0 - 0x08)
CreateField (Arg0, 0x40, (Local1 * 0x08), TEMP)
Name (STS3, Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00 /* .... */
})
Concatenate (STS3, TEMP, Local2)
_OSC (ToUUID ("4077a616-290c-47be-9ebd-d87058713953"), REVS, SIZE, Local2)
}
Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities
{
CreateDWordField (Arg3, 0x00, STS3)
CreateDWordField (Arg3, 0x04, CAP3)
CreateDWordField (Arg0, 0x00, IID0)
CreateDWordField (Arg0, 0x04, IID1)
CreateDWordField (Arg0, 0x08, IID2)
CreateDWordField (Arg0, 0x0C, IID3)
Name (UID0, ToUUID ("4077a616-290c-47be-9ebd-d87058713953"))
CreateDWordField (UID0, 0x00, EID0)
CreateDWordField (UID0, 0x04, EID1)
CreateDWordField (UID0, 0x08, EID2)
CreateDWordField (UID0, 0x0C, EID3)
If (!(((IID0 == EID0) && (IID1 == EID1)) && ((
IID2 == EID2) && (IID3 == EID3))))
{
STS3 = 0x06
Return (Arg3)
}
If (Arg1 != 0x01)
{
STS3 = 0x0A
Return (Arg3)
}
TYPE = ((TYPE & 0x7FFFFFFF) | CAP3) /* \_PR_.CPU4._OSC.CAP3 */
If (CFGD & 0x01)
{
If (((CFGD & 0x01000000) && ((TYPE & 0x09) ==
0x09)) && !(TBLD & 0x01))
{
TBLD |= 0x01
Load (STBL, HNDL) /* \_PR_.CPU4.HNDL */
}
}
If (CFGD & 0xF0)
{
If (((CFGD & 0x01000000) && (TYPE & 0x18)) && !
(TBLD & 0x02))
{
TBLD |= 0x02
}
}
Return (Arg3)
}
}
}
Name (DP80, 0x80)
Name (DP90, 0x90)
Name (SPIO, 0x2E)
Name (IOHW, 0x0290)
Name (ACPH, 0xDE)
Name (PMBS, 0x0800)
Name (FHDC, 0xD9)
Name (PMLN, 0x80)
Name (GPBS, 0x0480)
Name (GPLN, 0x40)
Name (SMBS, 0x0400)
Name (SMBL, 0x20)
Name (SMBH, 0x00)
Name (PM30, 0x0830)
Name (SUSW, 0xFF)
Name (HTBA, 0xFED1F404)
Name (APIC, 0x01)
Name (EAQF, 0x01)
Name (CQST, 0x3C)
Name (PCIB, 0xF0000000)
Name (PCIL, 0x04000000)
Name (CPUC, 0x04)
OperationRegion (BIOS, SystemMemory, 0x7F7AE064, 0xFF)
Field (BIOS, ByteAcc, NoLock, Preserve)
{
SS1, 1,
SS2, 1,
SS3, 1,
SS4, 1,
Offset (0x01),
IOST, 16,
TOPM, 32,
ROMS, 32,
MG1B, 32,
MG1L, 32,
MG2B, 32,
MG2L, 32,
Offset (0x1C),
DMAX, 8,
HPTA, 32,
CPB0, 32,
CPB1, 32,
CPB2, 32,
CPB3, 32,
ASSB, 8,
AOTB, 8,
AAXB, 32,
SMIF, 8,
DTSE, 8,
DTS1, 8,
DTS2, 8,
MPEN, 8,
MSC1, 32,
MSC2, 32,
MSC3, 32,
MSC4, 32,
MSC5, 32,
MSC6, 32,
MSC7, 32,
MSC8, 32
}
Method (RRIO, 4, NotSerialized)
{
Debug = "RRIO"
}
Method (RDMA, 3, NotSerialized)
{
Debug = "rDMA"
}
Name (PICM, 0x00)
Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model
{
If (Arg0)
{
DBG8 = 0xAA
}
Else
{
DBG8 = 0xAC
}
PICM = Arg0
}
Name (OSVR, Ones)
Method (OSFL, 0, NotSerialized)
{
If (OSVR != Ones)
{
Return (OSVR) /* \OSVR */
}
If (PICM == 0x00)
{
DBG8 = 0xAC
}
OSVR = 0x01
If (CondRefOf (\_OSI, Local1))
{
If (\_OSI ("Windows 2001"))
{
OSVR = 0x00
}
}
ElseIf (MCTH (\_OS, "Microsoft Windows NT"))
{
OSVR = 0x04
}
Else
{
If (MCTH (\_OS, "Microsoft WindowsME: Millennium Edition"))
{
OSVR = 0x02
}
If (MCTH (\_OS, "Linux"))
{
OSVR = 0x03
}
}
Return (OSVR) /* \OSVR */
}
Method (MCTH, 2, NotSerialized)
{
If (SizeOf (Arg0) < SizeOf (Arg1))
{
Return (Zero)
}
Local0 = (SizeOf (Arg0) + 0x01)
Name (BUF0, Buffer (Local0) {})
Name (BUF1, Buffer (Local0) {})
BUF0 = Arg0
BUF1 = Arg1
While (Local0)
{
Local0--
If (DerefOf (BUF0 [Local0]) != DerefOf (BUF1 [Local0]
))
{
Return (Zero)
}
}
Return (One)
}
Name (PRWP, Package (0x02)
{
Zero,
Zero
})
Method (GPRW, 2, NotSerialized)
{
PRWP [0x00] = Arg0
Local0 = (SS1 << 0x01)
Local0 |= (SS2 << 0x02)
Local0 |= (SS3 << 0x03)
Local0 |= (SS4 << 0x04)
If ((0x01 << Arg1) & Local0)
{
PRWP [0x01] = Arg1
}
Else
{
Local0 >>= 0x01
If ((OSFL () == 0x01) || (OSFL () == 0x02))
{
FindSetLeftBit (Local0, PRWP [0x01])
}
Else
{
FindSetRightBit (Local0, PRWP [0x01])
}
}
Return (PRWP) /* \PRWP */
}
Name (WAKP, Package (0x02)
{
Zero,
Zero
})
OperationRegion (DEB0, SystemIO, DP80, 0x01)
Field (DEB0, ByteAcc, NoLock, Preserve)
{
DBG8, 8
}
OperationRegion (DEB1, SystemIO, DP90, 0x02)
Field (DEB1, WordAcc, NoLock, Preserve)
{
DBG9, 16
}
Scope (\_SB)
{
Name (PR00, Package (0x14)
{
Package (0x04)
{
0x0001FFFF,
0x00,
LNKA,
0x00
},
Package (0x04)
{
0x0001FFFF,
0x01,
LNKB,
0x00
},
Package (0x04)
{
0x0001FFFF,
0x02,
LNKC,
0x00
},
Package (0x04)
{
0x0001FFFF,
0x03,
LNKD,
0x00
},
Package (0x04)
{
0x0002FFFF,
0x00,
LNKA,
0x00
},
Package (0x04)
{
0x0002FFFF,
0x01,
LNKB,
0x00
},
Package (0x04)
{
0x001CFFFF,
0x00,
LNKA,
0x00
},
Package (0x04)
{
0x001CFFFF,
0x01,
LNKB,
0x00
},
Package (0x04)
{
0x001CFFFF,
0x02,
LNKC,
0x00
},
Package (0x04)
{
0x001CFFFF,
0x03,
LNKD,
0x00
},
Package (0x04)
{
0x001DFFFF,
0x01,
LNKB,
0x00
},
Package (0x04)
{
0x001DFFFF,
0x02,
LNKC,
0x00
},
Package (0x04)
{
0x001DFFFF,
0x03,
LNKD,
0x00
},
Package (0x04)
{
0x001EFFFF,
0x00,
LNKA,
0x00
},
Package (0x04)
{
0x001EFFFF,
0x01,
LNKB,
0x00
},
Package (0x04)
{
0x001FFFFF,
0x03,
LNKD,
0x00
},
Package (0x04)
{
0x001DFFFF,
0x00,
LNKE,
0x00
},
Package (0x04)
{
0x001FFFFF,
0x00,
LNKG,
0x00
},
Package (0x04)
{
0x001FFFFF,
0x01,
LNKH,
0x00
},
Package (0x04)
{
0x001BFFFF,
0x00,
LNKD,
0x00
}
})
Name (AR00, Package (0x14)
{
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)
{
0x0002FFFF,
0x00,
0x00,
0x10
},
Package (0x04)
{
0x0002FFFF,
0x01,
0x00,
0x11
},
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)
{
0x001DFFFF,
0x01,
0x00,
0x11
},
Package (0x04)
{
0x001DFFFF,
0x02,
0x00,
0x12
},
Package (0x04)
{
0x001DFFFF,
0x03,
0x00,
0x13
},
Package (0x04)
{
0x001EFFFF,
0x00,
0x00,
0x10
},
Package (0x04)
{
0x001EFFFF,
0x01,
0x00,
0x11
},
Package (0x04)
{
0x001FFFFF,
0x03,
0x00,
0x13
},
Package (0x04)
{
0x001DFFFF,
0x00,
0x00,
0x14
},
Package (0x04)
{
0x001FFFFF,
0x00,
0x00,
0x16
},
Package (0x04)
{
0x001FFFFF,
0x01,
0x00,
0x17
},
Package (0x04)
{
0x001BFFFF,
0x00,
0x00,
0x13
}
})
Name (PR01, Package (0x04)
{
Package (0x04)
{
0xFFFF,
0x00,
LNKA,
0x00
},
Package (0x04)
{
0xFFFF,
0x01,
LNKB,
0x00
},
Package (0x04)
{
0xFFFF,
0x02,
LNKC,
0x00
},
Package (0x04)
{
0xFFFF,
0x03,
LNKD,
0x00
}
})
Name (AR01, 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
}
})
Name (PR03, Package (0x09)
{
Package (0x04)
{
0x0008FFFF,
0x00,
LNKE,
0x00
},
Package (0x04)
{
0xFFFF,
0x00,
LNKB,
0x00
},
Package (0x04)
{
0xFFFF,
0x01,
LNKC,
0x00
},
Package (0x04)
{
0xFFFF,
0x02,
LNKD,
0x00
},
Package (0x04)
{
0xFFFF,
0x03,
LNKA,
0x00
},
Package (0x04)
{
0x0001FFFF,
0x00,
LNKF,
0x00
},
Package (0x04)
{
0x0001FFFF,
0x01,
LNKG,
0x00
},
Package (0x04)
{
0x0001FFFF,
0x02,
LNKH,
0x00
},
Package (0x04)
{
0x0001FFFF,
0x03,
LNKE,
0x00
}
})
Name (AR03, Package (0x09)
{
Package (0x04)
{
0x0008FFFF,
0x00,
0x00,
0x14
},
Package (0x04)
{
0xFFFF,
0x00,
0x00,
0x11
},
Package (0x04)
{
0xFFFF,
0x01,
0x00,
0x12
},
Package (0x04)
{
0xFFFF,
0x02,
0x00,
0x13
},
Package (0x04)
{
0xFFFF,
0x03,
0x00,
0x10
},
Package (0x04)
{
0x0001FFFF,
0x00,
0x00,
0x15
},
Package (0x04)
{
0x0001FFFF,
0x01,
0x00,
0x16
},
Package (0x04)
{
0x0001FFFF,
0x02,
0x00,
0x17
},
Package (0x04)
{
0x0001FFFF,
0x03,
0x00,
0x14
}
})
Name (PR09, Package (0x04)
{
Package (0x04)
{
0xFFFF,
0x00,
LNKA,
0x00
},
Package (0x04)
{
0xFFFF,
0x01,
LNKB,
0x00
},
Package (0x04)
{
0xFFFF,
0x02,
LNKC,
0x00
},
Package (0x04)
{
0xFFFF,
0x03,
LNKD,
0x00
}
})
Name (AR09, 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
}
})
Name (PR08, Package (0x01)
{
Package (0x04)
{
0xFFFF,
0x00,
LNKB,
0x00
}
})
Name (AR08, Package (0x01)
{
Package (0x04)
{
0xFFFF,
0x00,
0x00,
0x11
}
})
Name (PRSA, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,6,7,10,11,12,14,15}
})
Alias (PRSA, PRSB)
Alias (PRSA, PRSC)
Alias (PRSA, PRSD)
Alias (PRSA, PRSE)
Alias (PRSA, PRSF)
Alias (PRSA, PRSG)
Alias (PRSA, PRSH)
Device (PCI0)
{
Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */) // _HID: Hardware ID
Name (_CID, EisaId ("PNP0A03") /* PCI Bus */) // _CID: Compatible ID
Name (_ADR, 0x00) // _ADR: Address
Method (^BN00, 0, NotSerialized)
{
Return (0x00)
}
Method (_BBN, 0, NotSerialized) // _BBN: BIOS Bus Number
{
Return (BN00 ())
}
Name (_UID, 0x00) // _UID: Unique ID
Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
{
If (PICM)
{
Return (AR00) /* \_SB_.AR00 */
}
Return (PR00) /* \_SB_.PR00 */
}
Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State
{
If ((OSFL () == 0x01) || (OSFL () == 0x02))
{
Return (0x02)
}
Else
{
Return (0x03)
}
}
Device (MCH)
{
Name (_HID, EisaId ("PNP0C01") /* System Board */) // _HID: Hardware ID
Name (_UID, 0x0A) // _UID: Unique ID
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
Memory32Fixed (ReadWrite,
0xFED13000, // Address Base
0x00007000, // Address Length
)
})
}
Method (NPTS, 1, NotSerialized)
{
}
Method (NWAK, 1, NotSerialized)
{
}
Device (P0P1)
{
Name (_ADR, 0x00010000) // _ADR: Address
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (GPRW (0x09, 0x04))
}
Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
{
If (PICM)
{
Return (AR01) /* \_SB_.AR01 */
}
Return (PR01) /* \_SB_.PR01 */
}
}
Device (P0P3)
{
Name (_ADR, 0x001E0000) // _ADR: Address
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (GPRW (0x0B, 0x04))
}
Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
{
If (PICM)
{
Return (AR03) /* \_SB_.AR03 */
}
Return (PR03) /* \_SB_.PR03 */
}
}
Device (P0P9)
{
Name (_ADR, 0x001C0000) // _ADR: Address
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (GPRW (0x09, 0x04))
}
Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
{
If (PICM)
{
Return (AR09) /* \_SB_.AR09 */
}
Return (PR09) /* \_SB_.PR09 */
}
}
Device (P0P8)
{
Name (_ADR, 0x001C0001) // _ADR: Address
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (GPRW (0x09, 0x04))
}
Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
{
If (PICM)
{
Return (AR08) /* \_SB_.AR08 */
}
Return (PR08) /* \_SB_.PR08 */
}
}
Device (P0P7)
{
Name (_ADR, 0x001C0002) // _ADR: Address
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (GPRW (0x09, 0x04))
}
}
Device (P0P6)
{
Name (_ADR, 0x001C0003) // _ADR: Address
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (GPRW (0x09, 0x04))
}
}
Device (P0P5)
{
Name (_ADR, 0x001C0004) // _ADR: Address
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (GPRW (0x09, 0x04))
}
}
Device (P0P4)
{
Name (_ADR, 0x001C0005) // _ADR: Address
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (GPRW (0x09, 0x04))
}
}
Device (SBRG)
{
Name (_ADR, 0x001F0000) // _ADR: Address
Method (SPTS, 1, NotSerialized)
{
PS1S = One
PS1E = One
\_SB.SLPS = One
}
Method (SWAK, 1, NotSerialized)
{
\_SB.SLPS = Zero
PS1E = Zero
If (RTCS) {}
Else
{
Notify (\_SB.PWRB, 0x02) // Device Wake
}
If (AAXB & 0x02)
{
Notify (\_SB.PWRB, 0x02) // Device Wake
}
}
OperationRegion (PMS0, SystemIO, PMBS, 0x04)
Field (PMS0, ByteAcc, NoLock, Preserve)
{
, 10,
RTCS, 1,
, 4,
WAKS, 1,
Offset (0x03),
PWBT, 1,
Offset (0x04)
}
OperationRegion (SMIE, SystemIO, PM30, 0x08)
Field (SMIE, ByteAcc, NoLock, Preserve)
{
, 4,
PS1E, 1,
, 31,
PS1S, 1,
Offset (0x08)
}
Scope (\_SB)
{
Name (SLPS, 0x00)
Device (SLPB)
{
Name (_HID, EisaId ("PNP0C0E") /* Sleep Button Device */) // _HID: Hardware ID
Method (_STA, 0, NotSerialized) // _STA: Status
{
If (SUSW != 0xFF)
{
Return (0x0F)
}
Return (0x00)
}
Method (SBEV, 0, NotSerialized)
{
If (SLPS)
{
Notify (SLPB, 0x02) // Device Wake
}
Else
{
Notify (SLPB, 0x80) // Status Change
}
}
Method (\_GPE._L1B, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
\_SB.SLPB.SBEV ()
}
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (Package (0x02)
{
0x1B,
0x04
})
}
}
}
Device (PIC)
{
Name (_HID, EisaId ("PNP0000") /* 8259-compatible Programmable Interrupt Controller */) // _HID: Hardware ID
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IO (Decode16,
0x0020, // Range Minimum
0x0020, // Range Maximum
0x00, // Alignment
0x02, // Length
)
IO (Decode16,
0x00A0, // Range Minimum
0x00A0, // Range Maximum
0x00, // Alignment
0x02, // Length
)
IRQNoFlags ()
{2}
})
}
Device (DMAD)
{
Name (_HID, EisaId ("PNP0200") /* PC-class DMA Controller */) // _HID: Hardware ID
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
DMA (Compatibility, BusMaster, Transfer8, )
{4}
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x00, // Alignment
0x10, // Length
)
IO (Decode16,
0x0081, // Range Minimum
0x0081, // Range Maximum
0x00, // Alignment
0x03, // Length
)
IO (Decode16,
0x0087, // Range Minimum
0x0087, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IO (Decode16,
0x0089, // Range Minimum
0x0089, // Range Maximum
0x00, // Alignment
0x03, // Length
)
IO (Decode16,
0x008F, // Range Minimum
0x008F, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IO (Decode16,
0x00C0, // Range Minimum
0x00C0, // Range Maximum
0x00, // Alignment
0x20, // Length
)
})
}
Device (TMR)
{
Name (_HID, EisaId ("PNP0100") /* PC-class System Timer */) // _HID: Hardware ID
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IO (Decode16,
0x0040, // Range Minimum
0x0040, // Range Maximum
0x00, // Alignment
0x04, // Length
)
IRQNoFlags ()
{0}
})
}
Device (RTC0)
{
Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x00, // Alignment
0x02, // Length
)
IRQNoFlags ()
{8}
})
}
Device (SPKR)
{
Name (_HID, EisaId ("PNP0800") /* Microsoft Sound System Compatible Device */) // _HID: Hardware ID
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IO (Decode16,
0x0061, // Range Minimum
0x0061, // Range Maximum
0x00, // Alignment
0x01, // Length
)
})
}
Device (COPR)
{
Name (_HID, EisaId ("PNP0C04") /* x87-compatible Floating Point Processing Unit */) // _HID: Hardware ID
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IO (Decode16,
0x00F0, // Range Minimum
0x00F0, // Range Maximum
0x00, // Alignment
0x10, // Length
)
IRQNoFlags ()
{13}
})
}
Device (FDC)
{
Name (_HID, EisaId ("PNP0700")) // _HID: Hardware ID
Method (_FDE, 0, NotSerialized) // _FDE: Floppy Disk Enumerate
{
Name (FDEP, Package (0x05)
{
0x00,
0x00,
0x02,
0x02,
0x02
})
If (_STA ())
{
FDEP [0x00] = 0x01
}
Return (FDEP) /* \_SB_.PCI0.SBRG.FDC_._FDE.FDEP */
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (DSTA (0x03))
}
Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
{
DCNT (0x03, 0x00)
}
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
DCRS (0x03, 0x01)
IRQE = IRQM /* \_SB_.PCI0.SBRG.IRQM */
DMAE = DMAM /* \_SB_.PCI0.SBRG.DMAM */
IO21 = IO11 /* \_SB_.PCI0.SBRG.IO11 */
IO22 = IO12 /* \_SB_.PCI0.SBRG.IO12 */
LEN2 = 0x06
IO31 = (IO21 + 0x07)
IO32 = IO31 /* \_SB_.PCI0.SBRG.IO31 */
LEN3 = 0x01
Return (CRS2) /* \_SB_.PCI0.SBRG.CRS2 */
}
Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
{
DSRS (Arg0, 0x03)
CreateWordField (Arg0, 0x01, IRQE)
CreateByteField (Arg0, 0x04, DMAE)
ENFG (CGLD (0x03))
If (IRQE)
{
FindSetRightBit (IRQE, Local0)
INTR = (Local0 - 0x01)
}
Else
{
INTR = 0x00
}
If (DMAE)
{
FindSetRightBit (DMAE, Local0)
DMCH = (Local0 - 0x01)
}
Else
{
DMCH = 0x04
}
EXFG ()
}
Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
{
StartDependentFn (0x00, 0x00)
{
IO (Decode16,
0x03F0, // Range Minimum
0x03F0, // Range Maximum
0x01, // Alignment
0x06, // Length
)
IO (Decode16,
0x03F7, // Range Minimum
0x03F7, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IRQNoFlags ()
{6}
DMA (Compatibility, NotBusMaster, Transfer8, )
{2}
}
StartDependentFnNoPri ()
{
IO (Decode16,
0x03F0, // Range Minimum
0x03F0, // Range Maximum
0x01, // Alignment
0x06, // Length
)
IO (Decode16,
0x03F7, // Range Minimum
0x03F7, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IRQNoFlags ()
{3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8, )
{0,1,2,3}
}
StartDependentFnNoPri ()
{
IO (Decode16,
0x0370, // Range Minimum
0x0370, // Range Maximum
0x01, // Alignment
0x06, // Length
)
IO (Decode16,
0x0377, // Range Minimum
0x0377, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IRQNoFlags ()
{3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8, )
{0,1,2,3}
}
EndDependentFn ()
})
}
Device (LPTE)
{
Method (_HID, 0, NotSerialized) // _HID: Hardware ID
{
If (LPTM (0x02))
{
Return (0x0104D041)
}
Else
{
Return (0x0004D041)
}
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (DSTA (0x02))
}
Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
{
DCNT (0x02, 0x00)
}
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
DCRS (0x02, 0x01)
If (LPTM (0x02))
{
IRQE = IRQM /* \_SB_.PCI0.SBRG.IRQM */
DMAE = DMAM /* \_SB_.PCI0.SBRG.DMAM */
IO21 = IO11 /* \_SB_.PCI0.SBRG.IO11 */
IO22 = IO12 /* \_SB_.PCI0.SBRG.IO12 */
LEN2 = LEN1 /* \_SB_.PCI0.SBRG.LEN1 */
IO31 = (IO21 + 0x0400)
IO32 = IO31 /* \_SB_.PCI0.SBRG.IO31 */
LEN3 = LEN2 /* \_SB_.PCI0.SBRG.LEN2 */
Return (CRS2) /* \_SB_.PCI0.SBRG.CRS2 */
}
Else
{
Return (CRS1) /* \_SB_.PCI0.SBRG.CRS1 */
}
}
Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
{
DSRS (Arg0, 0x02)
}
Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings
{
If (LPTM (0x02))
{
Return (EPPR) /* \_SB_.PCI0.SBRG.LPTE.EPPR */
}
Else
{
Return (LPPR) /* \_SB_.PCI0.SBRG.LPTE.LPPR */
}
}
Name (LPPR, ResourceTemplate ()
{
StartDependentFn (0x00, 0x00)
{
IO (Decode16,
0x0378, // Range Minimum
0x0378, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{7}
}
StartDependentFnNoPri ()
{
IO (Decode16,
0x0378, // Range Minimum
0x0378, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{3,4,5,6,7,10,11,12}
}
StartDependentFnNoPri ()
{
IO (Decode16,
0x0278, // Range Minimum
0x0278, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{3,4,5,6,7,10,11,12}
}
StartDependentFnNoPri ()
{
IO (Decode16,
0x03BC, // Range Minimum
0x03BC, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IRQNoFlags ()
{3,4,5,6,7,10,11,12}
}
EndDependentFn ()
})
Name (EPPR, ResourceTemplate ()
{
StartDependentFn (0x00, 0x00)
{
IO (Decode16,
0x0378, // Range Minimum
0x0378, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IO (Decode16,
0x0778, // Range Minimum
0x0778, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{7}
DMA (Compatibility, NotBusMaster, Transfer8, )
{3}
}
StartDependentFnNoPri ()
{
IO (Decode16,
0x0378, // Range Minimum
0x0378, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IO (Decode16,
0x0778, // Range Minimum
0x0778, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8, )
{0,1,2,3}
}
StartDependentFnNoPri ()
{
IO (Decode16,
0x0278, // Range Minimum
0x0278, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IO (Decode16,
0x0678, // Range Minimum
0x0678, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8, )
{0,1,2,3}
}
StartDependentFnNoPri ()
{
IO (Decode16,
0x03BC, // Range Minimum
0x03BC, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IO (Decode16,
0x07BC, // Range Minimum
0x07BC, // Range Maximum
0x01, // Alignment
0x04, // Length
)
IRQNoFlags ()
{3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8, )
{0,1,2,3}
}
EndDependentFn ()
})
}
Device (SIOR)
{
Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID
Method (_UID, 0, NotSerialized) // _UID: Unique ID
{
Return (SPIO) /* \SPIO */
}
Name (CRS, ResourceTemplate ()
{
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x00, // Alignment
0x00, // Length
_Y00)
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x00, // Alignment
0x00, // Length
)
IO (Decode16,
0x0290, // Range Minimum
0x0290, // Range Maximum
0x00, // Alignment
0x08, // Length
)
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
If ((SPIO != 0x03F0) && (SPIO > 0xF0))
{
CreateWordField (CRS, \_SB.PCI0.SBRG.SIOR._Y00._MIN, GP10) // _MIN: Minimum Base Address
CreateWordField (CRS, \_SB.PCI0.SBRG.SIOR._Y00._MAX, GP11) // _MAX: Maximum Base Address
CreateByteField (CRS, \_SB.PCI0.SBRG.SIOR._Y00._LEN, GPL1) // _LEN: Length
GP10 = SPIO /* \SPIO */
GP11 = SPIO /* \SPIO */
GPL1 = 0x02
}
Return (CRS) /* \_SB_.PCI0.SBRG.SIOR.CRS_ */
}
}
Name (DCAT, Package (0x15)
{
0x02,
0x03,
0x01,
0x00,
0xFF,
0x07,
0xFF,
0xFF,
0x07,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0xFF,
0x07,
0x08,
0x09,
0xFF,
0xFF
})
Mutex (IOCF, 0x00)
Method (ENFG, 1, NotSerialized)
{
Acquire (IOCF, 0xFFFF)
INDX = 0x87
INDX = 0x87
LDN = Arg0
}
Method (EXFG, 0, NotSerialized)
{
INDX = 0xAA
Release (IOCF)
}
Method (LPTM, 1, NotSerialized)
{
ENFG (CGLD (Arg0))
Local0 = (OPT0 & 0x02)
EXFG ()
Return (Local0)
}
Method (UHID, 1, NotSerialized)
{
If (Arg0 == 0x01)
{
ENFG (CGLD (Arg0))
Local0 = (OPT1 & 0x38)
EXFG ()
If (Local0)
{
Return (0x1005D041)
}
}
Return (0x0105D041)
}
Name (KBFG, 0x01)
Name (MSFG, 0x01)
Method (SIOK, 1, NotSerialized)
{
ENFG (0x0A)
If (Arg0 > 0x01)
{
CRE4 |= 0x10
CRE0 = 0x00
Local0 = CRE3 /* \_SB_.PCI0.SBRG.CRE3 */
If (KBFG)
{
CRE0 |= 0x41
}
If (MSFG)
{
CRE0 |= 0x22
CRE6 |= 0x80
}
}
ElseIf (Arg0 == 0x01)
{
OPT6 = 0x00
OPT3 |= 0xFF
OPT4 |= 0xFF
If (KBFG)
{
OPT6 |= 0x10
}
If (MSFG)
{
OPT6 |= 0x20
}
}
Local0 = CRE3 /* \_SB_.PCI0.SBRG.CRE3 */
EXFG ()
}
Method (SIOS, 1, NotSerialized)
{
Debug = "SIOS"
SIOK (Arg0)
}
Method (SIOW, 1, NotSerialized)
{
Debug = "SIOW"
SIOK (0x00)
}
Method (SIOH, 0, NotSerialized)
{
Debug = "SIOH"
ENFG (0x0A)
If (OPT3 & 0x10)
{
Notify (PS2K, 0x02) // Device Wake
}
If (OPT3 & 0x20)
{
Notify (PS2M, 0x02) // Device Wake
}
EXFG ()
SIOK (Zero)
}
OperationRegion (IOID, SystemIO, SPIO, 0x02)
Field (IOID, ByteAcc, NoLock, Preserve)
{
INDX, 8,
DATA, 8
}
IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
{
Offset (0x07),
LDN, 8,
Offset (0x22),
FDCP, 1,
, 2,
LPTP, 1,
URAP, 1,
URBP, 1,
Offset (0x30),
ACTR, 8,
Offset (0x60),
IOAH, 8,
IOAL, 8,
IOH2, 8,
IOL2, 8,
Offset (0x70),
INTR, 4,
Offset (0x74),
DMCH, 3,
Offset (0xE0),
CRE0, 8,
CRE1, 8,
CRE2, 8,
CRE3, 8,
CRE4, 8,
CRE5, 8,
CRE6, 8,
Offset (0xF0),
OPT0, 8,
OPT1, 8,
OPT2, 8,
OPT3, 8,
OPT4, 8,
OPT5, 8,
OPT6, 8,
Offset (0xF9),
OPT9, 8
}
Method (CGLD, 1, NotSerialized)
{
Return (DerefOf (DCAT [Arg0]))
}
Method (DSTA, 1, NotSerialized)
{
ENFG (CGLD (Arg0))
Local0 = ACTR /* \_SB_.PCI0.SBRG.ACTR */
EXFG ()
If (Local0 == 0xFF)
{
Return (0x00)
}
If (Arg0 == 0x05)
{
Local0 >>= 0x02
}
If (Arg0 == 0x08)
{
Local0 >>= 0x01
}
Local0 &= 0x01
IOST |= (Local0 << Arg0)
If (Local0)
{
Return (0x0F)
}
ElseIf ((0x01 << Arg0) & IOST)
{
Return (0x0D)
}
Else
{
Return (0x00)
}
}
Method (DCNT, 2, NotSerialized)
{
ENFG (CGLD (Arg0))
If (Arg0 == 0x05)
{
Local1 = (IOH2 << 0x08)
Local1 |= IOL2
}
Else
{
Local1 = (IOAH << 0x08)
Local1 |= IOAL
}
RRIO (Arg0, Arg1, Local1, 0x08)
If ((DMCH < 0x04) && ((Local1 = (DMCH & 0x03)) != 0x00))
{
RDMA (Arg0, Arg1, Local1++)
}
Local1 = Arg1
Local2 = 0x01
If (Arg0 == 0x05)
{
Local1 = (Arg1 << 0x02)
Local2 <<= 0x02
}
If (Arg0 == 0x08)
{
Local1 = (Arg1 << 0x01)
Local2 <<= 0x01
}
Local0 = ACTR /* \_SB_.PCI0.SBRG.ACTR */
Local3 = ~Local2
Local0 &= Local3
Local0 |= Local1
ACTR = Local0
EXFG ()
}
Name (CRS1, ResourceTemplate ()
{
IRQNoFlags (_Y01)
{}
DMA (Compatibility, NotBusMaster, Transfer8, _Y02)
{}
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x01, // Alignment
0x00, // Length
_Y03)
})
CreateWordField (CRS1, \_SB.PCI0.SBRG._Y01._INT, IRQM) // _INT: Interrupts
CreateByteField (CRS1, \_SB.PCI0.SBRG._Y02._DMA, DMAM) // _DMA: Direct Memory Access
CreateWordField (CRS1, \_SB.PCI0.SBRG._Y03._MIN, IO11) // _MIN: Minimum Base Address
CreateWordField (CRS1, \_SB.PCI0.SBRG._Y03._MAX, IO12) // _MAX: Maximum Base Address
CreateByteField (CRS1, \_SB.PCI0.SBRG._Y03._LEN, LEN1) // _LEN: Length
Name (CRS2, ResourceTemplate ()
{
IRQNoFlags (_Y04)
{6}
DMA (Compatibility, NotBusMaster, Transfer8, _Y05)
{2}
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x01, // Alignment
0x00, // Length
_Y06)
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x01, // Alignment
0x00, // Length
_Y07)
})
CreateWordField (CRS2, \_SB.PCI0.SBRG._Y04._INT, IRQE) // _INT: Interrupts
CreateByteField (CRS2, \_SB.PCI0.SBRG._Y05._DMA, DMAE) // _DMA: Direct Memory Access
CreateWordField (CRS2, \_SB.PCI0.SBRG._Y06._MIN, IO21) // _MIN: Minimum Base Address
CreateWordField (CRS2, \_SB.PCI0.SBRG._Y06._MAX, IO22) // _MAX: Maximum Base Address
CreateByteField (CRS2, \_SB.PCI0.SBRG._Y06._LEN, LEN2) // _LEN: Length
CreateWordField (CRS2, \_SB.PCI0.SBRG._Y07._MIN, IO31) // _MIN: Minimum Base Address
CreateWordField (CRS2, \_SB.PCI0.SBRG._Y07._MAX, IO32) // _MAX: Maximum Base Address
CreateByteField (CRS2, \_SB.PCI0.SBRG._Y07._LEN, LEN3) // _LEN: Length
Method (DCRS, 2, NotSerialized)
{
ENFG (CGLD (Arg0))
IO11 = (IOAH << 0x08)
IO11 |= IOAL /* \_SB_.PCI0.SBRG.IO11 */
IO12 = IO11 /* \_SB_.PCI0.SBRG.IO11 */
Local0 = (FindSetRightBit (IO11) - 0x01)
LEN1 = (0x01 << Local0)
If (INTR)
{
IRQM = (0x01 << INTR) /* \_SB_.PCI0.SBRG.INTR */
}
Else
{
IRQM = 0x00
}
If ((DMCH > 0x03) || (Arg1 == 0x00))
{
DMAM = 0x00
}
Else
{
Local1 = (DMCH & 0x03)
DMAM = (0x01 << Local1)
}
EXFG ()
Return (CRS1) /* \_SB_.PCI0.SBRG.CRS1 */
}
Method (DSRS, 2, NotSerialized)
{
CreateWordField (Arg0, 0x01, IRQM)
CreateByteField (Arg0, 0x04, DMAM)
CreateWordField (Arg0, 0x08, IO11)
ENFG (CGLD (Arg1))
IOAL = (IO11 & 0xFF)
IOAH = (IO11 >> 0x08)
If (IRQM)
{
FindSetRightBit (IRQM, Local0)
INTR = (Local0 - 0x01)
}
Else
{
INTR = 0x00
}
If (DMAM)
{
FindSetRightBit (DMAM, Local0)
DMCH = (Local0 - 0x01)
}
Else
{
DMCH = 0x07
}
EXFG ()
DCNT (Arg1, 0x01)
}
Device (RMSC)
{
Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID
Name (_UID, 0x10) // _UID: Unique ID
Name (CRS, ResourceTemplate ()
{
IO (Decode16,
0x0010, // Range Minimum
0x0010, // Range Maximum
0x00, // Alignment
0x10, // Length
)
IO (Decode16,
0x0022, // Range Minimum
0x0022, // Range Maximum
0x00, // Alignment
0x1E, // Length
)
IO (Decode16,
0x0044, // Range Minimum
0x0044, // Range Maximum
0x00, // Alignment
0x1C, // Length
)
IO (Decode16,
0x0062, // Range Minimum
0x0062, // Range Maximum
0x00, // Alignment
0x02, // Length
)
IO (Decode16,
0x0065, // Range Minimum
0x0065, // Range Maximum
0x00, // Alignment
0x0B, // Length
)
IO (Decode16,
0x0072, // Range Minimum
0x0072, // Range Maximum
0x00, // Alignment
0x0E, // Length
)
IO (Decode16,
0x0080, // Range Minimum
0x0080, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IO (Decode16,
0x0084, // Range Minimum
0x0084, // Range Maximum
0x00, // Alignment
0x03, // Length
)
IO (Decode16,
0x0088, // Range Minimum
0x0088, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IO (Decode16,
0x008C, // Range Minimum
0x008C, // Range Maximum
0x00, // Alignment
0x03, // Length
)
IO (Decode16,
0x0090, // Range Minimum
0x0090, // Range Maximum
0x00, // Alignment
0x10, // Length
)
IO (Decode16,
0x00A2, // Range Minimum
0x00A2, // Range Maximum
0x00, // Alignment
0x1E, // Length
)
IO (Decode16,
0x00E0, // Range Minimum
0x00E0, // Range Maximum
0x00, // Alignment
0x10, // Length
)
IO (Decode16,
0x04D0, // Range Minimum
0x04D0, // Range Maximum
0x00, // Alignment
0x02, // Length
)
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x00, // Alignment
0x00, // Length
_Y08)
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x00, // Alignment
0x00, // Length
_Y09)
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x00, // Alignment
0x00, // Length
_Y0A)
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x00, // Alignment
0x00, // Length
_Y0B)
Memory32Fixed (ReadWrite,
0xFED1C000, // Address Base
0x00004000, // Address Length
)
Memory32Fixed (ReadWrite,
0xFED20000, // Address Base
0x00070000, // Address Length
)
Memory32Fixed (ReadWrite,
0xFFB00000, // Address Base
0x00100000, // Address Length
)
Memory32Fixed (ReadWrite,
0xFFF00000, // Address Base
0x00100000, // Address Length
)
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y08._MIN, GP00) // _MIN: Minimum Base Address
CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y08._MAX, GP01) // _MAX: Maximum Base Address
CreateByteField (CRS, \_SB.PCI0.SBRG.RMSC._Y08._LEN, GP0L) // _LEN: Length
GP00 = PMBS /* \PMBS */
GP01 = PMBS /* \PMBS */
GP0L = PMLN /* \PMLN */
If (SMBH)
{
If (SMBS)
{
CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y09._MIN, GP10) // _MIN: Minimum Base Address
CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y09._MAX, GP11) // _MAX: Maximum Base Address
CreateByteField (CRS, \_SB.PCI0.SBRG.RMSC._Y09._LEN, GP1L) // _LEN: Length
GP10 = SMBS /* \SMBS */
GP11 = SMBS /* \SMBS */
GP1L = SMBL /* \SMBL */
}
}
If (GPBS)
{
CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y0A._MIN, GP20) // _MIN: Minimum Base Address
CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y0A._MAX, GP21) // _MAX: Maximum Base Address
CreateByteField (CRS, \_SB.PCI0.SBRG.RMSC._Y0A._LEN, GP2L) // _LEN: Length
GP20 = GPBS /* \GPBS */
GP21 = GPBS /* \GPBS */
GP2L = GPLN /* \GPLN */
}
If (CPUC >= 0x02)
{
CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y0B._MIN, GP30) // _MIN: Minimum Base Address
CreateWordField (CRS, \_SB.PCI0.SBRG.RMSC._Y0B._MAX, GP31) // _MAX: Maximum Base Address
CreateByteField (CRS, \_SB.PCI0.SBRG.RMSC._Y0B._LEN, GP3L) // _LEN: Length
GP30 = 0x0900
GP31 = 0x0900
If (CPUC >= 0x04)
{
GP3L = 0x20
}
Else
{
GP3L = 0x10
}
}
Return (CRS) /* \_SB_.PCI0.SBRG.RMSC.CRS_ */
}
}
Device (P3F6)
{
Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID
Name (_UID, 0x03F6) // _UID: Unique ID
Method (_STA, 0, NotSerialized) // _STA: Status
{
Local1 = 0x0F
Local0 = \_SB.PCI0.IDE0.PAMD
Local0 &= 0xF5
If (Local0 == 0x80)
{
Local1 = 0x00
}
Local0 = \_SB.PCI0.IDE1.SAMD
Local0 &= 0xF5
If (Local0 == 0x80)
{
Local1 = 0x00
}
Return (Local1)
}
Name (CRS, ResourceTemplate ()
{
IO (Decode16,
0x03F6, // Range Minimum
0x03F6, // Range Maximum
0x00, // Alignment
0x01, // Length
)
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (CRS) /* \_SB_.PCI0.SBRG.P3F6.CRS_ */
}
}
OperationRegion (IODC, PCI_Config, 0x80, 0x0A)
Field (IODC, ByteAcc, NoLock, Preserve)
{
CADC, 3,
, 1,
CBDC, 3,
Offset (0x01),
LPDC, 2,
, 2,
FDDC, 1,
Offset (0x02),
CAEN, 1,
CBEN, 1,
LPEN, 1,
FDEN, 1,
Offset (0x03),
GLEN, 1,
GHEN, 1,
KBEN, 1,
MCEN, 1,
C1EN, 1,
C2EN, 1,
Offset (0x04),
G1EN, 1,
, 6,
G1D1, 1,
G1D2, 8,
Offset (0x08),
G2EN, 1,
, 3,
G2D1, 4,
G2D2, 8
}
Method (PDEC, 2, NotSerialized)
{
If (Arg0 == 0x00)
{
If (Arg1 == 0x03F8)
{
CADC = 0x00
}
If (Arg1 == 0x02F8)
{
CADC = 0x01
}
If (Arg1 == 0x02E8)
{
CADC = 0x05
}
If (Arg1 == 0x03E8)
{
CADC = 0x07
}
CAEN = One
}
If (Arg0 == 0x01)
{
If (Arg1 == 0x03F8)
{
CBDC = 0x00
}
If (Arg1 == 0x02F8)
{
CBDC = 0x01
}
If (Arg1 == 0x02E8)
{
CBDC = 0x05
}
If (Arg1 == 0x03E8)
{
CBDC = 0x07
}
CBEN = One
}
If (Arg0 == 0x02)
{
If (Arg1 == 0x0378)
{
LPDC = 0x00
}
If (Arg1 == 0x0278)
{
LPDC = 0x01
}
If (Arg1 == 0x03BC)
{
LPDC = 0x02
}
LPEN = One
}
If (Arg0 == 0x08)
{
If (Arg1 == 0x0200)
{
GLEN = One
GHEN = Zero
}
If (Arg1 == 0x0208)
{
GLEN = Zero
GHEN = One
}
}
}
Device (HPET)
{
Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID
Name (CRS, ResourceTemplate ()
{
Memory32Fixed (ReadOnly,
0xFED00000, // Address Base
0x00000400, // Address Length
_Y0C)
})
OperationRegion (HPTC, SystemMemory, HTBA, 0x04)
Field (HPTC, ByteAcc, NoLock, Preserve)
{
HPTS, 2,
, 5,
HPTE, 1,
Offset (0x04)
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
If (OSFL () == 0x00)
{
If (HPTE)
{
Return (0x0F)
}
}
ElseIf (HPTE)
{
Return (0x0B)
}
Return (0x00)
}
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
CreateDWordField (CRS, \_SB.PCI0.SBRG.HPET._Y0C._BAS, HPT) // _BAS: Base Address
Local0 = (HPTS * 0x1000)
HPT = (Local0 + 0xFED00000)
Return (CRS) /* \_SB_.PCI0.SBRG.HPET.CRS_ */
}
}
Scope (\)
{
OperationRegion (\RAMW, SystemMemory, (TOPM - 0x00010000), 0x00010000)
Field (\RAMW, ByteAcc, NoLock, Preserve)
{
PAR0, 32,
PAR1, 32
}
OperationRegion (IOB2, SystemIO, 0xB2, 0x02)
Field (IOB2, ByteAcc, NoLock, Preserve)
{
SMIC, 8,
SMIS, 8
}
Method (ISMI, 1, Serialized)
{
SMIC = Arg0
}
Method (GNVS, 1, Serialized)
{
PAR0 = Arg0
ISMI (0x70)
Return (PAR1) /* \PAR1 */
}
Method (SNVS, 2, Serialized)
{
PAR0 = Arg0
PAR1 = Arg1
ISMI (0x71)
}
}
Scope (\_SB.PCI0.SBRG)
{
OperationRegion (DEB2, SystemIO, 0x80, 0x04)
Field (DEB2, WordAcc, NoLock, Preserve)
{
DBGE, 22
}
Scope (\)
{
Field (\RAMW, ByteAcc, NoLock, Preserve)
{
Offset (0x08),
ADSP, 32,
CFEQ, 16,
CFSB, 8,
AITU, 8,
CPMU, 8,
FSBF, 16,
MEMF, 8,
CHTP, 8,
CHTE, 8,
NOST, 4,
NOSS, 4,
NOS1, 4,
NOS2, 4,
OCPI, 4,
OVCP, 4,
CPUQ, 1,
CQFS, 3,
CQFT, 4,
OVID, 8,
UVID, 8,
AIDI, 8,
MMOV, 4,
CPOV, 4,
CHQ1, 1,
CQS1, 3,
CQF1, 4,
VRM1, 8
}
}
OperationRegion (SSMI, SystemIO, 0xB2, 0x02)
Field (SSMI, ByteAcc, NoLock, Preserve)
{
SMIC, 8,
SMID, 8
}
Device (ASOC)
{
Mutex (AMTX, 0x00)
Name (_HID, "ATK0110") // _HID: Hardware ID
Name (_UID, 0x01010110) // _UID: Unique ID
Method (_STA, 0, NotSerialized) // _STA: Status
{
If (AIDI)
{
Return (0x00)
}
Else
{
Return (0x0F)
}
}
Name (MBIF, Package (0x08)
{
0x01,
"P5GC-MX",
0x01,
0x00,
0x02,
0x00,
0x00,
0x00
})
Method (ASIF, 0, NotSerialized)
{
Return (MBIF) /* \_SB_.PCI0.SBRG.ASOC.MBIF */
}
Name (QCFN, Package (0x05)
{
0x04060003,
"CPU Q-Fan Control",
0x00,
0x01,
0x00030001
})
Name (QFLO, Package (0x06)
{
0x04050004,
"CPU Q-Fan Ratio",
0x3C,
0x5A,
0x05,
0x01
})
Name (QFTP, Package (0x06)
{
0x04030005,
"CPU Target Temperature",
0x26,
0x3E,
0x09,
0x00030001
})
Name (CFE1, Package (0x05)
{
0x04060006,
"Chassis1 Q-Fan Control",
0x00,
0x01,
0x00
})
Name (CFR1, Package (0x06)
{
0x04050007,
"Chassis1 Q-Fan Ratio",
0x3C,
0x5A,
0x05,
0x00
})
Name (CFT1, Package (0x06)
{
0x04030008,
"Chassis1 Target Temperature",
0x26,
0x3E,
0x09,
0x00
})
Name (EACF, Package (0x06)
{
0x04050009,
"CPU Smart Fan Profile",
0x00,
0x02,
0x03,
0x00
})
Name (EAFC, Package (0x06)
{
0x0405000A,
"Chassis Smart Fan Profile",
0x00,
0x02,
0x03,
0x00
})
Name (OBUF, Package (0x08)
{
QCFN,
QFLO,
QFTP,
CFE1,
CFR1,
CFT1,
EACF,
EAFC
})
Method (OCIF, 0, Serialized)
{
Acquire (AMTX, 0xFFFF)
QFLO [0x05] = 0x00
QFTP [0x05] = 0x00
CFR1 [0x05] = 0x00
CFT1 [0x05] = 0x00
EACF [0x05] = 0x00010003
EAFC [0x05] = 0x00010003
Release (AMTX)
Return (OBUF) /* \_SB_.PCI0.SBRG.ASOC.OBUF */
}
Method (OCOP, 1, Serialized)
{
Acquire (AMTX, 0xFFFF)
Local1 = DerefOf (QCFN [0x00])
If (Arg0 == Local1)
{
CQFN [0x02] = CPUQ /* \CPUQ */
Release (AMTX)
Return (CQFN) /* \_SB_.PCI0.SBRG.ASOC.CQFN */
}
Local1 = DerefOf (EACF [0x00])
If (Arg0 == Local1)
{
EACC [0x02] = CQFS /* \CQFS */
Release (AMTX)
Return (EACC) /* \_SB_.PCI0.SBRG.ASOC.EACC */
}
Local1 = DerefOf (CFE1 [0x00])
If (Arg0 == Local1)
{
CQE1 [0x02] = CHQ1 /* \CHQ1 */
Release (AMTX)
Return (CQE1) /* \_SB_.PCI0.SBRG.ASOC.CQE1 */
}
Local1 = DerefOf (EAFC [0x00])
If (Arg0 == Local1)
{
EAFF [0x02] = CQS1 /* \CQS1 */
Release (AMTX)
Return (EAFF) /* \_SB_.PCI0.SBRG.ASOC.EAFF */
}
Release (AMTX)
}
Name (CQFN, Package (0x06)
{
0x04060003,
0x00,
0x00,
0x01,
"Disabled",
"Enabled"
})
Name (QFNR, Package (0x09)
{
0x04050004,
0x5A,
0x00,
0x01,
"Auto",
"90%",
"80%",
"70%",
"60%"
})
Name (EACC, Package (0x07)
{
0x04050009,
0x00,
0x00,
0x01,
"Optimal",
"Silent",
"Performance"
})
Name (EAFF, Package (0x07)
{
0x0405000A,
0x00,
0x00,
0x00,
"Optimal",
"Silent",
"Performance"
})
Name (QFNT, Package (0x0F)
{
0x04030005,
0x42,
0x05,
0x01,
"51",
"54",
"57",
"60",
"63",
"66",
"69",
"72",
"75",
"78",
"81"
})
Name (CQE1, Package (0x06)
{
0x04060006,
0x00,
0x00,
0x00,
"Disabled",
"Enabled"
})
Name (CQR1, Package (0x09)
{
0x04050007,
0x5A,
0x00,
0x01,
"Auto",
"90%",
"80%",
"70%",
"60%"
})
Name (CQT1, Package (0x0F)
{
0x04030008,
0x42,
0x05,
0x01,
"51",
"54",
"57",
"60",
"63",
"66",
"69",
"72",
"75",
"78",
"81"
})
Name (OCST, Package (0x17)
{
Package (0x02)
{
0x01010000,
0x01
},
Package (0x02)
{
0x01060001,
0x01
},
Package (0x02)
{
0x02010002,
0x01
},
Package (0x02)
{
0x07010003,
0x01
},
Package (0x02)
{
0x05050004,
0x01
},
Package (0x02)
{
0x08050005,
0x01
},
Package (0x02)
{
0x08050006,
0x01
},
Package (0x02)
{
0x04040007,
0x01
},
Package (0x02)
{
0x01020008,
0x01
},
Package (0x02)
{
0x02020009,
0x01
},
Package (0x02)
{
0x0702000A,
0x01
},
Package (0x02)
{
0x0106000B,
0x01
},
Package (0x02)
{
0x0906000C,
0x01
},
Package (0x02)
{
0x0806000D,
0x01
},
Package (0x02)
{
0x04060003,
0x01
},
Package (0x02)
{
0x04050004,
0x01
},
Package (0x02)
{
0x04030005,
0x01
},
Package (0x02)
{
0x04060006,
0x01
},
Package (0x02)
{
0x04050007,
0x01
},
Package (0x02)
{
0x04030008,
0x01
},
Package (0x02)
{
0x04050009,
0x01
},
Package (0x02)
{
0x0405000A,
0x01
},
Package (0x02)
{
0x0806000E,
0x01
}
})
Method (PROC, 3, Serialized)
{
Acquire (AMTX, 0xFFFF)
Local1 = DerefOf (QCFN [0x00])
If (Arg0 == Local1)
{
If (Arg1 != CPUQ)
{
If (Arg2 == 0x00)
{
DerefOf (OCST [0x0E]) [0x01] = 0x01
Release (AMTX)
Return (0x01)
}
ElseIf (Arg1 == 0x01)
{
Local4 = 0x03
}
Else
{
Local4 = 0x00
}
}
Else
{
DerefOf (OCST [0x0E]) [0x01] = 0x01
Release (AMTX)
Return (0x01)
}
}
Local1 = DerefOf (EACF [0x00])
If (Arg0 == Local1)
{
If (Arg1 != CQFS)
{
If (Arg2 == 0x00)
{
DerefOf (OCST [0x14]) [0x01] = 0x01
Release (AMTX)
Return (0x01)
}
Else
{
Local0 = Arg1
CQFS = Local0
Local0 *= 0x0A
Local0 += 0x41
If (Local0 == 0x55)
{
Local0 -= 0x1E
}
^^SIOR.BSEL = 0x00
^^SIOR.TRGT = Local0
^^SIOR.CFNS = 0x00
Sleep (0x64)
^^SIOR.CFNS = 0x03
DerefOf (OCST [0x14]) [0x01] = 0x01
SMID = 0x0A
SMIC = 0xAB
Release (AMTX)
Return (0x01)
}
}
Else
{
DerefOf (OCST [0x14]) [0x01] = 0x01
Release (AMTX)
Return (0x01)
}
}
Local1 = DerefOf (CFE1 [0x00])
If (Arg0 == Local1)
{
If (Arg1 != CHQ1)
{
If (Arg2 == 0x00)
{
DerefOf (OCST [0x11]) [0x01] = 0x01
Release (AMTX)
Return (0x01)
}
Else
{
CHQ1 = Arg1
DerefOf (OCST [0x11]) [0x01] = 0x01
^^SIOR.BSEL = 0x00
^^SIOR.CHNS = Arg1
SMID = 0x0E
SMIC = 0xAB
Release (AMTX)
Return (0x01)
}
}
Else
{
DerefOf (OCST [0x11]) [0x01] = 0x01
Release (AMTX)
Return (0x01)
}
}
Local1 = DerefOf (EAFC [0x00])
If (Arg0 == Local1)
{
If (Arg1 != CQS1)
{
If (Arg2 == 0x00)
{
DerefOf (OCST [0x15]) [0x01] = 0x01
Release (AMTX)
Return (0x01)
}
Else
{
Local0 = Arg1
CQS1 = Local0
Local2 = (Local0 * 0x0A)
Local2 += 0x28
Local4 = (Local0 * 0x19)
Local4 += 0xB2
If (Local2 == 0x3C)
{
(Local2 - 0x1E)
(Local4 - 0x4B)
}
^^SIOR.BSEL = 0x00
^^SIOR.SYST = Local2
^^SIOR.SSUP = Local4
^^SIOR.SSDN = Local4
DerefOf (OCST [0x15]) [0x01] = 0x01
SMID = 0x0F
SMIC = 0xAB
Release (AMTX)
Return (0x01)
}
}
Else
{
DerefOf (OCST [0x15]) [0x01] = 0x02
Release (AMTX)
Return (0x01)
}
}
Release (AMTX)
}
Name (PREB, Package (0x2E)
{
0x01010000,
0x00,
0x01060001,
0x00,
0x02010002,
0x00,
0x07010003,
0x00,
0x05050004,
0x00,
0x08050005,
0x00,
0x08050006,
0x00,
0x04040007,
0x00,
0x01020008,
0x00,
0x02020009,
0x00,
0x0702000A,
0x00,
0x0106000B,
0x00,
0x0906000C,
0x00,
0x0806000D,
0x00,
0x04060003,
0x00,
0x04050004,
0x00,
0x04030005,
0x00,
0x04060006,
0x00,
0x04050007,
0x00,
0x04030008,
0x00,
0x04050009,
0x00,
0x0405000A,
0x00,
0x0806000E,
0x00
})
Method (GPRE, 1, Serialized)
{
Acquire (AMTX, 0xFFFF)
If (Arg0 == 0x00)
{
Release (AMTX)
Return (PREB) /* \_SB_.PCI0.SBRG.ASOC.PREB */
}
Else
{
PREB [0x1D] = CPUQ /* \CPUQ */
PREB [0x1F] = CQFS /* \CQFS */
PREB [0x21] = CQFT /* \CQFT */
Release (AMTX)
Return (PREB) /* \_SB_.PCI0.SBRG.ASOC.PREB */
}
}
Method (SPRE, 2, Serialized)
{
Acquire (AMTX, 0xFFFF)
Local0 = DerefOf (DerefOf (PREB [0x00]) [0x00])
Local1 = DerefOf (DerefOf (PREB [0x00]) [0x01])
Local2 = PROC (Local0, Local1, 0x00)
PROC (Local0, Local1, 0x01)
Release (AMTX)
}
}
}
Device (\_SB.PCI0.PCIE)
{
Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID
Name (_UID, 0x11) // _UID: Unique ID
Name (CRS, ResourceTemplate ()
{
Memory32Fixed (ReadOnly,
0xE0000000, // Address Base
0x10000000, // Address Length
_Y0D)
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
CreateDWordField (CRS, \_SB.PCI0.PCIE._Y0D._BAS, BAS1) // _BAS: Base Address
CreateDWordField (CRS, \_SB.PCI0.PCIE._Y0D._LEN, LEN1) // _LEN: Length
BAS1 = \PCIB
LEN1 = \PCIL
Return (CRS) /* \_SB_.PCI0.PCIE.CRS_ */
}
}
Device (PS2K)
{
Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */) // _HID: Hardware ID
Name (_CID, EisaId ("PNP030B")) // _CID: Compatible ID
Method (_STA, 0, NotSerialized) // _STA: Status
{
Local0 = (0x01 << 0x0A)
If (IOST & Local0)
{
Return (0x0F)
}
Return (0x00)
}
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IO (Decode16,
0x0060, // Range Minimum
0x0060, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IO (Decode16,
0x0064, // Range Minimum
0x0064, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IRQNoFlags ()
{1}
})
}
Method (PS2K._PSW, 1, NotSerialized) // _PSW: Power State Wake
{
If (!((OSFL () == 0x01) || (OSFL () == 0x02)))
{
KBFG = Arg0
}
}
Method (PS2K._PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (GPRW (0x1D, 0x04))
}
Device (PS2M)
{
Name (_HID, EisaId ("PNP0F03") /* Microsoft PS/2-style Mouse */) // _HID: Hardware ID
Name (_CID, EisaId ("PNP0F13") /* PS/2 Mouse */) // _CID: Compatible ID
Method (_STA, 0, NotSerialized) // _STA: Status
{
Local0 = (0x01 << 0x0C)
If (IOST & Local0)
{
Return (0x0F)
}
Return (0x00)
}
Name (CRS1, ResourceTemplate ()
{
IRQNoFlags ()
{12}
})
Name (CRS2, ResourceTemplate ()
{
IO (Decode16,
0x0060, // Range Minimum
0x0060, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IO (Decode16,
0x0064, // Range Minimum
0x0064, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IRQNoFlags ()
{12}
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Local0 = (0x01 << 0x0A)
If (IOST & Local0)
{
Return (CRS1) /* \_SB_.PCI0.SBRG.PS2M.CRS1 */
}
Else
{
Return (CRS2) /* \_SB_.PCI0.SBRG.PS2M.CRS2 */
}
}
}
Method (PS2M._PSW, 1, NotSerialized) // _PSW: Power State Wake
{
If (!((OSFL () == 0x01) || (OSFL () == 0x02)))
{
MSFG = Arg0
}
}
Method (PS2M._PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (GPRW (0x1D, 0x04))
}
Device (OMSC)
{
Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID
Name (_UID, 0x00) // _UID: Unique ID
Name (CRS, ResourceTemplate ()
{
Memory32Fixed (ReadOnly,
0x00000000, // Address Base
0x00000000, // Address Length
_Y0E)
Memory32Fixed (ReadOnly,
0x00000000, // Address Base
0x00000000, // Address Length
_Y0F)
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
If (APIC)
{
CreateDWordField (CRS, \_SB.PCI0.SBRG.OMSC._Y0E._LEN, ML01) // _LEN: Length
CreateDWordField (CRS, \_SB.PCI0.SBRG.OMSC._Y0E._BAS, MB01) // _BAS: Base Address
CreateDWordField (CRS, \_SB.PCI0.SBRG.OMSC._Y0F._LEN, ML02) // _LEN: Length
CreateDWordField (CRS, \_SB.PCI0.SBRG.OMSC._Y0F._BAS, MB02) // _BAS: Base Address
MB01 = 0xFEC00000
ML01 = 0x1000
MB02 = 0xFEE00000
ML02 = 0x1000
}
Return (CRS) /* \_SB_.PCI0.SBRG.OMSC.CRS_ */
}
}
Device (\_SB.RMEM)
{
Name (_HID, EisaId ("PNP0C01") /* System Board */) // _HID: Hardware ID
Name (_UID, 0x01) // _UID: Unique ID
Name (CRS, ResourceTemplate ()
{
Memory32Fixed (ReadWrite,
0x00000000, // Address Base
0x000A0000, // Address Length
)
Memory32Fixed (ReadOnly,
0x00000000, // Address Base
0x00000000, // Address Length
_Y10)
Memory32Fixed (ReadOnly,
0x000E0000, // Address Base
0x00020000, // Address Length
_Y11)
Memory32Fixed (ReadWrite,
0x00100000, // Address Base
0x00000000, // Address Length
_Y12)
Memory32Fixed (ReadOnly,
0x00000000, // Address Base
0x00000000, // Address Length
_Y13)
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
CreateDWordField (CRS, \_SB.RMEM._Y10._BAS, BAS1) // _BAS: Base Address
CreateDWordField (CRS, \_SB.RMEM._Y10._LEN, LEN1) // _LEN: Length
CreateDWordField (CRS, \_SB.RMEM._Y11._BAS, BAS2) // _BAS: Base Address
CreateDWordField (CRS, \_SB.RMEM._Y11._LEN, LEN2) // _LEN: Length
CreateDWordField (CRS, \_SB.RMEM._Y12._LEN, LEN3) // _LEN: Length
CreateDWordField (CRS, \_SB.RMEM._Y13._BAS, BAS4) // _BAS: Base Address
CreateDWordField (CRS, \_SB.RMEM._Y13._LEN, LEN4) // _LEN: Length
If (!OSFL ())
{
If (MG1B)
{
If (MG1B > 0x000C0000)
{
BAS1 = 0x000C0000
LEN1 = (MG1B - BAS1) /* \_SB_.RMEM._CRS.BAS1 */
}
Else
{
BAS1 = MG1B /* \MG1B */
LEN1 = MG1L /* \MG1L */
}
BAS2 = (MG1B + MG1L) /* \MG1L */
LEN2 = (0x00100000 - BAS2) /* \_SB_.RMEM._CRS.BAS2 */
}
}
LEN3 = (MG2B - 0x00100000)
BAS4 = (MG2B + MG2L) /* \MG2L */
LEN4 = (0x00 - BAS4) /* \_SB_.RMEM._CRS.BAS4 */
Return (CRS) /* \_SB_.RMEM.CRS_ */
}
}
Device (UAR1)
{
Name (_UID, 0x01) // _UID: Unique ID
Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */) // _HID: Hardware ID
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (DSTA (0x00))
}
Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
{
DCNT (0x00, 0x00)
}
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (DCRS (0x00, 0x00))
}
Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
{
DSRS (Arg0, 0x00)
}
Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings
{
Return (CMPR) /* \_SB_.PCI0.SBRG.UAR1.CMPR */
}
Name (CMPR, ResourceTemplate ()
{
StartDependentFn (0x00, 0x00)
{
IO (Decode16,
0x03F8, // Range Minimum
0x03F8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{4}
DMA (Compatibility, NotBusMaster, Transfer8, )
{}
}
StartDependentFnNoPri ()
{
IO (Decode16,
0x03F8, // Range Minimum
0x03F8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8, )
{}
}
StartDependentFnNoPri ()
{
IO (Decode16,
0x02F8, // Range Minimum
0x02F8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8, )
{}
}
StartDependentFnNoPri ()
{
IO (Decode16,
0x03E8, // Range Minimum
0x03E8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8, )
{}
}
StartDependentFnNoPri ()
{
IO (Decode16,
0x02E8, // Range Minimum
0x02E8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
IRQNoFlags ()
{3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8, )
{}
}
EndDependentFn ()
})
}
Method (UAR1._PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (GPRW (0x08, 0x04))
}
Device (FWH)
{
Name (_HID, EisaId ("INT0800") /* Intel 82802 Firmware Hub Device */) // _HID: Hardware ID
Name (CRS, ResourceTemplate ()
{
Memory32Fixed (ReadOnly,
0x00000000, // Address Base
0x00000000, // Address Length
_Y14)
Memory32Fixed (ReadOnly,
0x00000000, // Address Base
0x00000000, // Address Length
_Y15)
})
CreateDWordField (CRS, \_SB.PCI0.SBRG.FWH._Y14._BAS, BS00) // _BAS: Base Address
CreateDWordField (CRS, \_SB.PCI0.SBRG.FWH._Y14._LEN, BL00) // _LEN: Length
CreateDWordField (CRS, \_SB.PCI0.SBRG.FWH._Y15._BAS, BS10) // _BAS: Base Address
CreateDWordField (CRS, \_SB.PCI0.SBRG.FWH._Y15._LEN, BL10) // _LEN: Length
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Local0 = 0xFF800000
FindSetRightBit (FHD0, Local1)
Local1--
If (Local1)
{
Local1 *= 0x00080000
}
Local2 = (Local0 + Local1)
BS00 = Local2
BS10 = (BS00 + 0x00400000)
BL00 = (0x00 - BS10) /* \_SB_.PCI0.SBRG.FWH_.BS10 */
BL10 = BL00 /* \_SB_.PCI0.SBRG.FWH_.BL00 */
Return (CRS) /* \_SB_.PCI0.SBRG.FWH_.CRS_ */
}
}
Device (FWHE)
{
Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID
Name (_UID, 0x03) // _UID: Unique ID
Name (CRS, ResourceTemplate ()
{
Memory32Fixed (ReadOnly,
0x00000000, // Address Base
0x00000000, // Address Length
_Y16)
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
CreateDWordField (CRS, \_SB.PCI0.SBRG.FWHE._Y16._BAS, BS00) // _BAS: Base Address
CreateDWordField (CRS, \_SB.PCI0.SBRG.FWHE._Y16._LEN, BL00) // _LEN: Length
If (^^FWH.BS00 == 0x00)
{
^^FWH._CRS ()
}
BS00 = (^^FWH.BS00 + ^^FWH.BL00) /* \_SB_.PCI0.SBRG.FWH_.BL00 */
BL00 = (^^FWH.BS10 - BS00) /* \_SB_.PCI0.SBRG.FWHE._CRS.BS00 */
Return (CRS) /* \_SB_.PCI0.SBRG.FWHE.CRS_ */
}
}
OperationRegion (FHR0, PCI_Config, FHDC, 0x01)
Field (FHR0, ByteAcc, NoLock, Preserve)
{
FHD0, 8
}
}
Device (USB2)
{
Name (_ADR, 0x001D0001) // _ADR: Address
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (GPRW (0x04, 0x04))
}
}
Device (USB3)
{
Name (_ADR, 0x001D0002) // _ADR: Address
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (GPRW (0x0C, 0x04))
}
}
Device (USB4)
{
Name (_ADR, 0x001D0003) // _ADR: Address
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (GPRW (0x0E, 0x04))
}
}
Device (MC97)
{
Name (_ADR, 0x001E0003) // _ADR: Address
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (GPRW (0x05, 0x04))
}
}
Device (USB1)
{
Name (_ADR, 0x001D0000) // _ADR: Address
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (GPRW (0x03, 0x04))
}
}
Device (EUSB)
{
Name (_ADR, 0x001D0007) // _ADR: Address
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (GPRW (0x0D, 0x04))
}
}
Device (IDE0)
{
Name (_ADR, 0x001F0001) // _ADR: Address
Name (\_SB.PCI0.NATA, Package (0x01)
{
0x001F0001
})
Name (REGF, 0x01)
Method (_REG, 2, NotSerialized) // _REG: Region Availability
{
If (Arg0 == 0x02)
{
REGF = Arg1
}
}
Name (TIM0, Package (0x08)
{
Package (0x04)
{
0x78,
0xB4,
0xF0,
0x0384
},
Package (0x04)
{
0x23,
0x21,
0x10,
0x00
},
Package (0x04)
{
0x0B,
0x09,
0x04,
0x00
},
Package (0x06)
{
0x70,
0x49,
0x36,
0x27,
0x19,
0x14
},
Package (0x06)
{
0x00,
0x01,
0x02,
0x01,
0x02,
0x01
},
Package (0x06)
{
0x00,
0x00,
0x00,
0x01,
0x01,
0x01
},
Package (0x04)
{
0x04,
0x03,
0x02,
0x00
},
Package (0x04)
{
0x02,
0x01,
0x00,
0x00
}
})
Name (TMD0, Buffer (0x14) {})
CreateDWordField (TMD0, 0x00, PIO0)
CreateDWordField (TMD0, 0x04, DMA0)
CreateDWordField (TMD0, 0x08, PIO1)
CreateDWordField (TMD0, 0x0C, DMA1)
CreateDWordField (TMD0, 0x10, CHNF)
OperationRegion (CFG2, PCI_Config, 0x40, 0x20)
Field (CFG2, DWordAcc, NoLock, Preserve)
{
PMPT, 4,
PSPT, 4,
PMRI, 6,
Offset (0x02),
SMPT, 4,
SSPT, 4,
SMRI, 6,
Offset (0x04),
PSRI, 4,
SSRI, 4,
Offset (0x08),
PM3E, 1,
PS3E, 1,
SM3E, 1,
SS3E, 1,
Offset (0x0A),
PMUT, 2,
, 2,
PSUT, 2,
Offset (0x0B),
SMUT, 2,
, 2,
SSUT, 2,
Offset (0x0C),
Offset (0x14),
PM6E, 1,
PS6E, 1,
SM6E, 1,
SS6E, 1,
PMCR, 1,
PSCR, 1,
SMCR, 1,
SSCR, 1,
, 4,
PMAE, 1,
PSAE, 1,
SMAE, 1,
SSAE, 1
}
Name (GMPT, 0x00)
Name (GMUE, 0x00)
Name (GMUT, 0x00)
Name (GMCR, 0x00)
Name (GSPT, 0x00)
Name (GSUE, 0x00)
Name (GSUT, 0x00)
Name (GSCR, 0x00)
Device (CHN0)
{
Name (_ADR, 0x00) // _ADR: Address
Method (_GTM, 0, NotSerialized) // _GTM: Get Timing Mode
{
Local1 = (PSCR << 0x01)
Local0 = (PMCR | Local1)
Local3 = (PMAE << 0x02)
Local4 = (PM6E << 0x01)
Local3 |= Local4
Local1 = (PM3E | Local3)
Local3 = (PMPT << 0x04)
Local1 |= Local3
Local3 = (PSAE << 0x02)
Local4 = (PS6E << 0x01)
Local3 |= Local4
Local2 = (PS3E | Local3)
Local3 = (PSPT << 0x04)
Local2 |= Local3
Return (GTM (PMRI, Local1, PMUT, PSRI, Local2, PSUT, Local0))
}
Method (_STM, 3, NotSerialized) // _STM: Set Timing Mode
{
Debug = Arg0
TMD0 = Arg0
Local3 = (PMAE << 0x02)
Local4 = (PM6E << 0x01)
Local3 |= Local4
Local0 = (PM3E | Local3)
Local3 = (PMPT << 0x04)
Local0 |= Local3
Local3 = (PSAE << 0x02)
Local4 = (PS6E << 0x01)
Local3 |= Local4
Local1 = (PS3E | Local3)
Local3 = (PSPT << 0x04)
Local1 |= Local3
GMPT = PMRI /* \_SB_.PCI0.IDE0.PMRI */
GMUE = Local0
GMUT = PMUT /* \_SB_.PCI0.IDE0.PMUT */
GMCR = PMCR /* \_SB_.PCI0.IDE0.PMCR */
GSPT = PSRI /* \_SB_.PCI0.IDE0.PSRI */
GSUE = Local1
GSUT = PSUT /* \_SB_.PCI0.IDE0.PSUT */
GSCR = PSCR /* \_SB_.PCI0.IDE0.PSCR */
STM ()
PMRI = GMPT /* \_SB_.PCI0.IDE0.GMPT */
Local0 = GMUE /* \_SB_.PCI0.IDE0.GMUE */
PMUT = GMUT /* \_SB_.PCI0.IDE0.GMUT */
PMCR = GMCR /* \_SB_.PCI0.IDE0.GMCR */
Local1 = GSUE /* \_SB_.PCI0.IDE0.GSUE */
PSUT = GSUT /* \_SB_.PCI0.IDE0.GSUT */
PSCR = GSCR /* \_SB_.PCI0.IDE0.GSCR */
If (Local0 & 0x01)
{
PM3E = 0x01
}
Else
{
PM3E = 0x00
}
If (Local0 & 0x02)
{
PM6E = 0x01
}
Else
{
PM6E = 0x00
}
If (Local0 & 0x04)
{
PMAE = 0x01
}
Else
{
PMAE = 0x00
}
If (Local1 & 0x01)
{
PS3E = 0x01
}
Else
{
PS3E = 0x00
}
If (Local1 & 0x02)
{
PS6E = 0x01
}
Else
{
PS6E = 0x00
}
If (Local1 & 0x04)
{
PSAE = 0x01
}
Else
{
PSAE = 0x00
}
ATA0 = GTF (0x00, Arg1)
ATA1 = GTF (0x01, Arg2)
}
Device (DRV0)
{
Name (_ADR, 0x00) // _ADR: Address
Method (_GTF, 0, NotSerialized) // _GTF: Get Task File
{
Return (Concatenate (RATA (ATA0), FZTF))
}
}
Device (DRV1)
{
Name (_ADR, 0x01) // _ADR: Address
Method (_GTF, 0, NotSerialized) // _GTF: Get Task File
{
Return (Concatenate (RATA (ATA1), FZTF))
}
}
}
Device (CHN1)
{
Name (_ADR, 0x01) // _ADR: Address
Method (_GTM, 0, NotSerialized) // _GTM: Get Timing Mode
{
Local1 = (SSCR << 0x01)
Local0 = (SMCR | Local1)
Local3 = (SMAE << 0x02)
Local4 = (SM6E << 0x01)
Local3 |= Local4
Local1 = (SM3E | Local3)
Local3 = (SMPT << 0x04)
Local1 |= Local3
Local3 = (SSAE << 0x02)
Local4 = (SS6E << 0x01)
Local3 |= Local4
Local2 = (SS3E | Local3)
Local3 = (SSPT << 0x04)
Local2 |= Local3
Return (GTM (SMRI, Local1, SMUT, SSRI, Local2, SSUT, Local0))
}
Method (_STM, 3, NotSerialized) // _STM: Set Timing Mode
{
Debug = Arg0
TMD0 = Arg0
Local3 = (SMAE << 0x02)
Local4 = (SM6E << 0x01)
Local3 |= Local4
Local0 = (SM3E | Local3)
Local3 = (SMPT << 0x04)
Local0 |= Local3
Local3 = (SSAE << 0x02)
Local4 = (SS6E << 0x01)
Local3 |= Local4
Local1 = (SS3E | Local3)
Local3 = (SSPT << 0x04)
Local1 |= Local3
GMPT = SMRI /* \_SB_.PCI0.IDE0.SMRI */
GMUE = Local0
GMUT = SMUT /* \_SB_.PCI0.IDE0.SMUT */
GMCR = SMCR /* \_SB_.PCI0.IDE0.SMCR */
GSPT = SSRI /* \_SB_.PCI0.IDE0.SSRI */
GSUE = Local1
GSUT = SSUT /* \_SB_.PCI0.IDE0.SSUT */
GSCR = SSCR /* \_SB_.PCI0.IDE0.SSCR */
STM ()
SMRI = GMPT /* \_SB_.PCI0.IDE0.GMPT */
Local0 = GMUE /* \_SB_.PCI0.IDE0.GMUE */
SMUT = GMUT /* \_SB_.PCI0.IDE0.GMUT */
SMCR = GMCR /* \_SB_.PCI0.IDE0.GMCR */
Local1 = GSUE /* \_SB_.PCI0.IDE0.GSUE */
SSUT = GSUT /* \_SB_.PCI0.IDE0.GSUT */
SSCR = GSCR /* \_SB_.PCI0.IDE0.GSCR */
If (Local0 & 0x01)
{
SM3E = 0x01
}
Else
{
SM3E = 0x00
}
If (Local0 & 0x02)
{
SM6E = 0x01
}
Else
{
SM6E = 0x00
}
If (Local0 & 0x04)
{
SMAE = 0x01
}
Else
{
SMAE = 0x00
}
If (Local1 & 0x01)
{
SS3E = 0x01
}
Else
{
SS3E = 0x00
}
If (Local1 & 0x02)
{
SS6E = 0x01
}
Else
{
SS6E = 0x00
}
If (Local1 & 0x04)
{
SSAE = 0x01
}
Else
{
SSAE = 0x00
}
ATA2 = GTF (0x00, Arg1)
ATA3 = GTF (0x01, Arg2)
}
Device (DRV0)
{
Name (_ADR, 0x00) // _ADR: Address
Method (_GTF, 0, NotSerialized) // _GTF: Get Task File
{
Return (Concatenate (RATA (ATA2), FZTF))
}
}
Device (DRV1)
{
Name (_ADR, 0x01) // _ADR: Address
Method (_GTF, 0, NotSerialized) // _GTF: Get Task File
{
Return (Concatenate (RATA (ATA3), FZTF))
}
}
}
Method (GTM, 7, Serialized)
{
PIO0 = Ones
PIO1 = Ones
DMA0 = Ones
DMA1 = Ones
CHNF = 0x10
If (REGF) {}
Else
{
Return (TMD0) /* \_SB_.PCI0.IDE0.TMD0 */
}
If (Arg1 & 0x20)
{
CHNF |= 0x02
}
Local6 = Match (DerefOf (TIM0 [0x01]), MEQ, Arg0, MTR, 0x00,
0x00)
Local7 = DerefOf (DerefOf (TIM0 [0x00]) [Local6])
DMA0 = Local7
PIO0 = Local7
If (Arg4 & 0x20)
{
CHNF |= 0x08
}
Local6 = Match (DerefOf (TIM0 [0x02]), MEQ, Arg3, MTR, 0x00,
0x00)
Local7 = DerefOf (DerefOf (TIM0 [0x00]) [Local6])
DMA1 = Local7
PIO1 = Local7
If (Arg1 & 0x07)
{
Local5 = Arg2
If (Arg1 & 0x02)
{
Local5 += 0x02
}
If (Arg1 & 0x04)
{
Local5 += 0x04
}
DMA0 = DerefOf (DerefOf (TIM0 [0x03]) [Local5])
CHNF |= 0x01
}
If (Arg4 & 0x07)
{
Local5 = Arg5
If (Arg4 & 0x02)
{
Local5 += 0x02
}
If (Arg4 & 0x04)
{
Local5 += 0x04
}
DMA1 = DerefOf (DerefOf (TIM0 [0x03]) [Local5])
CHNF |= 0x04
}
Debug = TMD0 /* \_SB_.PCI0.IDE0.TMD0 */
Return (TMD0) /* \_SB_.PCI0.IDE0.TMD0 */
}
Method (STM, 0, Serialized)
{
If (REGF) {}
Else
{
GMUE = 0x00
GMUT = 0x00
GSUE = 0x00
GSUT = 0x00
If (CHNF & 0x01)
{
Local0 = Match (DerefOf (TIM0 [0x03]), MLE, DMA0, MTR, 0x00,
0x00)
If (Local0 > 0x05)
{
Local0 = 0x05
}
GMUT = DerefOf (DerefOf (TIM0 [0x04]) [Local0])
GMUE |= 0x01
If (Local0 > 0x02)
{
GMUE |= 0x02
}
If (Local0 > 0x04)
{
GMUE &= 0xFD
GMUE |= 0x04
}
}
ElseIf ((PIO0 == Ones) | (PIO0 == 0x00))
{
If ((DMA0 < Ones) & (DMA0 > 0x00))
{
PIO0 = DMA0 /* \_SB_.PCI0.IDE0.DMA0 */
GMUE |= 0x80
}
}
If (CHNF & 0x04)
{
Local0 = Match (DerefOf (TIM0 [0x03]), MLE, DMA1, MTR, 0x00,
0x00)
If (Local0 > 0x05)
{
Local0 = 0x05
}
GSUT = DerefOf (DerefOf (TIM0 [0x04]) [Local0])
GSUE |= 0x01
If (Local0 > 0x02)
{
GSUE |= 0x02
}
If (Local0 > 0x04)
{
GSUE &= 0xFD
GSUE |= 0x04
}
}
ElseIf ((PIO1 == Ones) | (PIO1 == 0x00))
{
If ((DMA1 < Ones) & (DMA1 > 0x00))
{
PIO1 = DMA1 /* \_SB_.PCI0.IDE0.DMA1 */
GSUE |= 0x80
}
}
If (CHNF & 0x02)
{
GMUE |= 0x20
}
If (CHNF & 0x08)
{
GSUE |= 0x20
}
Local0 = (Match (DerefOf (TIM0 [0x00]), MGE, PIO0, MTR, 0x00,
0x00) & 0x07)
Local1 = DerefOf (DerefOf (TIM0 [0x01]) [Local0])
GMPT = Local1
If (Local0 < 0x03)
{
GMUE |= 0x50
}
Local0 = (Match (DerefOf (TIM0 [0x00]), MGE, PIO1, MTR, 0x00,
0x00) & 0x07)
Local1 = DerefOf (DerefOf (TIM0 [0x02]) [Local0])
GSPT = Local1
If (Local0 < 0x03)
{
GSUE |= 0x50
}
}
}
Name (AT01, Buffer (0x07)
{
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF /* ....... */
})
Name (AT02, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90 /* ....... */
})
Name (AT03, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6 /* ....... */
})
Name (AT04, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91 /* ....... */
})
Name (ATA0, Buffer (0x1D) {})
Name (ATA1, Buffer (0x1D) {})
Name (ATA2, Buffer (0x1D) {})
Name (ATA3, Buffer (0x1D) {})
Name (ATAB, Buffer (0x1D) {})
CreateByteField (ATAB, 0x00, CMDC)
Method (GTFB, 3, Serialized)
{
Local0 = (CMDC * 0x38)
Local1 = (Local0 + 0x08)
CreateField (ATAB, Local1, 0x38, CMDX)
Local0 = (CMDC * 0x07)
CreateByteField (ATAB, (Local0 + 0x02), A001)
CreateByteField (ATAB, (Local0 + 0x06), A005)
CMDX = Arg0
A001 = Arg1
A005 = Arg2
CMDC++
}
Method (GTF, 2, Serialized)
{
Debug = Arg1
CMDC = 0x00
Name (ID49, 0x0C00)
Name (ID59, 0x00)
Name (ID53, 0x04)
Name (ID63, 0x0F00)
Name (ID88, 0x0F00)
Name (IRDY, 0x01)
Name (PIOT, 0x00)
Name (DMAT, 0x00)
If (SizeOf (Arg1) == 0x0200)
{
CreateWordField (Arg1, 0x62, IW49)
ID49 = IW49 /* \_SB_.PCI0.IDE0.GTF_.IW49 */
CreateWordField (Arg1, 0x6A, IW53)
ID53 = IW53 /* \_SB_.PCI0.IDE0.GTF_.IW53 */
CreateWordField (Arg1, 0x7E, IW63)
ID63 = IW63 /* \_SB_.PCI0.IDE0.GTF_.IW63 */
CreateWordField (Arg1, 0x76, IW59)
ID59 = IW59 /* \_SB_.PCI0.IDE0.GTF_.IW59 */
CreateWordField (Arg1, 0xB0, IW88)
ID88 = IW88 /* \_SB_.PCI0.IDE0.GTF_.IW88 */
}
Local7 = 0xA0
If (Arg0)
{
Local7 = 0xB0
IRDY = (CHNF & 0x08)
If (CHNF & 0x10)
{
PIOT = PIO1 /* \_SB_.PCI0.IDE0.PIO1 */
}
Else
{
PIOT = PIO0 /* \_SB_.PCI0.IDE0.PIO0 */
}
If (CHNF & 0x04)
{
If (CHNF & 0x10)
{
DMAT = DMA1 /* \_SB_.PCI0.IDE0.DMA1 */
}
Else
{
DMAT = DMA0 /* \_SB_.PCI0.IDE0.DMA0 */
}
}
}
Else
{
IRDY = (CHNF & 0x02)
PIOT = PIO0 /* \_SB_.PCI0.IDE0.PIO0 */
If (CHNF & 0x01)
{
DMAT = DMA0 /* \_SB_.PCI0.IDE0.DMA0 */
}
}
If (((ID53 & 0x04) && (ID88 & 0xFF00)) && DMAT)
{
Local1 = Match (DerefOf (TIM0 [0x03]), MLE, DMAT, MTR, 0x00,
0x00)
If (Local1 > 0x05)
{
Local1 = 0x05
}
GTFB (AT01, (0x40 | Local1), Local7)
}
ElseIf ((ID63 & 0xFF00) && PIOT)
{
Local0 = (Match (DerefOf (TIM0 [0x00]), MGE, PIOT, MTR, 0x00,
0x00) & 0x03)
Local1 = (0x20 | DerefOf (DerefOf (TIM0 [0x07]) [Local0]))
GTFB (AT01, Local1, Local7)
}
If (IRDY)
{
Local0 = (Match (DerefOf (TIM0 [0x00]), MGE, PIOT, MTR, 0x00,
0x00) & 0x07)
Local1 = (0x08 | DerefOf (DerefOf (TIM0 [0x06]) [Local0]))
GTFB (AT01, Local1, Local7)
}
ElseIf (ID49 & 0x0400)
{
GTFB (AT01, 0x01, Local7)
}
If ((ID59 & 0x0100) && (ID59 & 0xFF))
{
GTFB (AT03, (ID59 & 0xFF), Local7)
}
Debug = ATAB /* \_SB_.PCI0.IDE0.ATAB */
Return (ATAB) /* \_SB_.PCI0.IDE0.ATAB */
}
Method (RATA, 1, NotSerialized)
{
CreateByteField (Arg0, 0x00, CMDN)
Local0 = (CMDN * 0x38)
CreateField (Arg0, 0x08, Local0, RETB)
Debug = RETB /* \_SB_.PCI0.IDE0.RATA.RETB */
Return (RETB) /* \_SB_.PCI0.IDE0.RATA.RETB */
}
}
Device (IDE1)
{
Name (_ADR, 0x001F0002) // _ADR: Address
Name (\FZTF, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5 /* ....... */
})
Name (REGF, 0x01)
Method (_REG, 2, NotSerialized) // _REG: Region Availability
{
If (Arg0 == 0x02)
{
REGF = Arg1
}
}
Name (TIM0, Package (0x08)
{
Package (0x04)
{
0x78,
0xB4,
0xF0,
0x0384
},
Package (0x04)
{
0x23,
0x21,
0x10,
0x00
},
Package (0x04)
{
0x0B,
0x09,
0x04,
0x00
},
Package (0x06)
{
0x78,
0x5A,
0x3C,
0x28,
0x1E,
0x14
},
Package (0x06)
{
0x00,
0x01,
0x02,
0x01,
0x02,
0x01
},
Package (0x06)
{
0x00,
0x00,
0x00,
0x01,
0x01,
0x01
},
Package (0x04)
{
0x04,
0x03,
0x02,
0x00
},
Package (0x04)
{
0x02,
0x01,
0x00,
0x00
}
})
Name (TMD0, Buffer (0x14) {})
CreateDWordField (TMD0, 0x00, PIO0)
CreateDWordField (TMD0, 0x04, DMA0)
CreateDWordField (TMD0, 0x08, PIO1)
CreateDWordField (TMD0, 0x0C, DMA1)
CreateDWordField (TMD0, 0x10, CHNF)
OperationRegion (CFG2, PCI_Config, 0x40, 0x20)
Field (CFG2, DWordAcc, NoLock, Preserve)
{
PMPT, 4,
PSPT, 4,
PMRI, 6,
Offset (0x02),
SMPT, 4,
SSPT, 4,
SMRI, 6,
Offset (0x04),
PSRI, 4,
SSRI, 4,
Offset (0x08),
PM3E, 1,
PS3E, 1,
SM3E, 1,
SS3E, 1,
Offset (0x0A),
PMUT, 2,
, 2,
PSUT, 2,
Offset (0x0B),
SMUT, 2,
, 2,
SSUT, 2,
Offset (0x0C),
Offset (0x14),
PM6E, 1,
PS6E, 1,
SM6E, 1,
SS6E, 1,
PMCR, 1,
PSCR, 1,
SMCR, 1,
SSCR, 1,
, 4,
PMAE, 1,
PSAE, 1,
SMAE, 1,
SSAE, 1
}
Name (GMPT, 0x00)
Name (GMUE, 0x00)
Name (GMUT, 0x00)
Name (GMCR, 0x00)
Name (GSPT, 0x00)
Name (GSUE, 0x00)
Name (GSUT, 0x00)
Name (GSCR, 0x00)
Device (CHN0)
{
Name (_ADR, 0x00) // _ADR: Address
Method (_GTM, 0, NotSerialized) // _GTM: Get Timing Mode
{
Local1 = (PSCR << 0x01)
Local0 = (PMCR | Local1)
Local3 = (PMAE << 0x02)
Local4 = (PM6E << 0x01)
Local3 |= Local4
Local1 = (PM3E | Local3)
Local3 = (PMPT << 0x04)
Local1 |= Local3
Local3 = (PSAE << 0x02)
Local4 = (PS6E << 0x01)
Local3 |= Local4
Local2 = (PS3E | Local3)
Local3 = (PSPT << 0x04)
Local2 |= Local3
Return (GTM (PMRI, Local1, PMUT, PSRI, Local2, PSUT, Local0))
}
Method (_STM, 3, NotSerialized) // _STM: Set Timing Mode
{
Debug = Arg0
TMD0 = Arg0
Local3 = (PMAE << 0x02)
Local4 = (PM6E << 0x01)
Local3 |= Local4
Local0 = (PM3E | Local3)
Local3 = (PMPT << 0x04)
Local0 |= Local3
Local3 = (PSAE << 0x02)
Local4 = (PS6E << 0x01)
Local3 |= Local4
Local1 = (PS3E | Local3)
Local3 = (PSPT << 0x04)
Local1 |= Local3
GMPT = PMRI /* \_SB_.PCI0.IDE1.PMRI */
GMUE = Local0
GMUT = PMUT /* \_SB_.PCI0.IDE1.PMUT */
GMCR = PMCR /* \_SB_.PCI0.IDE1.PMCR */
GSPT = PSRI /* \_SB_.PCI0.IDE1.PSRI */
GSUE = Local1
GSUT = PSUT /* \_SB_.PCI0.IDE1.PSUT */
GSCR = PSCR /* \_SB_.PCI0.IDE1.PSCR */
STM ()
PMRI = GMPT /* \_SB_.PCI0.IDE1.GMPT */
Local0 = GMUE /* \_SB_.PCI0.IDE1.GMUE */
PMUT = GMUT /* \_SB_.PCI0.IDE1.GMUT */
PMCR = GMCR /* \_SB_.PCI0.IDE1.GMCR */
Local1 = GSUE /* \_SB_.PCI0.IDE1.GSUE */
PSUT = GSUT /* \_SB_.PCI0.IDE1.GSUT */
PSCR = GSCR /* \_SB_.PCI0.IDE1.GSCR */
If (Local0 & 0x01)
{
PM3E = 0x01
}
Else
{
PM3E = 0x00
}
If (Local0 & 0x02)
{
PM6E = 0x01
}
Else
{
PM6E = 0x00
}
If (Local0 & 0x04)
{
PMAE = 0x01
}
Else
{
PMAE = 0x00
}
If (Local1 & 0x01)
{
PS3E = 0x01
}
Else
{
PS3E = 0x00
}
If (Local1 & 0x02)
{
PS6E = 0x01
}
Else
{
PS6E = 0x00
}
If (Local1 & 0x04)
{
PSAE = 0x01
}
Else
{
PSAE = 0x00
}
ATA0 = GTF (0x00, Arg1)
ATA1 = GTF (0x01, Arg2)
}
Device (DRV0)
{
Name (_ADR, 0x00) // _ADR: Address
Method (_GTF, 0, NotSerialized) // _GTF: Get Task File
{
Return (Concatenate (RATA (ATA0), FZTF))
}
}
Device (DRV1)
{
Name (_ADR, 0x01) // _ADR: Address
Method (_GTF, 0, NotSerialized) // _GTF: Get Task File
{
Return (Concatenate (RATA (ATA1), FZTF))
}
}
}
Device (CHN1)
{
Name (_ADR, 0x01) // _ADR: Address
Method (_GTM, 0, NotSerialized) // _GTM: Get Timing Mode
{
Local1 = (SSCR << 0x01)
Local0 = (SMCR | Local1)
Local3 = (SMAE << 0x02)
Local4 = (SM6E << 0x01)
Local3 |= Local4
Local1 = (SM3E | Local3)
Local3 = (SMPT << 0x04)
Local1 |= Local3
Local3 = (SSAE << 0x02)
Local4 = (SS6E << 0x01)
Local3 |= Local4
Local2 = (SS3E | Local3)
Local3 = (SSPT << 0x04)
Local2 |= Local3
Return (GTM (SMRI, Local1, SMUT, SSRI, Local2, SSUT, Local0))
}
Method (_STM, 3, NotSerialized) // _STM: Set Timing Mode
{
Debug = Arg0
TMD0 = Arg0
Local3 = (SMAE << 0x02)
Local4 = (SM6E << 0x01)
Local3 |= Local4
Local0 = (SM3E | Local3)
Local3 = (SMPT << 0x04)
Local0 |= Local3
Local3 = (SSAE << 0x02)
Local4 = (SS6E << 0x01)
Local3 |= Local4
Local1 = (SS3E | Local3)
Local3 = (SSPT << 0x04)
Local1 |= Local3
GMPT = SMRI /* \_SB_.PCI0.IDE1.SMRI */
GMUE = Local0
GMUT = SMUT /* \_SB_.PCI0.IDE1.SMUT */
GMCR = SMCR /* \_SB_.PCI0.IDE1.SMCR */
GSPT = SSRI /* \_SB_.PCI0.IDE1.SSRI */
GSUE = Local1
GSUT = SSUT /* \_SB_.PCI0.IDE1.SSUT */
GSCR = SSCR /* \_SB_.PCI0.IDE1.SSCR */
STM ()
SMRI = GMPT /* \_SB_.PCI0.IDE1.GMPT */
Local0 = GMUE /* \_SB_.PCI0.IDE1.GMUE */
SMUT = GMUT /* \_SB_.PCI0.IDE1.GMUT */
SMCR = GMCR /* \_SB_.PCI0.IDE1.GMCR */
Local1 = GSUE /* \_SB_.PCI0.IDE1.GSUE */
SSUT = GSUT /* \_SB_.PCI0.IDE1.GSUT */
SSCR = GSCR /* \_SB_.PCI0.IDE1.GSCR */
If (Local0 & 0x01)
{
SM3E = 0x01
}
Else
{
SM3E = 0x00
}
If (Local0 & 0x02)
{
SM6E = 0x01
}
Else
{
SM6E = 0x00
}
If (Local0 & 0x04)
{
SMAE = 0x01
}
Else
{
SMAE = 0x00
}
If (Local1 & 0x01)
{
SS3E = 0x01
}
Else
{
SS3E = 0x00
}
If (Local1 & 0x02)
{
SS6E = 0x01
}
Else
{
SS6E = 0x00
}
If (Local1 & 0x04)
{
SSAE = 0x01
}
Else
{
SSAE = 0x00
}
ATA2 = GTF (0x00, Arg1)
ATA3 = GTF (0x01, Arg2)
}
Device (DRV0)
{
Name (_ADR, 0x00) // _ADR: Address
Method (_GTF, 0, NotSerialized) // _GTF: Get Task File
{
Return (Concatenate (RATA (ATA2), FZTF))
}
}
Device (DRV1)
{
Name (_ADR, 0x01) // _ADR: Address
Method (_GTF, 0, NotSerialized) // _GTF: Get Task File
{
Return (Concatenate (RATA (ATA3), FZTF))
}
}
}
Method (GTM, 7, Serialized)
{
PIO0 = Ones
PIO1 = Ones
DMA0 = Ones
DMA1 = Ones
CHNF = 0x10
If (REGF) {}
Else
{
Return (TMD0) /* \_SB_.PCI0.IDE1.TMD0 */
}
If (Arg1 & 0x20)
{
CHNF |= 0x02
}
Local6 = Match (DerefOf (TIM0 [0x01]), MEQ, Arg0, MTR, 0x00,
0x00)
Local7 = DerefOf (DerefOf (TIM0 [0x00]) [Local6])
DMA0 = Local7
PIO0 = Local7
If (Arg4 & 0x20)
{
CHNF |= 0x08
}
Local6 = Match (DerefOf (TIM0 [0x02]), MEQ, Arg3, MTR, 0x00,
0x00)
Local7 = DerefOf (DerefOf (TIM0 [0x00]) [Local6])
DMA1 = Local7
PIO1 = Local7
If (Arg1 & 0x07)
{
Local5 = Arg2
If (Arg1 & 0x02)
{
Local5 += 0x02
}
If (Arg1 & 0x04)
{
Local5 += 0x04
}
DMA0 = DerefOf (DerefOf (TIM0 [0x03]) [Local5])
CHNF |= 0x01
}
If (Arg4 & 0x07)
{
Local5 = Arg5
If (Arg4 & 0x02)
{
Local5 += 0x02
}
If (Arg4 & 0x04)
{
Local5 += 0x04
}
DMA1 = DerefOf (DerefOf (TIM0 [0x03]) [Local5])
CHNF |= 0x04
}
Debug = TMD0 /* \_SB_.PCI0.IDE1.TMD0 */
Return (TMD0) /* \_SB_.PCI0.IDE1.TMD0 */
}
Method (STM, 0, Serialized)
{
If (REGF)
{
GMUE = 0x00
GMUT = 0x00
GSUE = 0x00
GSUT = 0x00
If (CHNF & 0x01)
{
Local0 = Match (DerefOf (TIM0 [0x03]), MLE, DMA0, MTR, 0x00,
0x00)
If (Local0 > 0x05)
{
Local0 = 0x05
}
GMUT = DerefOf (DerefOf (TIM0 [0x04]) [Local0])
GMUE |= 0x01
If (Local0 > 0x02)
{
GMUE |= 0x02
}
If (Local0 > 0x04)
{
GMUE &= 0xFD
GMUE |= 0x04
}
}
ElseIf ((PIO0 == Ones) | (PIO0 == 0x00))
{
If ((DMA0 < Ones) & (DMA0 > 0x00))
{
PIO0 = DMA0 /* \_SB_.PCI0.IDE1.DMA0 */
GMUE |= 0x80
}
}
If (CHNF & 0x04)
{
Local0 = Match (DerefOf (TIM0 [0x03]), MLE, DMA1, MTR, 0x00,
0x00)
If (Local0 > 0x05)
{
Local0 = 0x05
}
GSUT = DerefOf (DerefOf (TIM0 [0x04]) [Local0])
GSUE |= 0x01
If (Local0 > 0x02)
{
GSUE |= 0x02
}
If (Local0 > 0x04)
{
GSUE &= 0xFD
GSUE |= 0x04
}
}
ElseIf ((PIO1 == Ones) | (PIO1 == 0x00))
{
If ((DMA1 < Ones) & (DMA1 > 0x00))
{
PIO1 = DMA1 /* \_SB_.PCI0.IDE1.DMA1 */
GSUE |= 0x80
}
}
If (CHNF & 0x02)
{
GMUE |= 0x20
}
If (CHNF & 0x08)
{
GSUE |= 0x20
}
Local0 = (Match (DerefOf (TIM0 [0x00]), MGE, PIO0, MTR, 0x00,
0x00) & 0x07)
Local1 = DerefOf (DerefOf (TIM0 [0x01]) [Local0])
GMPT = Local1
If (Local0 < 0x03)
{
GMUE |= 0x50
}
Local0 = (Match (DerefOf (TIM0 [0x00]), MGE, PIO1, MTR, 0x00,
0x00) & 0x07)
Local1 = DerefOf (DerefOf (TIM0 [0x02]) [Local0])
GSPT = Local1
If (Local0 < 0x03)
{
GSUE |= 0x50
}
}
}
Name (AT01, Buffer (0x07)
{
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF /* ....... */
})
Name (AT02, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90 /* ....... */
})
Name (AT03, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6 /* ....... */
})
Name (AT04, Buffer (0x07)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91 /* ....... */
})
Name (ATA0, Buffer (0x1D) {})
Name (ATA1, Buffer (0x1D) {})
Name (ATA2, Buffer (0x1D) {})
Name (ATA3, Buffer (0x1D) {})
Name (ATAB, Buffer (0x1D) {})
CreateByteField (ATAB, 0x00, CMDC)
Method (GTFB, 3, Serialized)
{
Local0 = (CMDC * 0x38)
Local1 = (Local0 + 0x08)
CreateField (ATAB, Local1, 0x38, CMDX)
Local0 = (CMDC * 0x07)
CreateByteField (ATAB, (Local0 + 0x02), A001)
CreateByteField (ATAB, (Local0 + 0x06), A005)
CMDX = Arg0
A001 = Arg1
A005 = Arg2
CMDC++
}
Method (GTF, 2, Serialized)
{
Debug = Arg1
CMDC = 0x00
Name (ID49, 0x0C00)
Name (ID59, 0x00)
Name (ID53, 0x04)
Name (ID63, 0x0F00)
Name (ID88, 0x0F00)
Name (IRDY, 0x01)
Name (PIOT, 0x00)
Name (DMAT, 0x00)
If (SizeOf (Arg1) == 0x0200)
{
CreateWordField (Arg1, 0x62, IW49)
ID49 = IW49 /* \_SB_.PCI0.IDE1.GTF_.IW49 */
CreateWordField (Arg1, 0x6A, IW53)
ID53 = IW53 /* \_SB_.PCI0.IDE1.GTF_.IW53 */
CreateWordField (Arg1, 0x7E, IW63)
ID63 = IW63 /* \_SB_.PCI0.IDE1.GTF_.IW63 */
CreateWordField (Arg1, 0x76, IW59)
ID59 = IW59 /* \_SB_.PCI0.IDE1.GTF_.IW59 */
CreateWordField (Arg1, 0xB0, IW88)
ID88 = IW88 /* \_SB_.PCI0.IDE1.GTF_.IW88 */
}
Local7 = 0xA0
If (Arg0)
{
Local7 = 0xB0
IRDY = (CHNF & 0x08)
If (CHNF & 0x10)
{
PIOT = PIO1 /* \_SB_.PCI0.IDE1.PIO1 */
}
Else
{
PIOT = PIO0 /* \_SB_.PCI0.IDE1.PIO0 */
}
If (CHNF & 0x04)
{
If (CHNF & 0x10)
{
DMAT = DMA1 /* \_SB_.PCI0.IDE1.DMA1 */
}
Else
{
DMAT = DMA0 /* \_SB_.PCI0.IDE1.DMA0 */
}
}
}
Else
{
IRDY = (CHNF & 0x02)
PIOT = PIO0 /* \_SB_.PCI0.IDE1.PIO0 */
If (CHNF & 0x01)
{
DMAT = DMA0 /* \_SB_.PCI0.IDE1.DMA0 */
}
}
If (((ID53 & 0x04) && (ID88 & 0xFF00)) && DMAT)
{
Local1 = Match (DerefOf (TIM0 [0x03]), MLE, DMAT, MTR, 0x00,
0x00)
If (Local1 > 0x05)
{
Local1 = 0x05
}
GTFB (AT01, (0x40 | Local1), Local7)
}
ElseIf ((ID63 & 0xFF00) && PIOT)
{
Local0 = (Match (DerefOf (TIM0 [0x00]), MGE, PIOT, MTR, 0x00,
0x00) & 0x03)
Local1 = (0x20 | DerefOf (DerefOf (TIM0 [0x07]) [Local0]))
GTFB (AT01, Local1, Local7)
}
If (IRDY)
{
Local0 = (Match (DerefOf (TIM0 [0x00]), MGE, PIOT, MTR, 0x00,
0x00) & 0x07)
Local1 = (0x08 | DerefOf (DerefOf (TIM0 [0x06]) [Local0]))
GTFB (AT01, Local1, Local7)
}
ElseIf (ID49 & 0x0400)
{
GTFB (AT01, 0x01, Local7)
}
If ((ID59 & 0x0100) && (ID59 & 0xFF))
{
GTFB (AT03, (ID59 & 0xFF), Local7)
}
Debug = ATAB /* \_SB_.PCI0.IDE1.ATAB */
Return (ATAB) /* \_SB_.PCI0.IDE1.ATAB */
}
Method (RATA, 1, NotSerialized)
{
CreateByteField (Arg0, 0x00, CMDN)
Local0 = (CMDN * 0x38)
CreateField (Arg0, 0x08, Local0, RETB)
Debug = RETB /* \_SB_.PCI0.IDE1.RATA.RETB */
Return (RETB) /* \_SB_.PCI0.IDE1.RATA.RETB */
}
}
}
Scope (\_GPE)
{
Method (_L09, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
Notify (\_SB.PCI0.P0P1, 0x02) // Device Wake
Notify (\_SB.PCI0.P0P9, 0x02) // Device Wake
Notify (\_SB.PCI0.P0P8, 0x02) // Device Wake
Notify (\_SB.PCI0.P0P7, 0x02) // Device Wake
Notify (\_SB.PCI0.P0P6, 0x02) // Device Wake
Notify (\_SB.PCI0.P0P5, 0x02) // Device Wake
Notify (\_SB.PCI0.P0P4, 0x02) // Device Wake
}
Method (_L0B, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
Notify (\_SB.PCI0.P0P3, 0x02) // Device Wake
Notify (\_SB.PWRB, 0x02) // Device Wake
}
Method (_L1D, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
\_SB.PCI0.SBRG.SIOH ()
}
Method (_L08, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
\_SB.PCI0.SBRG.SIOH ()
}
Method (_L04, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
Notify (\_SB.PCI0.USB2, 0x02) // Device Wake
Notify (\_SB.PWRB, 0x02) // Device Wake
}
Method (_L0C, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
Notify (\_SB.PCI0.USB3, 0x02) // Device Wake
Notify (\_SB.PWRB, 0x02) // Device Wake
}
Method (_L0E, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
Notify (\_SB.PCI0.USB4, 0x02) // Device Wake
Notify (\_SB.PWRB, 0x02) // Device Wake
}
Method (_L05, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
Notify (\_SB.PCI0.MC97, 0x02) // Device Wake
Notify (\_SB.PWRB, 0x02) // Device Wake
}
Method (_L03, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
Notify (\_SB.PCI0.USB1, 0x02) // Device Wake
Notify (\_SB.PWRB, 0x02) // Device Wake
}
Method (_L0D, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
Notify (\_SB.PCI0.EUSB, 0x02) // Device Wake
Notify (\_SB.PWRB, 0x02) // Device Wake
}
}
Device (PWRB)
{
Name (_HID, EisaId ("PNP0C0C") /* Power Button Device */) // _HID: Hardware ID
Name (_UID, 0xAA) // _UID: Unique ID
Name (_STA, 0x0B) // _STA: Status
}
}
OperationRegion (\_SB.PCI0.SBRG.PIX0, PCI_Config, 0x60, 0x0C)
Field (\_SB.PCI0.SBRG.PIX0, ByteAcc, NoLock, Preserve)
{
PIRA, 8,
PIRB, 8,
PIRC, 8,
PIRD, 8,
Offset (0x08),
PIRE, 8,
PIRF, 8,
PIRG, 8,
PIRH, 8
}
Scope (\_SB)
{
Name (BUFA, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, _Y17)
{15}
})
CreateWordField (BUFA, \_SB._Y17._INT, IRA0) // _INT: Interrupts
Device (LNKA)
{
Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
Name (_UID, 0x01) // _UID: Unique ID
Method (_STA, 0, NotSerialized) // _STA: Status
{
Local0 = (PIRA & 0x80)
If (Local0)
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings
{
Return (PRSA) /* \_SB_.PRSA */
}
Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
{
PIRA |= 0x80
}
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Local0 = (PIRA & 0x0F)
IRA0 = (0x01 << Local0)
Return (BUFA) /* \_SB_.BUFA */
}
Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
{
CreateWordField (Arg0, 0x01, IRA)
FindSetRightBit (IRA, Local0)
Local0--
PIRA = Local0
}
}
Device (LNKB)
{
Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
Name (_UID, 0x02) // _UID: Unique ID
Method (_STA, 0, NotSerialized) // _STA: Status
{
Local0 = (PIRB & 0x80)
If (Local0)
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings
{
Return (PRSB) /* \_SB_.PRSB */
}
Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
{
PIRB |= 0x80
}
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Local0 = (PIRB & 0x0F)
IRA0 = (0x01 << Local0)
Return (BUFA) /* \_SB_.BUFA */
}
Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
{
CreateWordField (Arg0, 0x01, IRA)
FindSetRightBit (IRA, Local0)
Local0--
PIRB = Local0
}
}
Device (LNKC)
{
Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
Name (_UID, 0x03) // _UID: Unique ID
Method (_STA, 0, NotSerialized) // _STA: Status
{
Local0 = (PIRC & 0x80)
If (Local0)
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings
{
Return (PRSC) /* \_SB_.PRSC */
}
Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
{
PIRC |= 0x80
}
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Local0 = (PIRC & 0x0F)
IRA0 = (0x01 << Local0)
Return (BUFA) /* \_SB_.BUFA */
}
Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
{
CreateWordField (Arg0, 0x01, IRA)
FindSetRightBit (IRA, Local0)
Local0--
PIRC = Local0
}
}
Device (LNKD)
{
Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
Name (_UID, 0x04) // _UID: Unique ID
Method (_STA, 0, NotSerialized) // _STA: Status
{
Local0 = (PIRD & 0x80)
If (Local0)
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings
{
Return (PRSD) /* \_SB_.PRSD */
}
Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
{
PIRD |= 0x80
}
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Local0 = (PIRD & 0x0F)
IRA0 = (0x01 << Local0)
Return (BUFA) /* \_SB_.BUFA */
}
Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
{
CreateWordField (Arg0, 0x01, IRA)
FindSetRightBit (IRA, Local0)
Local0--
PIRD = Local0
}
}
Device (LNKE)
{
Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
Name (_UID, 0x05) // _UID: Unique ID
Method (_STA, 0, NotSerialized) // _STA: Status
{
Local0 = (PIRE & 0x80)
If (Local0)
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings
{
Return (PRSE) /* \_SB_.PRSE */
}
Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
{
PIRE |= 0x80
}
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Local0 = (PIRE & 0x0F)
IRA0 = (0x01 << Local0)
Return (BUFA) /* \_SB_.BUFA */
}
Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
{
CreateWordField (Arg0, 0x01, IRA)
FindSetRightBit (IRA, Local0)
Local0--
PIRE = Local0
}
}
Device (LNKF)
{
Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
Name (_UID, 0x06) // _UID: Unique ID
Method (_STA, 0, NotSerialized) // _STA: Status
{
Local0 = (PIRF & 0x80)
If (Local0)
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings
{
Return (PRSF) /* \_SB_.PRSF */
}
Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
{
PIRF |= 0x80
}
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Local0 = (PIRF & 0x0F)
IRA0 = (0x01 << Local0)
Return (BUFA) /* \_SB_.BUFA */
}
Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
{
CreateWordField (Arg0, 0x01, IRA)
FindSetRightBit (IRA, Local0)
Local0--
PIRF = Local0
}
}
Device (LNKG)
{
Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
Name (_UID, 0x07) // _UID: Unique ID
Method (_STA, 0, NotSerialized) // _STA: Status
{
Local0 = (PIRG & 0x80)
If (Local0)
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings
{
Return (PRSG) /* \_SB_.PRSG */
}
Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
{
PIRG |= 0x80
}
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Local0 = (PIRG & 0x0F)
IRA0 = (0x01 << Local0)
Return (BUFA) /* \_SB_.BUFA */
}
Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
{
CreateWordField (Arg0, 0x01, IRA)
FindSetRightBit (IRA, Local0)
Local0--
PIRG = Local0
}
}
Device (LNKH)
{
Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
Name (_UID, 0x08) // _UID: Unique ID
Method (_STA, 0, NotSerialized) // _STA: Status
{
Local0 = (PIRH & 0x80)
If (Local0)
{
Return (0x09)
}
Else
{
Return (0x0B)
}
}
Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings
{
Return (PRSH) /* \_SB_.PRSH */
}
Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
{
PIRH |= 0x80
}
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Local0 = (PIRH & 0x0F)
IRA0 = (0x01 << Local0)
Return (BUFA) /* \_SB_.BUFA */
}
Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
{
CreateWordField (Arg0, 0x01, IRA)
FindSetRightBit (IRA, Local0)
Local0--
PIRH = Local0
}
}
}
Scope (\_SB)
{
Name (XCPD, 0x00)
Name (XNPT, 0x01)
Name (XCAP, 0x02)
Name (XDCP, 0x04)
Name (XDCT, 0x08)
Name (XDST, 0x0A)
Name (XLCP, 0x0C)
Name (XLCT, 0x10)
Name (XLST, 0x12)
Name (XSCP, 0x14)
Name (XSCT, 0x18)
Name (XSST, 0x1A)
Name (XRCT, 0x1C)
Mutex (MUTE, 0x00)
Method (RBPE, 1, NotSerialized)
{
Acquire (MUTE, 0x03E8)
Local0 = (Arg0 + \PCIB)
OperationRegion (PCFG, SystemMemory, Local0, 0x01)
Field (PCFG, ByteAcc, NoLock, Preserve)
{
XCFG, 8
}
Release (MUTE)
Return (XCFG) /* \_SB_.RBPE.XCFG */
}
Method (RWPE, 1, NotSerialized)
{
Acquire (MUTE, 0x03E8)
Arg0 &= 0xFFFFFFFE
Local0 = (Arg0 + \PCIB)
OperationRegion (PCFG, SystemMemory, Local0, 0x02)
Field (PCFG, WordAcc, NoLock, Preserve)
{
XCFG, 16
}
Release (MUTE)
Return (XCFG) /* \_SB_.RWPE.XCFG */
}
Method (RDPE, 1, NotSerialized)
{
Acquire (MUTE, 0x03E8)
Arg0 &= 0xFFFFFFFC
Local0 = (Arg0 + \PCIB)
OperationRegion (PCFG, SystemMemory, Local0, 0x04)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
XCFG, 32
}
Release (MUTE)
Return (XCFG) /* \_SB_.RDPE.XCFG */
}
Method (WBPE, 2, NotSerialized)
{
Acquire (MUTE, 0x0FFF)
Local0 = (Arg0 + \PCIB)
OperationRegion (PCFG, SystemMemory, Local0, 0x01)
Field (PCFG, ByteAcc, NoLock, Preserve)
{
XCFG, 8
}
XCFG = Arg1
Release (MUTE)
}
Method (WWPE, 2, NotSerialized)
{
Acquire (MUTE, 0x03E8)
Arg0 &= 0xFFFFFFFE
Local0 = (Arg0 + \PCIB)
OperationRegion (PCFG, SystemMemory, Local0, 0x02)
Field (PCFG, WordAcc, NoLock, Preserve)
{
XCFG, 16
}
XCFG = Arg1
Release (MUTE)
}
Method (WDPE, 2, NotSerialized)
{
Acquire (MUTE, 0x03E8)
Arg0 &= 0xFFFFFFFC
Local0 = (Arg0 + \PCIB)
OperationRegion (PCFG, SystemMemory, Local0, 0x04)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
XCFG, 32
}
XCFG = Arg1
Release (MUTE)
}
Method (RWDP, 3, NotSerialized)
{
Acquire (MUTE, 0x03E8)
Arg0 &= 0xFFFFFFFC
Local0 = (Arg0 + \PCIB)
OperationRegion (PCFG, SystemMemory, Local0, 0x04)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
XCFG, 32
}
Local1 = (XCFG & Arg2)
XCFG = (Local1 | Arg1)
Release (MUTE)
}
Method (RPME, 1, NotSerialized)
{
Local0 = (Arg0 + 0x84)
Local1 = \_SB.RDPE (Local0)
If (Local1 == 0xFFFFFFFF)
{
Return (0x00)
}
Else
{
If (Local1 && 0x00010000)
{
\_SB.WDPE (Local0, (Local1 & 0x00010000))
Return (0x01)
}
Return (0x00)
}
}
}
Name (HBAS, 0x00)
Name (HLBA, 0x00)
Name (HDEV, 0x00)
OperationRegion (REFP, SystemIO, 0x61, 0x01)
Field (REFP, ByteAcc, NoLock, Preserve)
{
P061, 8
}
Method (FZHD, 0, NotSerialized)
{
Local0 = 0x80
Local1 = DMAX /* \DMAX */
While (Local0 <= Local1)
{
Local3 = (Local0 & 0x7F)
Local2 = 0x01
Local2 <<= Local3
If (!(\_SB.PCI0.HFZF & Local2))
{
If (FZOD (Local0))
{
\_SB.PCI0.HFZF |= Local2
}
}
Local0++
}
}
Method (FZOD, 1, NotSerialized)
{
GHET (Arg0)
If (HBAS == 0x00)
{
Return (0x01)
}
If (HDEV == 0x00)
{
Return (0x01)
}
Local1 = HDEV /* \HDEV */
Local1 &= 0x10
If (Local1 == 0x00)
{
Return (0x01)
}
SDRV ()
Local1 = (HBAS + 0x07)
OperationRegion (HRGS, SystemIO, Local1, 0x01)
Field (HRGS, ByteAcc, NoLock, Preserve)
{
SREG, 8
}
Local1 = SREG /* \FZOD.SREG */
Local1 &= 0x80
If (Local1)
{
Return (0x00)
}
Local1 = (HBAS + 0x07)
OperationRegion (HRGC, SystemIO, Local1, 0x01)
Field (HRGC, ByteAcc, NoLock, Preserve)
{
CREG, 8
}
CREG = 0xF5
If (WFCF ())
{
Local0 = (HBAS + 0x07)
Local1 = SREG /* \FZOD.SREG */
Return (!(Local1 & 0x01))
}
Else
{
Return (0x00)
}
}
OperationRegion (DBGA, SystemIO, 0x80, 0x04)
Field (DBGA, DWordAcc, NoLock, Preserve)
{
DB32, 32
}
Method (GHET, 1, NotSerialized)
{
Local0 = (Arg0 & 0x7F)
Local0 <<= 0x05
Local0 += HPTA /* \HPTA */
OperationRegion (HDPT, SystemMemory, Local0, 0x20)
Field (HDPT, ByteAcc, NoLock, Preserve)
{
HP00, 16,
Offset (0x04),
HP04, 8,
Offset (0x12),
HP0C, 8
}
HBAS = HP00 /* \GHET.HP00 */
HLBA = HP04 /* \GHET.HP04 */
HDEV = HP0C /* \GHET.HP0C */
}
Method (SDRV, 0, NotSerialized)
{
Local0 = (HBAS + 0x06)
OperationRegion (HRGH, SystemIO, Local0, 0x01)
Field (HRGH, ByteAcc, NoLock, Preserve)
{
HREG, 8
}
HREG = HLBA /* \HLBA */
}
Method (WFCF, 0, NotSerialized)
{
SDRV ()
Local0 = (HBAS + 0x01)
OperationRegion (HRGE, SystemIO, Local0, 0x01)
Field (HRGE, ByteAcc, NoLock, Preserve)
{
EREG, 8
}
EREG = 0x00
Local1 = (HBAS + 0x07)
OperationRegion (HRGC, SystemIO, Local1, 0x01)
Field (HRGC, ByteAcc, NoLock, Preserve)
{
CREG, 8
}
Local0 = 0x28
While (Local0)
{
Local2 = (CREG & 0x01)
If (Local2)
{
Return (0x00)
}
WFZF (Local1)
Local2 = (CREG & 0x80)
If (Local2 == 0x00)
{
Return (0x01)
}
Local0--
}
Return (0x00)
}
Method (WFZF, 1, NotSerialized)
{
OperationRegion (HRGC, SystemIO, Arg0, 0x01)
Field (HRGC, ByteAcc, NoLock, Preserve)
{
CREG, 8
}
Local1 = 0xFFFF
While (Local1)
{
Local2 = CREG /* \WFZF.CREG */
Local2 &= 0x80
If (Local2 == 0x00)
{
Return (0x01)
}
Stall (0x0F)
Local1--
}
Return (0x00)
}
Scope (\_SB.PCI0)
{
Name (HFZF, 0x00)
Method (HWAK, 1, NotSerialized)
{
If (Arg0 == 0x03)
{
HFZF = 0x00
}
}
}
Scope (\_SB.PCI0.SBRG.SIOR)
{
Method (HWV0, 0, NotSerialized)
{
Return ((VCOR * 0x08))
}
Method (HWV1, 0, NotSerialized)
{
Local0 = (V12V * 0x08)
Return (Local0)
}
Method (HWV3, 0, NotSerialized)
{
Local0 = (V33V * 0x08)
Return (Local0)
}
Method (HWV5, 0, NotSerialized)
{
Local0 = (V50V * 0x08)
Return (Local0)
}
Method (HWT0, 0, NotSerialized)
{
Local1 = MBTE /* \_SB_.PCI0.SBRG.SIOR.MBTE */
Local1 *= 0x0A
Return (Local1)
}
Method (HWT1, 0, NotSerialized)
{
BSEL = 0x01
Local1 = TSR1 /* \_SB_.PCI0.SBRG.SIOR.TSR1 */
Local1 *= 0x0A
Local2 = TSR2 /* \_SB_.PCI0.SBRG.SIOR.TSR2 */
Local2 *= 0x05
Local1 += Local2
Return (Local1)
}
Method (HWT2, 0, NotSerialized)
{
BSEL = 0x02
Local1 = TSR1 /* \_SB_.PCI0.SBRG.SIOR.TSR1 */
Local1 *= 0x0A
Local2 = TSR2 /* \_SB_.PCI0.SBRG.SIOR.TSR2 */
Local2 *= 0x05
Local1 += Local2
Return (Local1)
}
Method (HWF0, 0, NotSerialized)
{
Local0 = FAN1 /* \_SB_.PCI0.SBRG.SIOR.FAN1 */
BSEL = 0x00
Local1 = (FD21 & 0x20)
Local1 >>= 0x05
Local1 *= 0x04
Local1 += FD11 /* \_SB_.PCI0.SBRG.SIOR.FD11 */
While (((Local0 > 0xE6) && (Local1 < 0x07)) || ((Local0 <
0x64) && (Local1 > 0x00)))
{
If ((Local0 > 0xE6) && (Local1 < 0x07))
{
Local1 += 0x01
Divide (Local1, 0x04, Local2, Local3)
BSEL = 0x00
Local3 <<= 0x05
Local4 = FD21 /* \_SB_.PCI0.SBRG.SIOR.FD21 */
Local4 &= 0xDF
FD21 = (Local3 | Local4)
FD11 = Local2
Sleep (0x012C)
Local0 = FAN1 /* \_SB_.PCI0.SBRG.SIOR.FAN1 */
}
Else
{
Local1 -= 0x01
Divide (Local1, 0x04, Local2, Local3)
BSEL = 0x00
Local3 <<= 0x05
Local4 = FD21 /* \_SB_.PCI0.SBRG.SIOR.FD21 */
Local4 &= 0xDF
FD21 = (Local3 | Local4)
FD11 = Local2
Sleep (0x012C)
Local0 = FAN1 /* \_SB_.PCI0.SBRG.SIOR.FAN1 */
}
}
If ((Local0 == 0xFF) && (Local1 == 0x07))
{
Return (0x00)
}
If ((Local0 == 0x00) && (Local1 == 0x00))
{
Return (0xFFFF)
}
Local2 = 0x01
While (Local1)
{
Local2 *= 0x02
Local1--
}
Local0 *= Local2
Divide (0x00149970, Local0, Local1, Local0)
Return (Local0)
}
Method (HWF1, 0, NotSerialized)
{
Local0 = FAN2 /* \_SB_.PCI0.SBRG.SIOR.FAN2 */
BSEL = 0x00
Local1 = (FD21 & 0x40)
Local1 >>= 0x06
Local1 *= 0x04
Local1 += FD12 /* \_SB_.PCI0.SBRG.SIOR.FD12 */
While (((Local0 > 0xE6) && (Local1 < 0x07)) || ((Local0 <
0x64) && (Local1 > 0x00)))
{
If ((Local0 > 0xE6) && (Local1 < 0x07))
{
Local1 += 0x01
Divide (Local1, 0x04, Local2, Local3)
BSEL = 0x00
Local3 <<= 0x06
Local4 = FD21 /* \_SB_.PCI0.SBRG.SIOR.FD21 */
Local4 &= 0xBF
FD21 = (Local3 | Local4)
FD12 = Local2
Sleep (0x012C)
Local0 = FAN2 /* \_SB_.PCI0.SBRG.SIOR.FAN2 */
}
Else
{
Local1 -= 0x01
Divide (Local1, 0x04, Local2, Local3)
BSEL = 0x00
Local3 <<= 0x06
Local4 = FD21 /* \_SB_.PCI0.SBRG.SIOR.FD21 */
Local4 &= 0xBF
FD21 = (Local3 | Local4)
FD12 = Local2
Sleep (0x012C)
Local0 = FAN2 /* \_SB_.PCI0.SBRG.SIOR.FAN2 */
}
}
If ((Local0 == 0xFF) && (Local1 == 0x07))
{
Return (0x00)
}
If ((Local0 == 0x00) && (Local1 == 0x00))
{
Return (0xFFFF)
}
Local2 = 0x01
While (Local1)
{
Local2 *= 0x02
Local1--
}
Local0 *= Local2
Divide (0x00149970, Local0, Local1, Local0)
Return (Local0)
}
Method (HWF2, 0, NotSerialized)
{
Local0 = FAN3 /* \_SB_.PCI0.SBRG.SIOR.FAN3 */
BSEL = 0x00
Local1 = (FD21 & 0x80)
Local1 >>= 0x07
Local1 *= 0x04
Divide (FD13, 0x40, Local2, Local3)
Local1 += Local3
While (((Local0 > 0xE6) && (Local1 < 0x07)) || ((Local0 <
0x64) && (Local1 > 0x00)))
{
If ((Local0 > 0xE6) && (Local1 < 0x07))
{
Local1 += 0x01
Divide (Local1, 0x04, Local2, Local3)
BSEL = 0x00
Local3 <<= 0x07
Local4 = FD21 /* \_SB_.PCI0.SBRG.SIOR.FD21 */
Local4 &= 0x7F
FD21 = (Local3 | Local4)
Local3 = FD13 /* \_SB_.PCI0.SBRG.SIOR.FD13 */
Local3 &= 0x3F
Local2 *= 0x40
Local2 += Local3
FD13 = Local2
Sleep (0x012C)
Local0 = FAN3 /* \_SB_.PCI0.SBRG.SIOR.FAN3 */
}
Else
{
Local1 -= 0x01
Divide (Local1, 0x04, Local2, Local3)
BSEL = 0x00
Local3 <<= 0x07
Local4 = FD21 /* \_SB_.PCI0.SBRG.SIOR.FD21 */
Local4 &= 0x7F
FD21 = (Local3 | Local4)
Local3 = FD13 /* \_SB_.PCI0.SBRG.SIOR.FD13 */
Local3 &= 0x3F
Local2 *= 0x40
Local2 += Local3
FD13 = Local2
Sleep (0x012C)
Local0 = FAN3 /* \_SB_.PCI0.SBRG.SIOR.FAN3 */
}
}
If ((Local0 == 0xFF) && (Local1 == 0x07))
{
Return (0x00)
}
If ((Local0 == 0x00) && (Local1 == 0x00))
{
Return (0xFFFF)
}
Local2 = 0x01
While (Local1)
{
Local2 *= 0x02
Local1--
}
Local0 *= Local2
Divide (0x00149970, Local0, Local1, Local0)
Return (Local0)
}
OperationRegion (HWRE, SystemIO, IOHW, 0x0A)
Field (HWRE, ByteAcc, NoLock, Preserve)
{
Offset (0x05),
HIDX, 8,
HDAT, 8
}
IndexField (HIDX, HDAT, ByteAcc, NoLock, Preserve)
{
Offset (0x04),
CHNM, 1,
CFNM, 1,
CHNS, 2,
CFNS, 2,
Offset (0x05),
SYST, 8,
TRGT, 8,
Offset (0x08),
SSDN, 8,
CSDN, 8,
SSUP, 8,
CSUP, 8,
Offset (0x20),
VCOR, 8,
V12V, 8,
Offset (0x23),
V33V, 8,
Offset (0x25),
V50V, 8,
Offset (0x27),
MBTE, 8,
FAN1, 8,
FAN2, 8,
FAN3, 8,
Offset (0x40),
HWST, 1,
Offset (0x41),
Offset (0x47),
, 4,
FD11, 2,
FD12, 2,
Offset (0x4B),
FD13, 8,
Offset (0x4E),
BSEL, 3,
Offset (0x4F),
Offset (0x50),
TSR1, 8,
TSR2, 1,
Offset (0x52),
Offset (0x5D),
FD21, 8
}
}
Scope (\_SB.PCI0.SBRG.ASOC)
{
Name (CORV, Package (0x05)
{
0x06020000,
"Vcore Voltage",
0x0352,
0x0640,
0x01
})
Name (V3VV, Package (0x05)
{
0x06020001,
" +3.3 Voltage",
0x0B9A,
0x0E2E,
0x01
})
Name (V5VV, Package (0x05)
{
0x06020002,
" +5 Voltage",
0x1194,
0x157C,
0x01
})
Name (VV12, Package (0x05)
{
0x06020003,
" +12 Voltage",
0x27D8,
0x35E8,
0x01
})
Name (VPAR, Package (0x04)
{
Package (0x03)
{
0x00,
0x01,
0x00
},
Package (0x03)
{
0x22,
0x22,
0x00
},
Package (0x03)
{
0x16,
0x0A,
0x00
},
Package (0x03)
{
0x38,
0x0A,
0x00
}
})
Name (VBUF, Package (0x05)
{
0x04,
CORV,
V3VV,
V5VV,
VV12
})
Method (VGET, 1, NotSerialized)
{
Local0 = 0x00
If (Arg0 == 0x00)
{
Local0 = ^^SIOR.HWV0 ()
}
If (Arg0 == 0x01)
{
Local0 = ^^SIOR.HWV3 ()
}
If (Arg0 == 0x02)
{
Local0 = ^^SIOR.HWV5 ()
}
If (Arg0 == 0x03)
{
Local0 = ^^SIOR.HWV1 ()
}
Return (Local0)
}
Name (CPUT, Package (0x05)
{
0x06030000,
"CPU Temperature",
0x0258,
0x03B6,
0x00010001
})
Name (TBUF, Package (0x02)
{
0x01,
CPUT
})
Method (TGET, 1, NotSerialized)
{
Local0 = 0x00
If (Arg0 == 0x00)
{
Local0 = ^^SIOR.HWT1 ()
}
Return (Local0)
}
Name (CPUF, Package (0x05)
{
0x06040000,
"CPU FAN Speed",
0x0258,
0x1C20,
0x00010001
})
Name (CHAF, Package (0x05)
{
0x06040001,
"CHASSIS FAN Speed",
0x0320,
0x1C20,
0x00010001
})
Name (FBUF, Package (0x03)
{
0x02,
CPUF,
CHAF
})
Method (FGET, 1, NotSerialized)
{
Local0 = 0x00
If (Arg0 == 0x00)
{
Local0 = ^^SIOR.HWF1 ()
}
If (Arg0 == 0x01)
{
Local0 = ^^SIOR.HWF0 ()
}
Return (Local0)
}
Method (VSIF, 0, Serialized)
{
Return (VBUF) /* \_SB_.PCI0.SBRG.ASOC.VBUF */
}
Method (RVLT, 1, Serialized)
{
Acquire (AMTX, 0xFFFF)
Local0 = (Arg0 & 0xFFFF)
Local1 = VGET (Local0)
Local2 = DerefOf (DerefOf (VPAR [Local0]) [0x00])
Local3 = DerefOf (DerefOf (VPAR [Local0]) [0x01])
Local4 = DerefOf (DerefOf (VPAR [Local0]) [0x02])
Local5 = (Local1 * (Local2 + Local3))
Local5 /= Local3
Local5 += Local4
Release (AMTX)
Return (Local5)
}
Method (SVLT, 1, Serialized)
{
Acquire (AMTX, 0xFFFF)
Local0 = (DerefOf (Arg0 [0x00]) & 0xFFFF)
Local1 = DerefOf (VBUF [0x00])
If (Local0 >= Local1)
{
Release (AMTX)
Return (0x00)
}
Local0++
DerefOf (VBUF [Local0]) [0x01] = DerefOf (Arg0 [
0x01])
DerefOf (VBUF [Local0]) [0x02] = DerefOf (Arg0 [
0x02])
DerefOf (VBUF [Local0]) [0x03] = DerefOf (Arg0 [
0x03])
DerefOf (VBUF [Local0]) [0x04] = DerefOf (Arg0 [
0x04])
Release (AMTX)
Return (0x01)
}
Method (TSIF, 0, Serialized)
{
Return (TBUF) /* \_SB_.PCI0.SBRG.ASOC.TBUF */
}
Method (RTMP, 1, NotSerialized)
{
Acquire (AMTX, 0xFFFF)
Local0 = (Arg0 & 0xFFFF)
Local1 = TGET (Local0)
Release (AMTX)
Return (Local1)
}
Method (STMP, 1, Serialized)
{
Acquire (AMTX, 0xFFFF)
Local0 = (DerefOf (Arg0 [0x00]) & 0xFFFF)
Local1 = DerefOf (TBUF [0x00])
If (Local0 >= Local1)
{
Release (AMTX)
Return (0x00)
}
Local0++
DerefOf (TBUF [Local0]) [0x01] = DerefOf (Arg0 [
0x01])
DerefOf (TBUF [Local0]) [0x02] = DerefOf (Arg0 [
0x02])
DerefOf (TBUF [Local0]) [0x03] = DerefOf (Arg0 [
0x03])
DerefOf (TBUF [Local0]) [0x04] = DerefOf (Arg0 [
0x04])
Release (AMTX)
Return (0x01)
}
Method (FSIF, 0, Serialized)
{
Return (FBUF) /* \_SB_.PCI0.SBRG.ASOC.FBUF */
}
Method (RFAN, 1, Serialized)
{
Acquire (AMTX, 0xFFFF)
Local0 = (Arg0 & 0xFFFF)
Local1 = FGET (Local0)
Release (AMTX)
Return (Local1)
}
Method (SFAN, 1, Serialized)
{
Acquire (AMTX, 0xFFFF)
Local0 = (DerefOf (Arg0 [0x00]) & 0xFFFF)
Local1 = DerefOf (FBUF [0x00])
If (Local0 >= Local1)
{
Release (AMTX)
Return (0x00)
}
Local0++
DerefOf (FBUF [Local0]) [0x01] = DerefOf (Arg0 [
0x01])
DerefOf (FBUF [Local0]) [0x02] = DerefOf (Arg0 [
0x02])
DerefOf (FBUF [Local0]) [0x03] = DerefOf (Arg0 [
0x03])
DerefOf (FBUF [Local0]) [0x04] = DerefOf (Arg0 [
0x04])
Release (AMTX)
Return (0x01)
}
}
Scope (\_SB)
{
Scope (PCI0)
{
Name (CRS, ResourceTemplate ()
{
WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
0x0000, // Granularity
0x0000, // Range Minimum
0x00FF, // Range Maximum
0x0000, // Translation Offset
0x0100, // Length
,, )
IO (Decode16,
0x0CF8, // Range Minimum
0x0CF8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
0x0000, // Granularity
0x0000, // Range Minimum
0x0CF7, // Range Maximum
0x0000, // Translation Offset
0x0CF8, // Length
,, , TypeStatic)
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
0x0000, // Granularity
0x0D00, // Range Minimum
0xFFFF, // Range Maximum
0x0000, // Translation Offset
0xF300, // Length
,, , TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x000A0000, // Range Minimum
0x000BFFFF, // Range Maximum
0x00000000, // Translation Offset
0x00020000, // Length
,, , AddressRangeMemory, TypeStatic)
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x00000000, // Range Minimum
0x00000000, // Range Maximum
0x00000000, // Translation Offset
0x00000000, // Length
,, _Y18, AddressRangeMemory, TypeStatic)
})
CreateDWordField (CRS, \_SB.PCI0._Y18._MIN, MIN6) // _MIN: Minimum Base Address
CreateDWordField (CRS, \_SB.PCI0._Y18._MAX, MAX6) // _MAX: Maximum Base Address
CreateDWordField (CRS, \_SB.PCI0._Y18._LEN, LEN6) // _LEN: Length
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
MIN6 = MG2B /* \MG2B */
MIN6 += 0x00010000
LEN6 = MG2L /* \MG2L */
LEN6 -= 0x00010000
Local0 = LEN6 /* \_SB_.PCI0.LEN6 */
MAX6 = (MIN6 + Local0--)
Return (CRS) /* \_SB_.PCI0.CRS_ */
}
}
}
Name (WOTB, 0x00)
Name (WSSB, 0x00)
Name (WAXB, 0x00)
Method (_PTS, 1, NotSerialized) // _PTS: Prepare To Sleep
{
DBG8 = Arg0
PTS (Arg0)
WAKP [0x00] = 0x00
WAKP [0x01] = 0x00
If ((Arg0 == 0x04) && (OSFL () == 0x02))
{
Sleep (0x0BB8)
}
WSSB = ASSB /* \ASSB */
WOTB = AOTB /* \AOTB */
WAXB = AAXB /* \AAXB */
ASSB = Arg0
AOTB = OSFL ()
AAXB = Zero
}
Method (_WAK, 1, NotSerialized) // _WAK: Wake
{
DBG8 = (Arg0 << 0x04)
WAK (Arg0)
If (IOWK) {}
Else
{
Notify (\_SB.PWRB, 0x02) // Device Wake
}
If (ASSB)
{
ASSB = WSSB /* \WSSB */
AOTB = WOTB /* \WOTB */
AAXB = WAXB /* \WAXB */
}
If (DerefOf (WAKP [0x00]))
{
WAKP [0x01] = 0x00
}
Else
{
WAKP [0x01] = Arg0
}
Return (WAKP) /* \WAKP */
}
OperationRegion (PMS0, SystemIO, PMBS, 0x04)
Field (PMS0, ByteAcc, NoLock, Preserve)
{
, 10,
RTCS, 1,
, 4,
WAKS, 1,
Offset (0x03),
PWBT, 1,
, 1,
RTCE, 1,
Offset (0x04)
}
OperationRegion (SMIE, SystemIO, PM30, 0x08)
Field (SMIE, ByteAcc, NoLock, Preserve)
{
, 4,
PS1E, 1,
, 31,
PS1S, 1,
Offset (0x08)
}
OperationRegion (\_SB.PCI0.SKPD, PCI_Config, ACPH, 0x02)
Field (\_SB.PCI0.SKPD, ByteAcc, NoLock, Preserve)
{
APWR, 8,
SPLV, 3,
OSFG, 2,
Offset (0x02)
}
OperationRegion (IORK, SystemIO, 0xB3, 0x01)
Field (IORK, ByteAcc, NoLock, Preserve)
{
IOWK, 8
}
Scope (\_SB.PCI0.IDE0)
{
OperationRegion (PAR9, PCI_Config, 0x09, 0x01)
Field (PAR9, ByteAcc, NoLock, Preserve)
{
PAMD, 8
}
}
Scope (\_SB.PCI0.IDE1)
{
OperationRegion (SAR9, PCI_Config, 0x09, 0x01)
Field (SAR9, ByteAcc, NoLock, Preserve)
{
SAMD, 8
}
}
Name (\_S0, Package (0x04) // _S0_: S0 System State
{
0x00,
0x00,
0x00,
0x00
})
If (SS1)
{
Name (\_S1, Package (0x04) // _S1_: S1 System State
{
0x01,
0x00,
0x00,
0x00
})
}
If (SS3)
{
Name (\_S3, Package (0x04) // _S3_: S3 System State
{
0x05,
0x00,
0x00,
0x00
})
}
If (SS4)
{
Name (\_S4, Package (0x04) // _S4_: S4 System State
{
0x06,
0x00,
0x00,
0x00
})
}
Name (\_S5, Package (0x04) // _S5_: S5 System State
{
0x07,
0x00,
0x00,
0x00
})
Scope (\_SB.PCI0)
{
Method (_INI, 0, NotSerialized) // _INI: Initialize
{
}
}
Method (PTS, 1, NotSerialized)
{
If (Arg0)
{
\_SB.PCI0.SBRG.SIOS (Arg0)
\_SB.PCI0.NPTS (Arg0)
\_SB.PCI0.SBRG.SPTS (Arg0)
}
}
Method (WAK, 1, NotSerialized)
{
\_SB.PCI0.SBRG.SIOW (Arg0)
\_SB.PCI0.NWAK (Arg0)
\_SB.PCI0.SBRG.SWAK (Arg0)
\_SB.PCI0.HWAK (Arg0)
}
}