Re: Monitoring temperature with acpi (sysctls)



John Baldwin wrote:
On Thursday 27 July 2006 02:25, Mike Jakubik wrote:
Jiawei Ye wrote:
On 7/27/06, Mike Jakubik <mikej@xxxxxxxxxx> wrote:
I don't want to spend $50 extra per system, just so i can read the
temperature, and not even use any of the IPMI functions. I need a simple
and scriptable way to get the values, acpi sysctls are ideal for this.
What about using SMBus? Is it available on your system? xmbmon reads
temperatures off the SMBus IIRC.
I tried that, unfortunately it does not work. All i want to know is if this a shortcoming of freebsd or the motherboard, if its the later, i will contact the manufacturer.

If ACPI doesn't include the sysctl's that's due to your BIOS, not FreeBSD.
You can verify by doing an acpidump and seeing if you have any thermal
zones listed in your ASL.

This is a 'acpidump -d' of my BIOS, mainboard ASUS A8N32-SLI Deluxe, latest BIOS, V1205 as seen on ASUS homepage. Please see attachment.

Oliver /*
* Intel ACPI Component Architecture
* AML Disassembler version 20041119
*
* Disassembly of /tmp/acpidump.nhd4SF, Fri Jul 28 23:00:44 2006
*/
DefinitionBlock ("DSDT.aml", "DSDT", 1, "A0371", "A0371001", 1)
{
Name (DP80, 0x1080)
Name (DP90, 0x90)
Name (SPIO, 0x2E)
Name (IOPB, 0x0C00)
Name (IOPL, 0x10)
Name (IOEB, 0x0D00)
Name (IOEL, 0x10)
Name (IOGB, 0x0A20)
Name (IOGL, 0x10)
Name (IODB, 0x0A30)
Name (IODL, 0x10)
Name (IO1B, 0x0A20)
Name (IO1L, 0x08)
Name (IO3B, 0x0D00)
Name (IO3L, 0x80)
Name (PMBS, 0x0500)
Name (PMLN, 0x0100)
Name (SCBS, 0x0800)
Name (SCLN, 0x0100)
Name (ACBS, 0x0900)
Name (ACLN, 0x0100)
Name (SCIO, 0x0800)
Name (SCTL, 0x0590)
Name (EXTS, 0x00)
Name (APIC, 0x01)
Name (ABWV, 0xAB)
Name (PCIB, 0xE0000000)
Name (PCIL, 0x10000000)
Name (SMBS, 0x0700)
OperationRegion (BIOS, SystemMemory, 0x7FFBE064, 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),
CPB0, 32,
CPB1, 32,
CPB2, 32,
CPB3, 32,
ASSB, 8,
AOTB, 8,
AAXB, 32
}

Method (RRIO, 4, NotSerialized)
{
Store ("RRIO", Debug)
}

Method (RDMA, 3, NotSerialized)
{
Store ("rDMA", Debug)
}

Name (PICM, 0x00)
Method (_PIC, 1, NotSerialized)
{
If (Arg0)
{
Store (0xAA, DBG8)
}
Else
{
Store (0xAC, DBG8)
}

Store (Arg0, PICM)
}

Name (OSVR, Ones)
Method (OSFL, 0, NotSerialized)
{
If (LNot (LEqual (OSVR, Ones)))
{
Return (OSVR)
}

If (LEqual (PICM, 0x00))
{
Store (0xAC, DBG8)
}

Store (0x01, OSVR)
If (CondRefOf (\_OSI, Local1))
{
If (\_OSI ("Windows 2001"))
{
Store (0x00, OSVR)
}
}
Else
{
If (MCTH (\_OS, "Microsoft Windows NT"))
{
Store (0x04, OSVR)
}
Else
{
If (MCTH (\_OS, "Microsoft WindowsME: Millennium Edition"))
{
Store (0x02, OSVR)
}

If (MCTH (\_OS, "Linux"))
{
Store (0x03, OSVR)
}
}
}

Return (OSVR)
}

Method (MCTH, 2, NotSerialized)
{
If (LLess (SizeOf (Arg0), SizeOf (Arg1)))
{
Return (Zero)
}

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

Return (One)
}

Name (PRWP, Package (0x02)
{
Zero,
Zero
})
Method (GPRW, 2, NotSerialized)
{
Store (Arg0, Index (PRWP, 0x00))
Store (ShiftLeft (SS1, 0x01), Local0)
Or (Local0, ShiftLeft (SS2, 0x02), Local0)
Or (Local0, ShiftLeft (SS3, 0x03), Local0)
Or (Local0, ShiftLeft (SS4, 0x04), Local0)
If (And (ShiftLeft (0x01, Arg1), Local0))
{
Store (Arg1, Index (PRWP, 0x01))
}
Else
{
ShiftRight (Local0, 0x01, Local0)
If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02)))
{
FindSetLeftBit (Local0, Index (PRWP, 0x01))
}
Else
{
FindSetRightBit (Local0, Index (PRWP, 0x01))
}
}

Return (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 (0x20)
{
Package (0x04)
{
0x000AFFFF,
0x00,
LSMB,
0x00
},

Package (0x04)
{
0x000BFFFF,
0x00,
LUB0,
0x00
},

Package (0x04)
{
0x000BFFFF,
0x01,
LUB2,
0x00
},

Package (0x04)
{
0x0013FFFF,
0x00,
LMAC,
0x00
},

Package (0x04)
{
0x0010FFFF,
0x00,
LSA0,
0x00
},

Package (0x04)
{
0x0011FFFF,
0x00,
LSA1,
0x00
},

Package (0x04)
{
0x000DFFFF,
0x00,
LACI,
0x00
},

Package (0x04)
{
0x000DFFFF,
0x01,
LMC9,
0x00
},

Package (0x04)
{
0x0002FFFF,
0x00,
LNKB,
0x00
},

Package (0x04)
{
0x0002FFFF,
0x01,
LNKC,
0x00
},

Package (0x04)
{
0x0002FFFF,
0x02,
LNKD,
0x00
},

Package (0x04)
{
0x0002FFFF,
0x03,
LNKA,
0x00
},

Package (0x04)
{
0x0003FFFF,
0x00,
LNKA,
0x00
},

Package (0x04)
{
0x0003FFFF,
0x01,
LNKB,
0x00
},

Package (0x04)
{
0x0003FFFF,
0x02,
LNKC,
0x00
},

Package (0x04)
{
0x0003FFFF,
0x03,
LNKD,
0x00
},

Package (0x04)
{
0x0004FFFF,
0x00,
LNKA,
0x00
},

Package (0x04)
{
0x0004FFFF,
0x01,
LNKB,
0x00
},

Package (0x04)
{
0x0004FFFF,
0x02,
LNKC,
0x00
},

Package (0x04)
{
0x0004FFFF,
0x03,
LNKD,
0x00
},

Package (0x04)
{
0x0017FFFF,
0x00,
LNKB,
0x00
},

Package (0x04)
{
0x0017FFFF,
0x01,
LNKC,
0x00
},

Package (0x04)
{
0x0017FFFF,
0x02,
LNKD,
0x00
},

Package (0x04)
{
0x0017FFFF,
0x03,
LNKA,
0x00
},

Package (0x04)
{
0x0016FFFF,
0x00,
LNKC,
0x00
},

Package (0x04)
{
0x0016FFFF,
0x01,
LNKD,
0x00
},

Package (0x04)
{
0x0016FFFF,
0x02,
LNKA,
0x00
},

Package (0x04)
{
0x0016FFFF,
0x03,
LNKB,
0x00
},

Package (0x04)
{
0x0015FFFF,
0x00,
LNKD,
0x00
},

Package (0x04)
{
0x0015FFFF,
0x01,
LNKA,
0x00
},

Package (0x04)
{
0x0015FFFF,
0x02,
LNKB,
0x00
},

Package (0x04)
{
0x0015FFFF,
0x03,
LNKC,
0x00
}
})
Name (AR00, Package (0x20)
{
Package (0x04)
{
0x000AFFFF,
0x00,
LSMB,
0x00
},

Package (0x04)
{
0x000BFFFF,
0x00,
LUB0,
0x00
},

Package (0x04)
{
0x000BFFFF,
0x01,
LUB2,
0x00
},

Package (0x04)
{
0x0013FFFF,
0x00,
LMAC,
0x00
},

Package (0x04)
{
0x0010FFFF,
0x00,
LSA0,
0x00
},

Package (0x04)
{
0x0011FFFF,
0x00,
LSA1,
0x00
},

Package (0x04)
{
0x000DFFFF,
0x00,
LACI,
0x00
},

Package (0x04)
{
0x000DFFFF,
0x01,
LMC9,
0x00
},

Package (0x04)
{
0x0002FFFF,
0x00,
LNKB,
0x00
},

Package (0x04)
{
0x0002FFFF,
0x01,
LNKC,
0x00
},

Package (0x04)
{
0x0002FFFF,
0x02,
LNKD,
0x00
},

Package (0x04)
{
0x0002FFFF,
0x03,
LNKA,
0x00
},

Package (0x04)
{
0x0003FFFF,
0x00,
LNKA,
0x00
},

Package (0x04)
{
0x0003FFFF,
0x01,
LNKB,
0x00
},

Package (0x04)
{
0x0003FFFF,
0x02,
LNKC,
0x00
},

Package (0x04)
{
0x0003FFFF,
0x03,
LNKD,
0x00
},

Package (0x04)
{
0x0004FFFF,
0x00,
LNKA,
0x00
},

Package (0x04)
{
0x0004FFFF,
0x01,
LNKB,
0x00
},

Package (0x04)
{
0x0004FFFF,
0x02,
LNKC,
0x00
},

Package (0x04)
{
0x0004FFFF,
0x03,
LNKD,
0x00
},

Package (0x04)
{
0x0017FFFF,
0x00,
LNKB,
0x00
},

Package (0x04)
{
0x0017FFFF,
0x01,
LNKC,
0x00
},

Package (0x04)
{
0x0017FFFF,
0x02,
LNKD,
0x00
},

Package (0x04)
{
0x0017FFFF,
0x03,
LNKA,
0x00
},

Package (0x04)
{
0x0016FFFF,
0x00,
LNKC,
0x00
},

Package (0x04)
{
0x0016FFFF,
0x01,
LNKD,
0x00
},

Package (0x04)
{
0x0016FFFF,
0x02,
LNKA,
0x00
},

Package (0x04)
{
0x0016FFFF,
0x03,
LNKB,
0x00
},

Package (0x04)
{
0x0015FFFF,
0x00,
LNKD,
0x00
},

Package (0x04)
{
0x0015FFFF,
0x01,
LNKA,
0x00
},

Package (0x04)
{
0x0015FFFF,
0x02,
LNKB,
0x00
},

Package (0x04)
{
0x0015FFFF,
0x03,
LNKC,
0x00
}
})
Name (PR01, Package (0x0D)
{
Package (0x04)
{
0x000BFFFF,
0x00,
LNKA,
0x00
},

Package (0x04)
{
0x0006FFFF,
0x00,
LNKA,
0x00
},

Package (0x04)
{
0x0006FFFF,
0x01,
LNKB,
0x00
},

Package (0x04)
{
0x0006FFFF,
0x02,
LNKC,
0x00
},

Package (0x04)
{
0x0006FFFF,
0x03,
LNKD,
0x00
},

Package (0x04)
{
0x0007FFFF,
0x00,
LNKB,
0x00
},

Package (0x04)
{
0x0007FFFF,
0x01,
LNKC,
0x00
},

Package (0x04)
{
0x0007FFFF,
0x02,
LNKD,
0x00
},

Package (0x04)
{
0x0007FFFF,
0x03,
LNKA,
0x00
},

Package (0x04)
{
0x0008FFFF,
0x00,
LNKC,
0x00
},

Package (0x04)
{
0x0008FFFF,
0x01,
LNKD,
0x00
},

Package (0x04)
{
0x0008FFFF,
0x02,
LNKA,
0x00
},

Package (0x04)
{
0x0008FFFF,
0x03,
LNKB,
0x00
}
})
Name (AR01, Package (0x0D)
{
Package (0x04)
{
0x000BFFFF,
0x00,
LNKA,
0x00
},

Package (0x04)
{
0x0006FFFF,
0x00,
LNKA,
0x00
},

Package (0x04)
{
0x0006FFFF,
0x01,
LNKB,
0x00
},

Package (0x04)
{
0x0006FFFF,
0x02,
LNKC,
0x00
},

Package (0x04)
{
0x0006FFFF,
0x03,
LNKD,
0x00
},

Package (0x04)
{
0x0007FFFF,
0x00,
LNKB,
0x00
},

Package (0x04)
{
0x0007FFFF,
0x01,
LNKC,
0x00
},

Package (0x04)
{
0x0007FFFF,
0x02,
LNKD,
0x00
},

Package (0x04)
{
0x0007FFFF,
0x03,
LNKA,
0x00
},

Package (0x04)
{
0x0008FFFF,
0x00,
LNKC,
0x00
},

Package (0x04)
{
0x0008FFFF,
0x01,
LNKD,
0x00
},

Package (0x04)
{
0x0008FFFF,
0x02,
LNKA,
0x00
},

Package (0x04)
{
0x0008FFFF,
0x03,
LNKB,
0x00
}
})
Name (PR02, Package (0x04)
{
Package (0x04)
{
0xFFFF,
0x00,
LNKB,
0x00
},

Package (0x04)
{
0xFFFF,
0x01,
LNKC,
0x00
},

Package (0x04)
{
0xFFFF,
0x02,
LNKD,
0x00
},

Package (0x04)
{
0xFFFF,
0x03,
LNKA,
0x00
}
})
Name (AR02, Package (0x04)
{
Package (0x04)
{
0xFFFF,
0x00,
LNKB,
0x00
},

Package (0x04)
{
0xFFFF,
0x01,
LNKC,
0x00
},

Package (0x04)
{
0xFFFF,
0x02,
LNKD,
0x00
},

Package (0x04)
{
0xFFFF,
0x03,
LNKA,
0x00
}
})
Name (PR03, 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 (AR03, 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 (PR04, 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 (AR04, 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 (PR05, Package (0x04)
{
Package (0x04)
{
0xFFFF,
0x00,
LNKB,
0x00
},

Package (0x04)
{
0xFFFF,
0x01,
LNKC,
0x00
},

Package (0x04)
{
0xFFFF,
0x02,
LNKD,
0x00
},

Package (0x04)
{
0xFFFF,
0x03,
LNKA,
0x00
}
})
Name (AR05, Package (0x04)
{
Package (0x04)
{
0xFFFF,
0x00,
LNKB,
0x00
},

Package (0x04)
{
0xFFFF,
0x01,
LNKC,
0x00
},

Package (0x04)
{
0xFFFF,
0x02,
LNKD,
0x00
},

Package (0x04)
{
0xFFFF,
0x03,
LNKA,
0x00
}
})
Name (PR06, Package (0x04)
{
Package (0x04)
{
0xFFFF,
0x00,
LNKC,
0x00
},

Package (0x04)
{
0xFFFF,
0x01,
LNKD,
0x00
},

Package (0x04)
{
0xFFFF,
0x02,
LNKA,
0x00
},

Package (0x04)
{
0xFFFF,
0x03,
LNKB,
0x00
}
})
Name (AR06, Package (0x04)
{
Package (0x04)
{
0xFFFF,
0x00,
LNKC,
0x00
},

Package (0x04)
{
0xFFFF,
0x01,
LNKD,
0x00
},

Package (0x04)
{
0xFFFF,
0x02,
LNKA,
0x00
},

Package (0x04)
{
0xFFFF,
0x03,
LNKB,
0x00
}
})
Name (PR07, Package (0x04)
{
Package (0x04)
{
0xFFFF,
0x00,
LNKD,
0x00
},

Package (0x04)
{
0xFFFF,
0x01,
LNKA,
0x00
},

Package (0x04)
{
0xFFFF,
0x02,
LNKB,
0x00
},

Package (0x04)
{
0xFFFF,
0x03,
LNKC,
0x00
}
})
Name (AR07, Package (0x04)
{
Package (0x04)
{
0xFFFF,
0x00,
LNKD,
0x00
},

Package (0x04)
{
0xFFFF,
0x01,
LNKA,
0x00
},

Package (0x04)
{
0xFFFF,
0x02,
LNKB,
0x00
},

Package (0x04)
{
0xFFFF,
0x03,
LNKC,
0x00
}
})
Name (PRSA, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared) {5,7,10,14,15}
})
Alias (PRSA, PRSB)
Alias (PRSA, PRSC)
Alias (PRSA, PRSD)
Alias (PRSA, RSMB)
Alias (PRSA, RSB2)
Name (RSA1, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared) {11}
})
Alias (RSA1, RSA0)
Alias (PRSA, RSB0)
Alias (PRSA, RSAC)
Alias (PRSA, RSCI)
Alias (PRSA, RSC9)
Alias (PRSA, RSTA)
Name (RSIR, ResourceTemplate ()
{
Interrupt (ResourceConsumer, Level, ActiveLow, Shared)
{
0x00000010,
0x00000011,
0x00000012,
0x00000013,
}
})
Name (RSII, ResourceTemplate ()
{
Interrupt (ResourceConsumer, Level, ActiveLow, Shared)
{
0x00000014,
0x00000015,
0x00000016,
0x00000017,
}
})
Device (PCI0)
{
Name (_HID, EisaId ("PNP0A03"))
Name (_ADR, 0x00180000)
Method (^BN00, 0, NotSerialized)
{
Return (0x00)
}

Method (_BBN, 0, NotSerialized)
{
Return (BN00 ())
}

Name (_UID, 0x00)
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR00)
}

Return (PR00)
}

Device (NB2N)
{
Name (_ADR, 0x00)
Method (NPTS, 1, NotSerialized)
{
}

Method (NWAK, 1, NotSerialized)
{
}
}

Device (PCLK)
{
Name (_ADR, 0x02)
}

Device (SBRG)
{
Name (_ADR, 0x000A0000)
Method (SPTS, 1, NotSerialized)
{
Store (Arg0, \_SB.PCI0.IDE0.PTS0)
Store (\_SB.PCI0.IDE0.ID20, \_SB.PCI0.IDE0.SID0)
Store (\_SB.PCI0.IDE0.IDTS, \_SB.PCI0.IDE0.SID1)
Store (\_SB.PCI0.IDE0.IDTP, \_SB.PCI0.IDE0.SID2)
Store (\_SB.PCI0.IDE0.ID22, \_SB.PCI0.IDE0.SID3)
Store (\_SB.PCI0.IDE0.UMSS, \_SB.PCI0.IDE0.SID4)
Store (\_SB.PCI0.IDE0.UMSP, \_SB.PCI0.IDE0.SID5)
Store (One, PS1S)
Store (One, PS1E)
Store (One, \_SB.SLPS)
}

Method (SWAK, 1, NotSerialized)
{
Store (Zero, \_SB.SLPS)
Store (Zero, PS1E)
Store (0x02, S1CT)
Store (0x02, S3CT)
Store (0x02, S4CT)
Store (0x02, S5CT)
}

OperationRegion (SMIE, SystemIO, SCIO, 0x08)
Field (SMIE, ByteAcc, NoLock, Preserve)
{
, 15,
PS1S, 1,
, 31,
PS1E, 1,
Offset (0x08)
}

OperationRegion (SXCT, SystemIO, SCTL, 0x10)
Field (SXCT, ByteAcc, NoLock, Preserve)
{
S1CT, 2,
Offset (0x04),
S3CT, 2,
Offset (0x08),
S4CT, 2,
Offset (0x0C),
S5CT, 2,
Offset (0x10)
}

Scope (\_SB)
{
Name (SLPS, 0x00)
Device (SLPB)
{
Name (_HID, EisaId ("PNP0C0E"))
Method (_STA, 0, NotSerialized)
{
If (EXTS)
{
Return (0x0F)
}

Return (0x00)
}

Method (SBEV, 0, NotSerialized)
{
If (SLPS)
{
Notify (SLPB, 0x02)
}
Else
{
Notify (SLPB, 0x80)
}
}

Method (\_GPE._L01, 0, NotSerialized)
{
\_SB.SLPB.SBEV ()
}

Method (_PRW, 0, NotSerialized)
{
Return (Package (0x02)
{
0x01,
0x04
})
}
}

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

Name (_S1D, 0x01)
Name (NATA, Package (0x01)
{
0x00100000
})
Device (NVRB)
{
Name (_HID, "NVRAIDBUS")
Method (_STA, 0, NotSerialized)
{
If (And (CPB0, 0x01))
{
Return (0x0F)
}
Else
{
Return (0x00)
}
}

Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x04D2, 0x04D2, 0x01, 0x01)
})
}
}
}

Device (PIC)
{
Name (_HID, EisaId ("PNP0000"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x0020, 0x0020, 0x00, 0x02)
IO (Decode16, 0x00A0, 0x00A0, 0x00, 0x02)
IRQNoFlags () {2}
})
}

Device (DMAD)
{
Name (_HID, EisaId ("PNP0200"))
Name (_CRS, ResourceTemplate ()
{
DMA (Compatibility, BusMaster, Transfer8) {4}
IO (Decode16, 0x0000, 0x0000, 0x00, 0x10)
IO (Decode16, 0x0081, 0x0081, 0x00, 0x03)
IO (Decode16, 0x0087, 0x0087, 0x00, 0x01)
IO (Decode16, 0x0089, 0x0089, 0x00, 0x03)
IO (Decode16, 0x008F, 0x008F, 0x00, 0x01)
IO (Decode16, 0x00C0, 0x00C0, 0x00, 0x20)
})
}

Device (TMR)
{
Name (_HID, EisaId ("PNP0100"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x0040, 0x0040, 0x00, 0x04)
IRQNoFlags () {0}
})
}

Device (RTC0)
{
Name (_HID, EisaId ("PNP0B00"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x0070, 0x0070, 0x00, 0x02)
IRQNoFlags () {8}
})
}

Device (SPKR)
{
Name (_HID, EisaId ("PNP0800"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x0061, 0x0061, 0x00, 0x01)
})
}

Device (COPR)
{
Name (_HID, EisaId ("PNP0C04"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x00F0, 0x00F0, 0x00, 0x10)
IRQNoFlags () {13}
})
}

Device (FDC)
{
Name (_HID, EisaId ("PNP0700"))
Method (_FDE, 0, NotSerialized)
{
Name (FDEP, Package (0x05)
{
0x00,
0x00,
0x02,
0x02,
0x02
})
If (_STA ())
{
Store (0x01, Index (FDEP, 0x00))
}

Return (FDEP)
}

Method (_STA, 0, NotSerialized)
{
Return (DSTA (0x03))
}

Method (_DIS, 0, NotSerialized)
{
DCNT (0x03, 0x00)
}

Method (_CRS, 0, NotSerialized)
{
DCRS (0x03, 0x01)
Store (IRQM, IRQE)
Store (DMAM, DMAE)
Store (IO11, IO21)
Store (IO12, IO22)
Store (0x06, LEN2)
Add (IO21, 0x07, IO31)
Store (IO31, IO32)
Store (0x01, LEN3)
Return (CRS2)
}

Method (_SRS, 1, NotSerialized)
{
DSRS (Arg0, 0x03)
CreateWordField (Arg0, 0x11, IRQE)
CreateByteField (Arg0, 0x14, DMAE)
ENFG (CGLD (0x03))
If (IRQE)
{
FindSetRightBit (IRQE, Local0)
Subtract (Local0, 0x01, INTR)
}
Else
{
Store (0x00, INTR)
}

If (DMAE)
{
FindSetRightBit (DMAE, Local0)
Subtract (Local0, 0x01, DMCH)
}
Else
{
Store (0x04, DMCH)
}

EXFG ()
}

Name (_PRS, ResourceTemplate ()
{
StartDependentFn (0x00, 0x00)
{
IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
IRQNoFlags () {6}
DMA (Compatibility, NotBusMaster, Transfer8) {2}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
IRQNoFlags () {3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x0370, 0x0370, 0x01, 0x06)
IO (Decode16, 0x0377, 0x0377, 0x01, 0x01)
IRQNoFlags () {3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3}
}
EndDependentFn ()
})
}

Device (LPTE)
{
Method (_HID, 0, NotSerialized)
{
If (LPTM (0x02))
{
Return (0x0104D041)
}
Else
{
Return (0x0004D041)
}
}

Method (_STA, 0, NotSerialized)
{
Return (DSTA (0x02))
}

Method (_DIS, 0, NotSerialized)
{
DCNT (0x02, 0x00)
}

Method (_CRS, 0, NotSerialized)
{
DCRS (0x02, 0x01)
If (LPTM (0x02))
{
Store (IRQM, IRQE)
Store (DMAM, DMAE)
Store (IO11, IO21)
Store (IO12, IO22)
Store (LEN1, LEN2)
Add (IO21, 0x0400, IO31)
Store (IO31, IO32)
Store (LEN2, LEN3)
Return (CRS2)
}
Else
{
Return (CRS1)
}
}

Method (_SRS, 1, NotSerialized)
{
DSRS (Arg0, 0x02)
}

Method (_PRS, 0, NotSerialized)
{
If (LPTM (0x02))
{
Return (EPPR)
}
Else
{
Return (LPPR)
}
}

Name (LPPR, ResourceTemplate ()
{
StartDependentFnNoPri ()
{
IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
IRQNoFlags () {3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8) {}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
IRQNoFlags () {3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8) {}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
IRQNoFlags () {3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8) {}
}
EndDependentFn ()
})
Name (EPPR, ResourceTemplate ()
{
StartDependentFn (0x00, 0x00)
{
IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
IO (Decode16, 0x0778, 0x0778, 0x01, 0x08)
IRQNoFlags () {7}
DMA (Compatibility, NotBusMaster, Transfer8) {3}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x0378, 0x0378, 0x01, 0x08)
IO (Decode16, 0x0778, 0x0778, 0x01, 0x08)
IRQNoFlags () {3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x0278, 0x0278, 0x01, 0x08)
IO (Decode16, 0x0678, 0x0678, 0x01, 0x08)
IRQNoFlags () {3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3}
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04)
IO (Decode16, 0x07BC, 0x07BC, 0x01, 0x04)
IRQNoFlags () {3,4,5,6,7,10,11,12}
DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3}
}
EndDependentFn ()
})
}

Device (GAME)
{
Name (_HID, EisaId ("PNPB02F"))
Method (_STA, 0, NotSerialized)
{
Return (DSTA (0x08))
}

Method (_DIS, 0, NotSerialized)
{
DCNT (0x08, 0x00)
}

Name (GMCR, ResourceTemplate ()
{
IO (Decode16, 0x0000, 0x0000, 0x08, 0x08)
})
Method (_CRS, 0, NotSerialized)
{
CreateWordField (GMCR, 0x02, IOGL)
CreateWordField (GMCR, 0x04, IOGH)
ENFG (CGLD (0x08))
ShiftLeft (IOAH, 0x08, IOGL)
Or (IOAL, IOGL, IOGL)
Store (IOGL, IOGH)
CreateByteField (GMCR, 0x06, IOAL)
Store (0x01, IOAL)
EXFG ()
Return (GMCR)
}

Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x02, IO11)
ENFG (CGLD (0x08))
And (IO11, 0xFF, IOAL)
ShiftRight (IO11, 0x08, IOAH)
DCNT (0x08, 0x01)
EXFG ()
}

Name (_PRS, ResourceTemplate ()
{
StartDependentFn (0x00, 0x00)
{
IO (Decode16, 0x0201, 0x0201, 0x01, 0x08)
}
EndDependentFn ()
})
}

Device (MIDI)
{
Name (_HID, EisaId ("PNPB006"))
Method (_STA, 0, NotSerialized)
{
Return (DSTA (0x05))
}

Method (_DIS, 0, NotSerialized)
{
DCNT (0x05, 0x00)
}

Name (MDCR, ResourceTemplate ()
{
IO (Decode16, 0x0000, 0x0000, 0x01, 0x02)
IRQNoFlags () {5}
})
Method (_CRS, 0, NotSerialized)
{
CreateWordField (MDCR, 0x02, IOML)
CreateWordField (MDCR, 0x04, IOMH)
CreateWordField (MDCR, 0x09, IRQM)
ENFG (CGLD (0x05))
ShiftLeft (IOAH, 0x08, IOML)
Or (IOAL, IOML, IOML)
Store (IOML, IOMH)
If (INTR)
{
ShiftLeft (0x01, INTR, IRQM)
}
Else
{
Store (0x00, IRQM)
}

EXFG ()
Return (MDCR)
}

Method (_SRS, 1, NotSerialized)
{
CreateWordField (Arg0, 0x02, IO11)
CreateWordField (Arg0, 0x09, IRQM)
ENFG (CGLD (0x05))
And (IO11, 0xFF, IOAL)
ShiftRight (IO11, 0x08, IOAH)
If (IRQM)
{
FindSetRightBit (IRQM, Local0)
Subtract (Local0, 0x01, INTR)
}
Else
{
Store (0x00, INTR)
}

DCNT (0x05, 0x01)
EXFG ()
}

Name (_PRS, ResourceTemplate ()
{
StartDependentFnNoPri ()
{
IO (Decode16, 0x0300, 0x0300, 0x01, 0x02)
}
StartDependentFnNoPri ()
{
IO (Decode16, 0x0330, 0x0330, 0x01, 0x02)
}
EndDependentFn ()
IRQNoFlags () {5,7,9,10,11}
})
}

Device (RMSC)
{
Name (_HID, EisaId ("PNP0C02"))
Name (_UID, 0x10)
Name (CRS, ResourceTemplate ()
{
IO (Decode16, 0x0010, 0x0010, 0x00, 0x10)
IO (Decode16, 0x0022, 0x0022, 0x00, 0x1E)
IO (Decode16, 0x0044, 0x0044, 0x00, 0x1C)
IO (Decode16, 0x0062, 0x0062, 0x00, 0x02)
IO (Decode16, 0x0065, 0x0065, 0x00, 0x0B)
IO (Decode16, 0x0072, 0x0072, 0x00, 0x0E)
IO (Decode16, 0x0080, 0x0080, 0x00, 0x01)
IO (Decode16, 0x0084, 0x0084, 0x00, 0x03)
IO (Decode16, 0x0088, 0x0088, 0x00, 0x01)
IO (Decode16, 0x008C, 0x008C, 0x00, 0x03)
IO (Decode16, 0x0090, 0x0090, 0x00, 0x10)
IO (Decode16, 0x00A2, 0x00A2, 0x00, 0x1E)
IO (Decode16, 0x00E0, 0x00E0, 0x00, 0x10)
IO (Decode16, 0x04D0, 0x04D0, 0x00, 0x02)
IO (Decode16, 0x0800, 0x0800, 0x00, 0x10)
IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
IO (Decode16, 0x0000, 0x0000, 0x00, 0x00)
Memory32Fixed (ReadOnly, 0xFEE01000, 0x000FF000)
Memory32Fixed (ReadOnly, 0xFEFFF000, 0x00001000)
Memory32Fixed (ReadWrite, 0xFFB00000, 0x004F0000)
Memory32Fixed (ReadOnly, 0xFFF00000, 0x00100000)
})
Method (_CRS, 0, NotSerialized)
{
CreateWordField (CRS, 0x7A, GP00)
CreateWordField (CRS, 0x7C, GP01)
CreateByteField (CRS, 0x7F, GP0L)
CreateWordField (CRS, 0x82, GP10)
CreateWordField (CRS, 0x84, GP11)
CreateByteField (CRS, 0x87, GP1L)
Store (PMBS, GP00)
Store (PMBS, GP01)
If (LNot (LLess (PMLN, 0x0100)))
{
ShiftRight (PMLN, 0x01, GP0L)
Add (GP00, GP0L, GP10)
Add (GP01, GP0L, GP11)
Subtract (PMLN, GP0L, GP1L)
}
Else
{
Store (PMLN, GP0L)
}

If (SCBS)
{
CreateWordField (CRS, 0x8A, SC00)
CreateWordField (CRS, 0x8C, SC01)
CreateByteField (CRS, 0x8F, SC0L)
CreateWordField (CRS, 0x92, SC10)
CreateWordField (CRS, 0x94, SC11)
CreateByteField (CRS, 0x97, SC1L)
Store (SCBS, SC00)
Store (SCBS, SC01)
If (LNot (LLess (SCLN, 0x0100)))
{
ShiftRight (SCLN, 0x01, SC0L)
Add (SC00, SC0L, SC10)
Add (SC01, SC0L, SC11)
Subtract (SCLN, SC0L, SC1L)
}
Else
{
Store (SCLN, SC0L)
}
}

If (ACBS)
{
CreateWordField (CRS, 0x9A, AC00)
CreateWordField (CRS, 0x9C, AC01)
CreateByteField (CRS, 0x9F, AC0L)
CreateWordField (CRS, 0xA2, AC10)
CreateWordField (CRS, 0xA4, AC11)
CreateByteField (CRS, 0xA7, AC1L)
Store (ACBS, AC00)
Store (ACBS, AC01)
If (LNot (LLess (ACLN, 0x0100)))
{
ShiftRight (ACLN, 0x01, AC0L)
Add (AC00, AC0L, AC10)
Add (AC01, AC0L, AC11)
Subtract (ACLN, AC0L, AC1L)
}
Else
{
Store (ACLN, AC0L)
}
}

Return (CRS)
}
}

Scope (\_SB.PCI0.SBRG)
{
Device (ASOC)
{
Name (_HID, "ATK0110")
Name (_UID, 0x01010110)
Method (_STA, 0, NotSerialized)
{
Return (0x0F)
}
}
}

OperationRegion (\_SB.PCI0.SBRG.LPDC, PCI_Config, 0xA0, 0x06)
Field (\_SB.PCI0.SBRG.LPDC, ByteAcc, NoLock, Preserve)
{
S3F8, 1,
S2F8, 1,
, 3,
S2E8, 1,
, 1,
S3E8, 1,
, 4,
M300, 1,
, 2,
M330, 1,
, 4,
FDC0, 1,
Offset (0x03),
P378, 1,
P278, 1,
P3BC, 1,
Offset (0x04),
G200, 8,
G208, 8
}

Method (RRIO, 4, NotSerialized)
{
If (LOr (LEqual (Arg0, 0x00), LEqual (Arg0, 0x01)))
{
If (LEqual (Arg2, 0x03F8))
{
Store (Arg1, S3F8)
}

If (LEqual (Arg2, 0x02F8))
{
Store (Arg1, S2F8)
}

If (LEqual (Arg2, 0x03E8))
{
Store (Arg1, S3E8)
}

If (LEqual (Arg2, 0x02E8))
{
Store (Arg1, S2E8)
}
}

If (LEqual (Arg0, 0x02))
{
If (LEqual (Arg2, 0x0378))
{
Store (Arg1, P378)
}

If (LEqual (Arg2, 0x0278))
{
Store (Arg1, P278)
}

If (LEqual (Arg2, 0x03BC))
{
Store (Arg1, P3BC)
}
}

If (LEqual (Arg0, 0x03))
{
Store (Arg1, FDC0)
}

If (LEqual (Arg0, 0x05))
{
If (LEqual (Arg2, 0x0330))
{
Store (Arg1, M330)
}

If (LEqual (Arg2, 0x0300))
{
Store (Arg1, M300)
}
}

If (LEqual (Arg0, 0x08))
{
Store (Zero, Local0)
If (Arg1)
{
Store (0xFF, Local0)
}

If (LEqual (Arg2, 0x0200))
{
Store (Local0, G200)
}

If (LEqual (Arg2, 0x0208))
{
Store (Local0, G208)
}
}
}

Method (RDMA, 3, NotSerialized)
{
}

Scope (\)
{
OperationRegion (\RAMW, SystemMemory, Subtract (TOPM, 0x00010000), 0x00010000)
Field (\RAMW, ByteAcc, NoLock, Preserve)
{
PAR0, 32,
PAR1, 32
}

OperationRegion (IOB2, SystemIO, 0x082E, 0x02)
Field (IOB2, ByteAcc, NoLock, Preserve)
{
SMIC, 8,
SMIS, 8
}

Method (ISMI, 1, Serialized)
{
Store (Arg0, SMIC)
}

Method (GNVS, 1, Serialized)
{
Store (Arg0, PAR0)
ISMI (0x70)
Return (PAR1)
}

Method (SNVS, 2, Serialized)
{
Store (Arg0, PAR0)
Store (Arg1, PAR1)
ISMI (0x71)
}
}

Scope (\)
{
Field (\RAMW, ByteAcc, NoLock, Preserve)
{
Offset (0x08),
ADSP, 32,
FSBF, 16,
FVCM, 8,
AITU, 8,
FIDV, 8,
VIDV, 8,
OCPI, 8,
NOST, 8,
NOS1, 8,
DDRV, 8,
CPUS, 1,
CQFS, 3,
CQFT, 4,
AIDI, 8,
OVID, 8,
CCAQ, 8,
MAXF, 8,
MAXV, 8,
CURF, 8,
CURV, 8,
PCEF, 8
}
}

OperationRegion (\_SB.PCI0.PCLK.MNCK, PCI_Config, 0x44, 0x04)
Field (\_SB.PCI0.PCLK.MNCK, ByteAcc, NoLock, Preserve)
{
MMNN, 16,
, 14,
MNEN, 1,
Offset (0x04)
}

OperationRegion (\_SB.PCI0.PCLK.SPRD, PCI_Config, 0x54, 0x04)
Field (\_SB.PCI0.PCLK.SPRD, ByteAcc, NoLock, Preserve)
{
SPRE, 1,
Offset (0x04)
}

OperationRegion (QDRV, SystemIO, IOGB, 0x03)
Field (QDRV, ByteAcc, NoLock, Preserve)
{
Offset (0x02),
, 1,
QDDR, 4,
Offset (0x03)
}

OperationRegion (DEB0, SystemIO, 0x1080, 0x02)
Field (DEB0, ByteAcc, NoLock, Preserve)
{
DB16, 16
}

Name (DDRT, Package (0x0A)
{
0x0D,
0x0F,
0x0E,
0x0D,
0x0B,
0x07,
0x09,
0x08,
0x03,
0x02
})
Scope (\_SB.PCI0.SBRG.ASOC)
{
Name (MBIF, Package (0x08)
{
0x01,
"A8N32-SLI",
0x01,
0x01,
0x02,
0x00,
0x00,
0x00
})
Method (ASIF, 0, NotSerialized)
{
Return (MBIF)
}

Name (OC01, Package (0x06)
{
0x01010000,
"CPU FSB",
0x4E20,
0x9C40,
0xC9,
0x00010003
})
Name (OC02, Package (0x06)
{
0x01060001,
"CPU Multiplier",
0x04,
0x19,
0x16,
0x00010000
})
Name (OC03, Package (0x06)
{
0x01060002,
"FID VID Mode",
0x00,
0x01,
0x01,
0x00010000
})
Name (OC04, Package (0x06)
{
0x07010003,
"PCI Express",
0x2710,
0x332C,
0x65,
0x00
})
Name (OC05, Package (0x06)
{
0x05050004,
"OC Profile",
0x00,
0x04,
0x05,
0x00010001
})
Name (OC06, Package (0x06)
{
0x08050005,
"Turbo NOS",
0x00,
0x04,
0x05,
0x00010000
})
Name (OC07, Package (0x06)
{
0x08060006,
"NOS MODE",
0x00,
0x03,
0x04,
0x00
})
Name (OC08, Package (0x06)
{
0x04060003,
"CPU Q-Fan Control",
0x00,
0x01,
0x01,
0x00010003
})
Name (OC09, Package (0x06)
{
0x01020008,
"CPU VID",
0x1F40,
0x3D09,
0x3D,
0x00010000
})
Name (OC0A, Package (0x06)
{
0x02020009,
"DRAM Voltage",
0x0A28,
0x0BB8,
0x09,
0x00010003
})
Name (OC0B, Package (0x06)
{
0x0906000C,
"AI Overclock Tuner",
0x00,
0x04,
0x05,
0x00010003
})
Name (OC0C, Package (0x06)
{
0x0106000B,
"Cool&Quiet Support",
0x00,
0x01,
0x02,
0x00010003
})
Name (OBUF, Package (0x0C)
{
OC01,
OC02,
OC03,
OC04,
OC05,
OC06,
OC07,
OC08,
OC09,
OC0A,
OC0B,
OC0C
})
Name (OCVO, 0x00)
Method (OCIF, 0, NotSerialized)
{
Store (ShiftLeft (MAXV, 0x01), Local1)
Subtract (0x3D09, Multiply (Local1, 0x7D), Index (OC09, 0x03))
Subtract (0x3D, Local1, Index (OC09, 0x04))
Return (OBUF)
}

Name (TEM1, Package (0x11)
{
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00
})
Method (TEMP, 1, NotSerialized)
{
Store (FSBF, Index (TEM1, 0x00))
Store (FVCM, Index (TEM1, 0x01))
Store (AITU, Index (TEM1, 0x02))
Store (FIDV, Index (TEM1, 0x03))
Store (VIDV, Index (TEM1, 0x04))
Store (OCPI, Index (TEM1, 0x05))
Store (NOST, Index (TEM1, 0x06))
Store (NOS1, Index (TEM1, 0x07))
Store (DDRV, Index (TEM1, 0x08))
Store (CPUS, Index (TEM1, 0x09))
Store (CQFS, Index (TEM1, 0x0A))
Store (CQFT, Index (TEM1, 0x0B))
Store (AIDI, Index (TEM1, 0x0C))
Store (OVID, Index (TEM1, 0x0D))
Store (CCAQ, Index (TEM1, 0x0E))
Store (MAXF, Index (TEM1, 0x0F))
Store (MAXV, Index (TEM1, 0x10))
Return (TEM1)
}

Method (OCOP, 1, NotSerialized)
{
Store (DerefOf (Index (OC01, 0x00)), Local1)
If (LEqual (Arg0, Local1))
{
Store (FSBF, Local0)
Multiply (Local0, 0x64, Local1)
Store (Local1, Index (CPUO, 0x01))
Subtract (Local0, 0xC8, Local2)
Store (Local2, Index (CPUO, 0x02))
Return (CPUO)
}

Store (DerefOf (Index (OC02, 0x00)), Local1)
If (LEqual (Arg0, Local1))
{
Store (Add (ShiftRight (CURF, 0x01), 0x04), Index (CPUM, 0x01))
Store (Add (ShiftRight (CURF, 0x01), 0x04), Index (CPUM, 0x02))
If (LEqual (FVCM, 0x01))
{
Store (0x00010000, Index (OC02, 0x05))
Store (0x00, Index (CPUM, 0x03))
}
Else
{
Store (0x00010000, Index (OC02, 0x05))
Store (0x00, Index (CPUM, 0x03))
}

Store (Add (ShiftRight (MAXF, 0x01), 0x04), Index (OC02, 0x03))
Add (0x01, DerefOf (Index (OC02, 0x03)), Local0)
Store (DerefOf (Index (OC02, 0x02)), Local1)
Subtract (Local0, Local1, Index (OC02, 0x04))
Return (CPUM)
}

Store (DerefOf (Index (OC03, 0x00)), Local1)
If (LEqual (Arg0, Local1))
{
Store (FVCM, Index (CPFV, 0x02))
If (LEqual (CCAQ, 0x00))
{
Store (0x00010000, Index (OC03, 0x05))
Store (0x00, Index (CPFV, 0x03))
}
Else
{
Store (0x00010003, Index (OC03, 0x05))
Store (0x01, Index (CPFV, 0x03))
}

Return (CPFV)
}

Store (DerefOf (Index (OC04, 0x00)), Local1)
If (LEqual (Arg0, Local1))
{
Return (PCIV)
}

Store (DerefOf (Index (OC05, 0x00)), Local1)
If (LEqual (Arg0, Local1))
{
Store (OCPI, Index (OCPR, 0x02))
If (LNot (LGreater (AITU, 0x03)))
{
Store (0x00010003, Index (OC05, 0x05))
Store (0x01, Index (OCPR, 0x03))
}
Else
{
Store (0x00010003, Index (OC05, 0x05))
Store (0x01, Index (OCPR, 0x03))
}

Return (OCPR)
}

Store (DerefOf (Index (OC06, 0x00)), Local1)
If (LEqual (Arg0, Local1))
{
If (LEqual (AITU, 0x04))
{
Store (NOS1, Index (NOSP, 0x02))
}
Else
{
Store (0x00, Index (NOSP, 0x02))
}

Return (NOSP)
}

Store (DerefOf (Index (OC07, 0x00)), Local1)
If (LEqual (Arg0, Local1))
{
Store (NOST, Index (NOSM, 0x02))
Return (NOSM)
}

Store (DerefOf (Index (OC08, 0x00)), Local1)
If (LEqual (Arg0, Local1))
{
Store (CPUS, Index (FANB, 0x02))
Return (FANB)
}

Store (DerefOf (Index (OC09, 0x00)), Local1)
If (LEqual (Arg0, Local1))
{
Store (Subtract (CURV, MAXV), Local2)
ShiftLeft (Local2, 0x01, Local2)
And (OVID, 0x01, Local3)
Or (Local2, Local3, Local2)
Store (Local2, Index (CPUV, 0x02))
Store (ShiftLeft (MAXV, 0x01), Local2)
Subtract (0x3D09, Multiply (Local2, 0x7D), Index (OC09, 0x03))
Subtract (0x3D, Local2, Index (OC09, 0x04))
Return (CPUV)
}

Store (DerefOf (Index (OC0A, 0x00)), Local1)
If (LEqual (Arg0, Local1))
{
Store (DDRV, Index (DDVO, 0x02))
Return (DDVO)
}

Store (DerefOf (Index (OC0B, 0x00)), Local1)
If (LEqual (Arg0, Local1))
{
Store (AITU, Index (AIOT, 0x02))
Return (AIOT)
}

Store (DerefOf (Index (OC0C, 0x00)), Local1)
If (LEqual (Arg0, Local1))
{
Store (CCAQ, Index (ACAQ, 0x02))
Return (ACAQ)
}
}

Name (CPUO, Package (0x04)
{
0x01010000,
0x4E20,
0x00,
0x01
})
Name (CPUM, Package (0x04)
{
0x01060001,
0x00,
0x00,
0x00
})
Name (CPFV, Package (0x06)
{
0x01060002,
0x00,
0x00,
0x00,
"Auto",
"Manual"
})
Name (PCIV, Package (0x04)
{
0x07010003,
0x2710,
0x64,
0x00
})
Name (OCPR, Package (0x09)
{
0x05050004,
0x00,
0x00,
0x00,
"Overclock 1%",
"Overclock 3%",
"Overclock 5%",
"Overclock 8%",
"Overclock 10%"
})
Name (NOSP, Package (0x09)
{
0x08050005,
0x00,
0x00,
0x01,
"Overclock 1%",
"Overclock 3%",
"Overclock 5%",
"Overclock 8%",
"Overclock 10%"
})
Name (NOSM, Package (0x08)
{
0x08060006,
0x00,
0x00,
0x00,
"Auto",
"Standard%",
"Sensitive",
"Heavy Load"
})
Name (FANB, Package (0x06)
{
0x04040007,
0x00,
0x00,
0x01,
"Disabled",
"Enabled"
})
Name (CPUV, Package (0x04)
{
0x01020008,
0x00,
0x00,
0x01
})
Name (DDVO, Package (0x0E)
{
0x02020009,
0x00,
0x00,
0x01,
"Auto",
"2.60V",
"2.65V",
"2.70V",
"2.75V",
"2.80V",
"2.85V",
"2.90V",
"2.95V",
"3.00V"
})
Name (AIOT, Package (0x09)
{
0x0906000C,
0x00,
0x00,
0x01,
"Manual",
"Auto",
"Standard",
"OverClock Profile",
"AI NOS"
})
Name (ACAQ, Package (0x06)
{
0x0106000B,
0x00,
0x00,
0x00,
"Enabled",
"Disabled"
})
Name (OCST, Package (0x0C)
{
Package (0x02)
{
0x01010000,
0x01
},

Package (0x02)
{
0x01060001,
0x01
},

Package (0x02)
{
0x01060002,
0x01
},

Package (0x02)
{
0x07010003,
0x01
},

Package (0x02)
{
0x05050004,
0x01
},

Package (0x02)
{
0x08050005,
0x01
},

Package (0x02)
{
0x08060006,
0x01
},

Package (0x02)
{
0x04060003,
0x01
},

Package (0x02)
{
0x01020008,
0x01
},

Package (0x02)
{
0x02020009,
0x01
},

Package (0x02)
{
0x0906000C,
0x01
},

Package (0x02)
{
0x0106000B,
0x01
}
})
Method (PROC, 3, NotSerialized)
{
Store (DerefOf (Index (OC01, 0x00)), Local1)
If (LEqual (Arg0, Local1))
{
Store (Arg1, Local2)
Add (Local2, 0xC8, Local2)
If (LEqual (Arg2, 0x00))
{
If (LNot (LGreater (AITU, 0x03)))
{
If (LNot (LLess (FSBF, Local2)))
{
Subtract (FSBF, Local2, Local0)
}
Else
{
Subtract (Local2, FSBF, Local0)
}

If (LGreater (Local0, 0x0A))
{
Store (0x03, Index (DerefOf (Index (OCST, 0x00)), 0x01))
Return (0x03)
}

Store (0x01, Index (DerefOf (Index (OCST, 0x00)), 0x01))
Return (0x01)
}
Else
{
Store (0x03, Index (DerefOf (Index (OCST, 0x00)), 0x01))
Return (0x03)
}
}

If (LNot (LLess (FSBF, Local2)))
{
Subtract (FSBF, Local2, Local0)
}
Else
{
Subtract (Local2, FSBF, Local0)
}

Store (Local2, FSBF)
If (LNot (LGreater (AITU, 0x03)))
{
Store (0x00, SMIS)
Store (0xAB, SMIC)
Store (0x00, AITU)
Store (0x02, SMIS)
Store (0xAB, SMIC)
If (LGreater (Local0, 0x0A))
{
Store (0x03, Index (DerefOf (Index (OCST, 0x00)), 0x01))
Return (0x03)
}

Store (0xAA, SMIS)
Store (0xAB, SMIC)
Store (0x01, Index (DerefOf (Index (OCST, 0x00)), 0x01))
Return (0x01)
}

Store (0x00, SMIS)
Store (0xAB, SMIC)
Store (0x00, AITU)
Store (0x02, SMIS)
Store (0xAB, SMIC)
Store (0x03, Index (DerefOf (Index (OCST, 0x00)), 0x01))
Return (0x03)
}

Store (DerefOf (Index (OC02, 0x00)), Local1)
If (LEqual (Arg0, Local1))
{
If (LEqual (Arg2, 0x00))
{
Store (0x03, Index (DerefOf (Index (OCST, 0x01)), 0x01))
Return (0x03)
}

If (LEqual (CCQA, 0x00))
{
Store (0x01, CCAQ)
Store (0x0C, SMIS)
Store (0xAB, SMIC)
Store (0x01, FVCM)
Store (0x01, SMIS)
Store (0xAB, SMIC)
Store (ShiftLeft (Subtract (Arg1, 0x04), 0x01), FIDV)
Store (0x03, SMIS)
Store (0xAB, SMIC)
Store (0x03, Index (DerefOf (Index (OCST, 0x01)), 0x01))
Return (0x03)
}

If (LEqual (FVCM, 0x00))
{
Store (0x01, FVCM)
Store (0x01, SMIS)
Store (0xAB, SMIC)
Store (ShiftLeft (Subtract (Arg1, 0x04), 0x01), FIDV)
Store (0x03, SMIS)
Store (0xAB, SMIC)
Store (0x03, Index (DerefOf (Index (OCST, 0x01)), 0x01))
Return (0x03)
}

Store (ShiftLeft (Subtract (Arg1, 0x04), 0x01), FIDV)
Store (0x03, SMIS)
Store (0xAB, SMIC)
Store (0x03, Index (DerefOf (Index (OCST, 0x01)), 0x01))
Return (0x03)
}

Store (DerefOf (Index (OC03, 0x00)), Local1)
If (LEqual (Arg0, Local1))
{
If (LEqual (Arg2, 0x00))
{
Store (0x03, Index (DerefOf (Index (OCST, 0x02)), 0x01))
Return (0x03)
}

If (LEqual (CCAQ, 0x00))
{
Store (0x01, CCAQ)
Store (0x0C, SMIS)
Store (0xAB, SMIC)
Store (Arg1, FVCM)
Store (0x01, SMIS)
Store (0xAB, SMIC)
Store (0x03, Index (DerefOf (Index (OCST, 0x02)), 0x01))
Return (0x03)
}

Store (Arg1, FVCM)
Store (0x01, SMIS)
Store (0xAB, SMIC)
Store (0x03, Index (DerefOf (Index (OCST, 0x02)), 0x01))
Return (0x03)
}

Store (DerefOf (Index (OC04, 0x00)), Local1)
If (LEqual (Arg0, Local1))
{
Store (0x03, Index (DerefOf (Index (OCST, 0x03)), 0x01))
Return (0x03)
}

Store (DerefOf (Index (OC05, 0x00)), Local1)
If (LEqual (Arg0, Local1))
{
If (LEqual (Arg2, 0x00))
{
If (LNot (LGreater (AITU, 0x03)))
{
Store (0x01, Index (DerefOf (Index (OCST, 0x04)), 0x01))
Return (0x01)
}

Store (0x03, Index (DerefOf (Index (OCST, 0x04)), 0x01))
Return (0x03)
}

If (LNot (LGreater (AITU, 0x03)))
{
Store (0x03, AITU)
Store (0x02, SMIS)
Store (0xAB, SMIC)
Store (Arg1, OCPI)
Store (0x05, SMIS)
Store (0xAB, SMIC)
If (LEqual (Arg1, 0x00))
{
Store (0xCA, FSBF)
Store (0x00, SMIS)
Store (0xAB, SMIC)
}

If (LEqual (Arg1, 0x01))
{
Store (0xCE, FSBF)
Store (0x00, SMIS)
Store (0xAB, SMIC)
}

If (LEqual (Arg1, 0x02))
{
Store (0xD2, FSBF)
Store (0x00, SMIS)
Store (0xAB, SMIC)
}

If (LEqual (Arg1, 0x03))
{
Store (0xD8, FSBF)
Store (0x00, SMIS)
Store (0xAB, SMIC)
}

If (LEqual (Arg1, 0x04))
{
Store (0xDC, FSBF)
Store (0x00, SMIS)
Store (0xAB, SMIC)
}

Store (0xAA, SMIS)
Store (0xAB, SMIC)
Store (0x01, Index (DerefOf (Index (OCST, 0x04)), 0x01))
Return (0x01)
}

Store (0x03, AITU)
Store (0x02, SMIS)
Store (0xAB, SMIC)
Store (Arg1, OCPI)
Store (0x05, SMIS)
Store (0xAB, SMIC)
Store (0x03, Index (DerefOf (Index (OCST, 0x04)), 0x01))
Return (0x03)
}

Store (DerefOf (Index (OC06, 0x00)), Local1)
If (LEqual (Arg0, Local1))
{
If (LEqual (Arg2, 0x00))
{
If (LNot (LGreater (AITU, 0x03)))
{
Store (0x03, Index (DerefOf (Index (OCST, 0x05)), 0x01))
Return (0x03)
}

If (LEqual (Arg1, 0x00))
{
Store (0x03, Index (DerefOf (Index (OCST, 0x05)), 0x01))
Return (0x03)
}

Store (0x01, Index (DerefOf (Index (OCST, 0x05)), 0x01))
Return (0x01)
}

If (LNot (LGreater (AITU, 0x03)))
{
Store (0x04, AITU)
Store (0x02, SMIS)
Store (0xAB, SMIC)
Store (Arg1, NOS1)
Store (0x07, SMIS)
Store (0xAB, SMIC)
Store (0x03, Index (DerefOf (Index (OCST, 0x05)), 0x01))
Return (0x03)
}

If (LEqual (Arg1, 0x00))
{
Store (0x01, AITU)
Store (0x02, SMIS)
Store (0xAB, SMIC)
Store (Arg1, NOS1)
Store (0x07, SMIS)
Store (0xAB, SMIC)
Store (0x03, Index (DerefOf (Index (OCST, 0x05)), 0x01))
Return (0x03)
}

Store (Arg1, NOS1)
Store (0x07, SMIS)
Store (0xAB, SMIC)
Store (0x01, Index (DerefOf (Index (OCST, 0x05)), 0x01))
Return (0x01)
}

Store (DerefOf (Index (OC07, 0x00)), Local1)
If (LEqual (Arg0, Local1))
{
Store (0x01, Index (DerefOf (Index (OCST, 0x06)), 0x01))
Return (0x01)
}

Store (DerefOf (Index (OC08, 0x00)), Local1)
If (LEqual (Arg0, Local1))
{
If (LEqual (Arg2, 0x00))
{
Store (0x01, Index (DerefOf (Index (OCST, 0x07)), 0x01))
Return (0x01)
}

Store (Arg1, CPUS)
Store (0x09, SMIS)
Store (0xAB, SMIC)
Store (0xBB, SMIS)
Store (0xAB, SMIC)
Store (0x01, Index (DerefOf (Index (OCST, 0x07)), 0x01))
Return (0x01)
}

Store (DerefOf (Index (OC09, 0x00)), Local1)
If (LEqual (Arg0, Local1))
{
If (LEqual (Arg2, 0x00))
{
Store (0x03, Index (DerefOf (Index (OCST, 0x08)), 0x01))
Return (0x03)
}

Store (CURF, FIDV)
Store (0x03, SMIS)
Store (0xAB, SMIC)
Store (0x01, CCAQ)
Store (0x0C, SMIS)
Store (0xAB, SMIC)
Store (0x01, FVCM)
Store (0x01, SMIS)
Store (0xAB, SMIC)
Store (Add (Arg1, ShiftLeft (MAXV, 0x01)), OVID)
Store (0x0B, SMIS)
Store (0xAB, SMIC)
Store (ShiftRight (Add (Arg1, ShiftLeft (MAXV, 0x01)), 0x01), VIDV)
Store (0x04, SMIS)
Store (0xAB, SMIC)
Store (0x03, Index (DerefOf (Index (OCST, 0x08)), 0x01))
Return (0x03)
}

Store (DerefOf (Index (OC0A, 0x00)), Local1)
If (LEqual (Arg0, Local1))
{
If (LEqual (Arg2, 0x00))
{
Store (0x01, Index (DerefOf (Index (OCST, 0x09)), 0x01))
Return (0x01)
}

If (LEqual (Arg1, DDRV))
{
Store (0x01, Index (DerefOf (Index (OCST, 0x09)), 0x01))
Return (0x01)
}

Store (Arg1, DDRV)
Store (0x08, SMIS)
Store (0xAB, SMIC)
Store (DerefOf (Index (DDRT, Arg1)), QDDR)
Store (0x01, Index (DerefOf (Index (OCST, 0x09)), 0x01))
Return (0x01)
}

Store (DerefOf (Index (OC0B, 0x00)), Local1)
If (LEqual (Arg0, Local1))
{
If (LEqual (Arg2, 0x00))
{
If (LNot (LEqual (Arg1, AITU)))
{
Store (0x03, Index (DerefOf (Index (OCST, 0x0A)), 0x01))
Return (0x03)
}

Store (0x01, Index (DerefOf (Index (OCST, 0x0A)), 0x01))
Return (0x01)
}

If (LNot (LEqual (Arg1, AITU)))
{
Store (Arg1, AITU)
Store (0x02, SMIS)
Store (0xAB, SMIC)
Store (0x03, Index (DerefOf (Index (OCST, 0x0A)), 0x01))
Return (0x03)
}

Store (Arg1, AITU)
Store (0x02, SMIS)
Store (0xAB, SMIC)
Store (0x01, Index (DerefOf (Index (OCST, 0x0A)), 0x01))
Return (0x01)
}

Store (DerefOf (Index (OC0C, 0x00)), Local1)
If (LEqual (Arg0, Local1))
{
If (LEqual (Arg2, 0x00))
{
If (LEqual (Arg1, CCAQ))
{
Store (0x01, Index (DerefOf (Index (OCST, 0x0B)), 0x01))
Return (0x01)
}

Store (0x03, Index (DerefOf (Index (OCST, 0x0B)), 0x01))
Return (0x03)
}

If (LEqual (Arg1, CCAQ))
{
Store (0x01, Index (DerefOf (Index (OCST, 0x0B)), 0x01))
Return (0x01)
}

Store (Arg1, CCAQ)
Store (0x09, SMIS)
Store (0xAB, SMIC)
Store (0x03, Index (DerefOf (Index (OCST, 0x0B)), 0x01))
Return (0x03)
}
}

Method (GETM, 1, NotSerialized)
{
Multiply (Add (Arg0, 0x01), 0x03E8, Local0)
Store (0xFFFF, Local6)
Store (0x10, Local1)
While (LNot (LGreater (Local1, 0x80)))
{
Store (0x10, Local2)
While (LNot (LGreater (Local2, 0x80)))
{
Store (Divide (Multiply (Local2, 0x0005E9AC), Multiply (Local1, 0x04), ), Local3)
Multiply (Local3, 0x02, Local3)
If (LGreater (Local3, Local0))
{
Store (Subtract (Local3, Local0), Local3)
}
Else
{
Store (Subtract (Local0, Local3), Local3)
}

If (LLess (Local3, Local6))
{
Store (Local1, Local4)
Store (Local2, Local5)
Store (Local3, Local6)
}

Increment (Local2)
}

Increment (Local1)
}

ShiftLeft (Local5, 0x08, Local1)
Or (Local1, Local4, Local6)
And (Local6, 0xFFFF, Local6)
Return (Local6)
}
}

Device (\_SB.PCI0.PCIE)
{
Name (_HID, EisaId ("PNP0C02"))
Name (_UID, 0x11)
Name (CRS, ResourceTemplate ()
{
Memory32Fixed (ReadOnly, 0xE0000000, 0x10000000)
})
Method (_CRS, 0, NotSerialized)
{
CreateDWordField (CRS, 0x04, BAS1)
CreateDWordField (CRS, 0x08, LEN1)
Store (\PCIB, BAS1)
Store (\PCIL, LEN1)
Return (CRS)
}
}

Scope (\_PR)
{
Processor (CPU1, 0x01, 0x00005010, 0x06)
{
Name (_PCT, Package (0x02)
{
ResourceTemplate ()
{
Register (FFixedHW, 0x00, 0x00, 0x0000000000000000)
},

ResourceTemplate ()
{
Register (FFixedHW, 0x00, 0x00, 0x0000000000000000)
}
})
Name (_PSS, Package (0x04)
{
Package (0x06)
{
0x00000898,
0x000105B8,
0x00000064,
0x00000007,
0xE020298E,
0x0000018E
},

Package (0x06)
{
0x000007D0,
0x0000DAC0,
0x00000064,
0x00000007,
0xE0202A0C,
0x0000020C
},

Package (0x06)
{
0x00000708,
0x0000B3B0,
0x00000064,
0x00000007,
0xE0202A8A,
0x0000028A
},

Package (0x06)
{
0x000003E8,
0x00004E20,
0x00000064,
0x00000007,
0xE0202C82,
0x00000482
}
})
Name (PSXG, Buffer (0x18)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
})
Name (PSXF, Buffer (0x18)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
})
Name (PSXE, Buffer (0x18)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
})
Name (PSXD, Buffer (0x18)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
})
Name (PSXC, Buffer (0x18)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
})
Name (PSXB, Buffer (0x18)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
})
Method (_PPC, 0, NotSerialized)
{
Return (0x00)
}
}

Processor (CPU2, 0x02, 0x00000000, 0x00)
{
Name (APCT, Package (0x02)
{
ResourceTemplate ()
{
Register (FFixedHW, 0x00, 0x00, 0x0000000000000000)
},

ResourceTemplate ()
{
Register (FFixedHW, 0x00, 0x00, 0x0000000000000000)
}
})
Name (APSS, Package (0x0A)
{
Package (0x06)
{
0x09999999,
0x00099999,
0x00999999,
0x00999999,
0x99999999,
0x99999999
},

Package (0x06)
{
0x09999999,
0x00099999,
0x00999999,
0x00999999,
0x99999999,
0x99999999
},

Package (0x06)
{
0x09999999,
0x00099999,
0x00999999,
0x00999999,
0x99999999,
0x99999999
},

Package (0x06)
{
0x09999999,
0x00099999,
0x00999999,
0x00999999,
0x99999999,
0x99999999
},

Package (0x06)
{
0x09999999,
0x00099999,
0x00999999,
0x00999999,
0x99999999,
0x99999999
},

Package (0x06)
{
0x09999999,
0x00099999,
0x00999999,
0x00999999,
0x99999999,
0x99999999
},

Package (0x06)
{
0x09999999,
0x00099999,
0x00999999,
0x00999999,
0x99999999,
0x99999999
},

Package (0x06)
{
0x09999999,
0x00099999,
0x00999999,
0x00999999,
0x99999999,
0x99999999
},

Package (0x06)
{
0x09999999,
0x00099999,
0x00999999,
0x00999999,
0x99999999,
0x99999999
},

Package (0x06)
{
0x09999999,
0x00099999,
0x00999999,
0x00999999,
0x99999999,
0x99999999
}
})
Method (APPC, 0, NotSerialized)
{
Return (0x00)
}
}
}

Device (OMSC)
{
Name (_HID, EisaId ("PNP0C02"))
Name (_UID, 0x00)
Name (CRS, ResourceTemplate ()
{
Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
})
Method (_CRS, 0, NotSerialized)
{
If (APIC)
{
CreateDWordField (CRS, 0x08, ML01)
CreateDWordField (CRS, 0x04, MB01)
CreateDWordField (CRS, 0x14, ML02)
CreateDWordField (CRS, 0x10, MB02)
Store (0xFEC00000, MB01)
Store (0x1000, ML01)
Store (0xFEE00000, MB02)
Store (0x1000, ML02)
}

Return (CRS)
}
}

Device (\_SB.RMEM)
{
Name (_HID, EisaId ("PNP0C01"))
Name (_UID, 0x01)
Name (CRS, ResourceTemplate ()
{
Memory32Fixed (ReadWrite, 0x00000000, 0x000A0000)
Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
Memory32Fixed (ReadOnly, 0x000E0000, 0x00020000)
Memory32Fixed (ReadWrite, 0x00100000, 0x00000000)
Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
})
Method (_CRS, 0, NotSerialized)
{
CreateDWordField (CRS, 0x10, BAS1)
CreateDWordField (CRS, 0x14, LEN1)
CreateDWordField (CRS, 0x1C, BAS2)
CreateDWordField (CRS, 0x20, LEN2)
CreateDWordField (CRS, 0x2C, LEN3)
CreateDWordField (CRS, 0x34, BAS4)
CreateDWordField (CRS, 0x38, LEN4)
If (OSFL ()) {}
Else
{
If (MG1B)
{
If (LGreater (MG1B, 0x000C0000))
{
Store (0x000C0000, BAS1)
Subtract (MG1B, BAS1, LEN1)
}
}
Else
{
Store (0x000C0000, BAS1)
Store (0x00020000, LEN1)
}

If (Add (MG1B, MG1L, Local0))
{
Store (Local0, BAS2)
Subtract (0x00100000, BAS2, LEN2)
}
}

Subtract (MG2B, 0x00100000, LEN3)
Add (MG2B, MG2L, BAS4)
Subtract (0x00, BAS4, LEN4)
Return (CRS)
}
}

Device (PS2K)
{
Name (_HID, EisaId ("PNP0303"))
Name (_CID, 0x0B03D041)
Method (_STA, 0, NotSerialized)
{
ShiftLeft (0x01, 0x0A, Local0)
If (And (IOST, Local0))
{
Return (0x0F)
}

Return (0x00)
}

Name (_CRS, ResourceTemplate ()
{