I am looking for help on patching a Dell Latitude D400 Bios ACPI DSDT pss table to make it compatible with Linux for processor scaling purposes. Please see my posting here concerning this: http://www.linuxquestions.org/questions/...175485696/
If this is not the place for this, I would like to find a place as I could use some help with this. My guess is that the pss table is written in a way that either passes info to Linux in a way it can't understsand or not at all. It'll probably need to be rewritten in order for it to be compatible with Linux. The processor is a 745 Pentium M. A copy of my DSDT follows:
/*
* Intel ACPI Component Architecture
* AML Disassembler version 20130214-32 [Feb 24 2013]
* Copyright © 2000 - 2013 Intel Corporation
*
* Disassembly of DSDT.aml, Mon Feb 25 12:28:46 2013
*
* Original Table Header:
* Signature "DSDT"
* Length 0x000033B2 (13234)
* Revision 0x01 **** 32-bit table (V1), no 64-bit math support
* Checksum 0xC3
* OEM ID "INT430"
* OEM Table ID "SYSFexxx"
* OEM Revision 0x00001001 (4097)
* Compiler ID "INTL"
* Compiler Version 0x20101013 (537923603)
*/
DefinitionBlock ("DSDT.aml", "DSDT", 1, "INT430", "SYSFexxx", 0x00001001)
{
Name (VERS, Package (0x03)
{
"Project: DELL Mojave",
"Date: 01/28/1998",
"Ver: 1.00.04"
})
Event (EJTD)
Name (MISC, Buffer (0x09)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
})
CreateByteField (MISC, Zero, MIS0)
CreateByteField (MISC, 0x02, MIS2)
CreateByteField (MISC, 0x03, MIS3)
CreateByteField (MISC, 0x04, MIS4)
CreateByteField (MISC, 0x05, MIS5)
CreateByteField (MISC, 0x06, MIS6)
CreateByteField (MISC, 0x07, MIS7)
CreateByteField (MISC, 0x08, MIS8)
Mutex (SMIX, 0x01)
Method (SMI, 2, NotSerialized)
{
Acquire (SMIX, 0xFFFF)
Store (Arg1, \_SB.SMIA)
Store (Arg0, \_SB.SMIC)
Store (\_SB.SMIC, Local0)
While (LNotEqual (Local0, Zero))
{
Store (\_SB.SMIC, Local0)
}
Store (\_SB.SMIA, Local1)
Release (SMIX)
Return (Local1)
}
Name (SXX0, Buffer (0x0100) {})
Name (SXX1, Buffer (0x08) {})
CreateWordField (SXX1, Zero, SXX2)
CreateWordField (SXX1, 0x04, SXX3)
Method (SX10, 0, NotSerialized)
{
Acquire (SMIX, 0xFFFF)
Store (Zero, SXX2)
}
Method (SX30, 1, NotSerialized)
{
Store (SXX2, Local0)
Increment (Local0)
If (LLessEqual (Local0, SizeOf (SXX0)))
{
CreateByteField (SXX0, SXX2, SX20)
Store (Arg0, SX20)
Store (Local0, SXX2)
}
}
Method (SX31, 1, NotSerialized)
{
Store (SXX2, Local0)
Add (Local0, 0x02, Local0)
If (LLessEqual (Local0, SizeOf (SXX0)))
{
CreateWordField (SXX0, SXX2, SX21)
Store (Arg0, SX21)
Store (Local0, SXX2)
}
}
Method (SX32, 1, NotSerialized)
{
Store (SXX2, Local0)
Add (Local0, 0x04, Local0)
If (LLessEqual (Local0, SizeOf (SXX0)))
{
CreateDWordField (SXX0, SXX2, SX22)
Store (Arg0, SX22)
Store (Local0, SXX2)
}
}
Method (SX33, 2, NotSerialized)
{
If (LLess (Arg1, SizeOf (Arg0)))
{
CreateByteField (Arg0, Arg1, SX20)
SX30 (SX20)
}
}
Method (SX34, 2, NotSerialized)
{
Store (Zero, Local0)
While (LLess (Local0, Arg1))
{
SX33 (Arg0, Local0)
Increment (Local0)
}
}
Method (SXX6, 2, NotSerialized)
{
Store (Arg1, \_SB.SMIA)
Store (Arg0, \_SB.SMIC)
Store (\_SB.SMIC, Local0)
While (LNotEqual (Local0, Zero))
{
Store (\_SB.SMIC, Local0)
}
Return (\_SB.SMIA)
}
Method (SXX5, 2, NotSerialized)
{
If (LLess (Arg1, SizeOf (Arg0)))
{
CreateByteField (Arg0, Arg1, SX20)
SXX6 (0x7C, SX20)
}
}
Method (SXX4, 0, NotSerialized)
{
SXX6 (0x7B, Zero)
Store (Zero, Local0)
While (LLess (Local0, SXX2))
{
SXX5 (SXX0, Local0)
Increment (Local0)
}
}
Method (SXX8, 2, NotSerialized)
{
If (LLess (Arg1, SizeOf (Arg0)))
{
CreateByteField (Arg0, Arg1, SX20)
Store (SXX6 (0x7D, Zero), SX20)
}
}
Method (SXX7, 0, NotSerialized)
{
Store (Zero, Local0)
While (LLess (Local0, SXX3))
{
Add (SXX2, Local0, Local1)
SXX8 (SXX0, Local1)
Increment (Local0)
}
}
Method (SX11, 0, NotSerialized)
{
SXX4 ()
Store (SXX6 (0x79, Zero), SXX3)
Add (SXX2, SXX3, Local0)
If (LLess (SizeOf (SXX0), Local0))
{
Store (SizeOf (SXX0), Local0)
Subtract (Local0, SXX2, Local0)
Store (Local0, SXX3)
}
SXX7 ()
}
Method (SX40, 0, NotSerialized)
{
Store (SXX2, Local0)
Increment (Local0)
If (LLessEqual (Local0, SizeOf (SXX0)))
{
CreateByteField (SXX0, SXX2, SX20)
Store (Local0, SXX2)
Return (SX20)
}
Return (Zero)
}
Method (SX41, 0, NotSerialized)
{
Store (SXX2, Local0)
Add (Local0, 0x02, Local0)
If (LLessEqual (Local0, SizeOf (SXX0)))
{
CreateWordField (SXX0, SXX2, SX21)
Store (Local0, SXX2)
Return (SX21)
}
Return (Zero)
}
Method (SX42, 0, NotSerialized)
{
Store (SXX2, Local0)
Add (Local0, 0x04, Local0)
If (LLessEqual (Local0, SizeOf (SXX0)))
{
CreateDWordField (SXX0, SXX2, SX22)
Store (Local0, SXX2)
Return (SX22)
}
Return (Zero)
}
Method (SX43, 2, NotSerialized)
{
If (LLess (Arg1, SizeOf (Arg0)))
{
CreateByteField (Arg0, Arg1, SX20)
Store (SX40 (), SX20)
}
}
Method (SX44, 2, NotSerialized)
{
Store (Zero, Local0)
While (LLess (Local0, Arg1))
{
SX43 (Arg0, Local0)
Increment (Local0)
}
}
Method (SX45, 0, NotSerialized)
{
Store (SX40 (), Local0)
Name (SX23, Buffer (Local0) {})
SX44 (SX23, Local0)
Return (SX23)
}
Method (SX12, 0, NotSerialized)
{
Release (SMIX)
}
Method (PNPQ, 1, NotSerialized)
{
SX10 ()
SX30 (Zero)
SX30 (0x02)
SX30 (Arg0)
SX11 ()
Store (SX40 (), Local0)
SX12 ()
Return (Local0)
}
Method (PNPD, 1, NotSerialized)
{
SX10 ()
SX30 (Zero)
SX30 (0x03)
SX30 (Arg0)
SX11 ()
SX12 ()
}
Method (PNPG, 1, NotSerialized)
{
SX10 ()
SX30 (Zero)
SX30 (Zero)
SX30 (Arg0)
SX11 ()
Name (PGET, Buffer (SXX3) {})
SX44 (PGET, SXX3)
SX12 ()
Return (PGET)
}
Method (PNPS, 2, NotSerialized)
{
SX10 ()
SX30 (Zero)
SX30 (One)
SX30 (Arg0)
SX34 (Arg1, SizeOf (Arg1))
SX11 ()
SX12 ()
}
Method (PSW, 2, NotSerialized)
{
SX10 ()
SX30 (0x06)
SX30 (Arg0)
SX30 (Arg1)
SX11 ()
SX12 ()
}
Method (DSS, 2, NotSerialized)
{
SX10 ()
SX30 (0x08)
SX30 (Arg0)
SX32 (Arg1)
SX11 ()
SX12 ()
}
Method (GMEM, 0, NotSerialized)
{
SX10 ()
SX30 (0x07)
SX11 ()
Store (SX42 (), Local0)
SX12 ()
Return (Local0)
}
Method (GORL, 0, NotSerialized)
{
SX10 ()
SX30 (0x09)
SX11 ()
Store (SX42 (), Local0)
SX12 ()
Return (Local0)
}
Name (W98S, "Microsoft Windows")
Name (NT5S, "Microsoft Windows NT")
Name (WINM, "Microsoft WindowsME: Millennium Edition")
Name (WXP, "Windows 2001")
Method (GETC, 2, NotSerialized)
{
CreateByteField (Arg0, Arg1, TCHR)
Return (TCHR)
}
Method (STRE, 2, NotSerialized)
{
Name (STR1, Buffer (0x50) {})
Name (STR2, Buffer (0x50) {})
Store (Arg0, STR1)
Store (Arg1, STR2)
Store (Zero, Local0)
Store (One, Local1)
While (Local1)
{
Store (GETC (STR1, Local0), Local1)
Store (GETC (STR2, Local0), Local2)
If (LNotEqual (Local1, Local2))
{
Return (Zero)
}
Increment (Local0)
}
Return (One)
}
Method (OSID, 0, NotSerialized)
{
If (LEqual (MIS3, Zero))
{
Store (One, MIS3)
If (CondRefOf (\_OSI, Local0))
{
If (_OSI (WXP))
{
Store (0x10, MIS3)
}
}
Else
{
If (STRE (_OS, W98S))
{
Store (0x02, MIS3)
}
If (STRE (_OS, NT5S))
{
Store (0x08, MIS3)
}
If (STRE (_OS, WINM))
{
Store (0x04, MIS3)
}
}
}
Return (MIS3)
}
Method (SOST, 0, NotSerialized)
{
SX10 ()
SX30 (0x0A)
OSID ()
SX30 (MIS3)
SX11 ()
SX12 ()
}
Name (WAKE, Zero)
Method (NEVT, 0, NotSerialized)
{
Store (SMI (0x8C, Zero), Local0)
If (And (Local0, One))
{
Notify (\_SB.PBTN, 0x80)
}
If (And (Local0, 0x02))
{
EJTE ()
}
If (And (Local0, 0x04))
{
LIDE ()
}
If (And (Local0, 0x08))
{
PWRE ()
}
If (And (Local0, 0x10))
{
DCKE ()
}
If (And (Local0, 0x20))
{
BAYE ()
}
If (And (Local0, 0x40))
{
Notify (\_SB.SBTN, 0x80)
}
If (And (Local0, 0x80))
{
SMIE ()
}
}
Method (EJTE, 0, NotSerialized)
{
SMI (0xA6, One)
Notify (\_SB.PCI0.PCIE.GDCK, One)
}
Method (LIDE, 0, NotSerialized)
{
Store (SMI (0x43, Zero), Local0)
If (LNotEqual (Local0, Zero))
{
If (LEqual (OSID (), 0x10))
{
Notify (\_SB.PCI0, Zero)
Sleep (0x03E8)
}
Else
{
If (LEqual (OSID (), 0x08))
{
Notify (\_SB.PCI0.VID, Zero)
Notify (\_SB.PCI0.VID2, Zero)
Sleep (0x02EE)
}
}
Notify (\_SB.PCI0.VID, 0x80)
}
Notify (\_SB.LID, 0x80)
}
Method (PWRE, 0, NotSerialized)
{
Store (SMI (0x98, Zero), Local0)
XOr (Local0, MIS0, Local1)
And (Local0, 0x13, MIS0)
If (And (Local1, One))
{
Notify (\_SB.AC, 0x80)
}
And (MIS0, 0x02, Local2)
If (And (Local1, 0x02))
{
If (Local2)
{
Notify (\_SB.BAT0, 0x81)
}
Else
{
Notify (\_SB.BAT0, 0x81)
}
}
If (And (Local1, 0x04))
{
If (Local2)
{
Notify (\_SB.BAT0, 0x80)
}
}
If (And (Local1, 0x08))
{
If (Local2)
{
Notify (\_SB.BAT0, 0x80)
}
}
}
Method (DCKE, 0, NotSerialized)
{
Store (SMI (0x65, 0x22), Local0)
And (Local0, 0x08, MIS8)
Store (SMI (0x87, Zero), Local0)
XOr (Local0, MIS7, Local1)
Store (Local0, MIS7)
Store (Local0, MIS2)
If (Local1)
{
If (Local0)
{
Notify (\_SB.PCI0.PCIE.GDCK, Zero)
}
Else
{
SMI (0x8D, Zero)
If (MIS8)
{
Signal (EJTD)
}
Else
{
Notify (\_SB.PCI0.PCIE.GDCK, One)
}
}
}
}
Method (BAYE, 0, NotSerialized)
{
Store (SMI (0x86, Zero), Local0)
If (And (Local0, 0x02))
{
SMI (0x90, One)
}
Else
{
SMI (0x90, Zero)
}
SMI (0xBA, Zero)
}
Method (SMIE, 0, NotSerialized)
{
Store (SMI (0x96, Zero), Local0)
If (And (Local0, One))
{
Notify (\_TZ.THM, 0x80)
}
If (And (Local0, 0x20))
{
Notify (\_SB.PCI0.VID, 0x81)
}
If (And (Local0, 0x02))
{
If (LEqual (OSID (), 0x10))
{
Notify (\_SB.PCI0, Zero)
Sleep (0x03E8)
}
Else
{
If (LEqual (OSID (), 0x08))
{
Notify (\_SB.PCI0.VID, Zero)
Notify (\_SB.PCI0.VID2, Zero)
Sleep (0x02EE)
}
}
Notify (\_SB.PCI0.VID, 0x80)
}
If (And (Local0, 0x04))
{
Notify (\_SB.BAT0, 0x81)
}
If (And (Local0, 0x08))
{
Notify (\_PR.CPU0, 0x80)
}
If (And (Local0, 0x40))
{
Store (Zero, MIS5)
}
}
Method (_PTS, 1, NotSerialized) // _PTS: Prepare To Sleep
{
SMI (0x8A, Arg0)
}
Method (DTGP, 5, NotSerialized)
{
If (LEqual (Arg0, Buffer (0x10)
{
/* 0000 */ 0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
/* 0008 */ 0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
}))
{
If (LEqual (Arg1, One))
{
If (LEqual (Arg2, Zero))
{
Store (Buffer (One)
{
0x03
}, Arg4)
Return (One)
}
If (LEqual (Arg2, One))
{
Return (One)
}
}
}
Store (Buffer (One)
{
0x00
}, Arg4)
Return (Zero)
}
Method (_WAK, 1, NotSerialized) // _WAK: Wake
{
SMI (0xA7, MIS2)
SMI (0x9A, Arg0)
If (LEqual (Arg0, 0x04))
{
Notify (\_SB.PBTN, 0x02)
Store (SMI (0x98, Zero), MIS0)
Store (One, MIS4)
SOST ()
}
Notify (\_SB.AC, 0x80)
Store (SMI (0x87, Zero), Local0)
XOr (Local0, MIS2, Local1)
If (Local1)
{
If (Local0)
{
Notify (\_SB.PCI0.PCIE.GDCK, Zero)
}
Else
{
If (LEqual (OSID (), 0x02))
{
SMI (0x8D, Zero)
Notify (\_SB.PCI0.PCIE.GDCK, One)
}
}
}
Store (Local0, MIS2)
SMI (0xA6, Zero)
}
Method (NWAK, 0, NotSerialized)
{
Store (One, WAKE)
Store (SMI (0x89, Zero), Local0)
Store (Zero, Local1)
If (LEqual (Local0, Zero))
{
Store (One, Local1)
}
If (And (Local0, One))
{
Store (One, Local1)
}
If (And (Local0, 0x02))
{
LIDE ()
}
If (And (Local0, 0x10))
{
Notify (\_SB.PCI0.PCIE.GDCK, 0x02)
}
If (And (Local0, 0x40))
{
Notify (\_SB.PCI0.PCIE.GDCK, One)
}
If (And (Local0, 0x20))
{
If (LEqual (OSID (), 0x02))
{
Store (One, Local1)
}
}
Notify (\_SB.BAT0, 0x81)
If (Local1)
{
Notify (\_SB.PBTN, 0x02)
}
Store (Zero, WAKE)
}
Scope (_GPE)
{
Method (_L1D, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
NEVT ()
}
Method (_L1C, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
NWAK ()
}
Method (_L0B, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
Store (Zero, Local0)
Notify (\_SB.PCI0, 0x02)
}
Method (_L18, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
Store (Zero, Local0)
}
Method (_L03, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
Notify (\_SB.PCI0.USB0, 0x02)
}
Method (_L04, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
Notify (\_SB.PCI0.USB1, 0x02)
}
Method (_L0C, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
Notify (\_SB.PCI0.USB2, 0x02)
}
Method (_L0D, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
Notify (\_SB.PCI0.USB3, 0x02)
}
Method (_L05, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
Notify (\_SB.PCI0.MODM, 0x02)
}
}
Name (CRS0, Buffer (0x0101) {})
CreateByteField (CRS0, 0x0100, CRS1)
Method (CRS3, 0, NotSerialized)
{
Store (Zero, CRS1)
}
Method (CRS4, 1, NotSerialized)
{
CreateByteField (CRS0, CRS1, CRS2)
Store (Arg0, CRS2)
Increment (CRS1)
}
Method (CRS5, 1, NotSerialized)
{
CreateWordField (CRS0, CRS1, CRS2)
Store (Arg0, CRS2)
Increment (CRS1)
Increment (CRS1)
}
Method (CRS6, 1, NotSerialized)
{
CreateDWordField (CRS0, CRS1, CRS2)
Store (Arg0, CRS2)
Add (CRS1, 0x04, CRS1)
}
Method (CR_0, 3, NotSerialized)
{
CRS4 (0x86)
CRS5 (0x09)
CRS4 (Arg0)
CRS6 (Arg1)
CRS6 (Arg2)
}
Method (CR_1, 4, NotSerialized)
{
CRS4 (0x47)
CRS4 (One)
CRS5 (Arg0)
CRS5 (Arg1)
CRS4 (Arg2)
CRS4 (Arg3)
}
Method (CR_2, 2, NotSerialized)
{
CRS4 (0x88)
CRS5 (0x0D)
CRS4 (0x02)
CRS4 (0x0C)
CRS4 (Zero)
CRS5 (Zero)
CRS5 (Arg0)
Add (Arg0, Arg1, Local0)
Decrement (Local0)
CRS5 (Local0)
CRS5 (Zero)
CRS5 (Arg1)
}
Method (CR_3, 2, NotSerialized)
{
CRS4 (0x88)
CRS5 (0x0D)
CRS4 (One)
CRS4 (0x0C)
CRS4 (0x03)
CRS5 (Zero)
CRS5 (Arg0)
Add (Arg0, Arg1, Local0)
Decrement (Local0)
CRS5 (Local0)
CRS5 (Zero)
CRS5 (Arg1)
}
Method (CR_4, 2, NotSerialized)
{
CRS4 (0x87)
CRS5 (0x17)
CRS4 (Zero)
CRS4 (0x0C)
CRS4 (0x03)
CRS6 (Zero)
CRS6 (Arg0)
Add (Arg0, Arg1, Local0)
Decrement (Local0)
CRS6 (Local0)
CRS6 (Zero)
CRS6 (Arg1)
}
Method (CR_5, 0, NotSerialized)
{
CRS5 (0x79)
}
Scope (_PR)
{
Processor (CPU0, 0x00, 0x000008E0, 0x06)
{
Name (PDC0, 0xF0000000)
Method (_PDC, 1, NotSerialized) // _PDC: Processor Driver Capabilities
{
CreateDWordField (Arg0, 0x08, CAP0)
Store (CAP0, PDC0)
}
Method (_PCT, 0, NotSerialized) // _PCT: Performance Control
{
If (LEqual (And (PDC0, One), One))
{
Return (Package (0x02)
{
ResourceTemplate ()
{
Register (FFixedHW,
0x40, // Bit Width
0x00, // Bit Offset
0x0000000000000199, // Address
,)
},
ResourceTemplate ()
{
Register (FFixedHW,
0x10, // Bit Width
0x00, // Bit Offset
0x0000000000000198, // Address
,)
}
})
}
Else
{
Return (Package (0x02)
{
ResourceTemplate ()
{
Register (SystemIO,
0x10, // Bit Width
0x00, // Bit Offset
0x00000000000000B2, // Address
,)
},
ResourceTemplate ()
{
Register (SystemIO,
0x08, // Bit Width
0x00, // Bit Offset
0x00000000000000B3, // Address
,)
}
})
}
}
Name (PSSX, Package (0x08)
{
Package (0x06) //duplicate this frequncy scale step not used
{
0x0640,
0x6590,
0x0A,
0x0A,
Zero,
Zero
},
Package (0x06) // 1.80 GHz
{
0x0640,
0x6590,
0x0A,
0x0A,
Zero,
Zero
},
Package (0x06) //1.60 GHz
{
0x05DC,
0x61A8,
0x0A,
0x0A,
Zero,
Zero
},
Package (0x06) //1.40 GHz
{
0x0578,
0x5DC0,
0x0A,
0x0A,
Zero,
Zero
},
Package (0x06) //1.20 GHz
{
0x0514,
0x59D8,
0x0A,
0x0A,
Zero,
Zero
},
Package (0x06) //1.00 GHz
{
0x04B0,
0x55F0,
0x0A,
0x0A,
Zero,
Zero
},
Package (0x06) //800 MHz
{
0x044C,
0x5208,
0x0A,
0x0A,
Zero,
Zero
},
Package (0x06) //600 MHz
{
0x03E8,
0x4E20,
0x0A,
0x0A,
Zero,
Zero
}
})
Name (PSSN, Zero)
Method (_PSS, 0, NotSerialized) // _PSS: Performance Supported States
{
SX10 ()
If (LEqual (And (PDC0, One), One))
{
SX30 (0x0C)
}
Else
{
SX30 (0x0B)
}
SX11 ()
Store (SX40 (), PSSN)
Subtract (0x08, 0x08, Local1)
While (LLess (Local1, 0x08))
{
Store (SX42 (), Index (DerefOf (Index (PSSX, Local1)), Zero))
Store (SX42 (), Index (DerefOf (Index (PSSX, Local1)), One))
Store (SX42 (), Index (DerefOf (Index (PSSX, Local1)), 0x02))
Store (SX42 (), Index (DerefOf (Index (PSSX, Local1)), 0x03))
Store (SX41 (), Index (DerefOf (Index (PSSX, Local1)), 0x04))
Store (SX41 (), Index (DerefOf (Index (PSSX, Local1)), 0x05))
Increment (Local1)
}
SX12 ()
Subtract (0x08, 0x08, Local1)
While (LLess (Local1, 0x08))
{
Increment (Local1)
}
Return (PSSX)
}
Method (_PPC, 0, NotSerialized) // _PPC: Performance Present Capabilites
{
Subtract (0x08, PSSN, Local0)
Add (Local0, SMI (0xAD, Zero), Local0)
Return (Local0)
}
Name (DCST, Package (0x05)
{
0x04,
Package (0x04)
{
ResourceTemplate ()
{
Register (FFixedHW,
0x08, // Bit Width
0x00, // Bit Offset
0x0000000000000000, // Address
,)
},
One,
One,
0x03E8
},
Package (0x04)
{
ResourceTemplate ()
{
Register (SystemIO,
0x08, // Bit Width
0x00, // Bit Offset
0x0000000000000814, // Address
,)
},
0x02,
One,
0x01F4
},
Package (0x04)
{
ResourceTemplate ()
{
Register (SystemIO,
0x08, // Bit Width
0x00, // Bit Offset
0x0000000000000815, // Address
,)
},
0x03,
0x55,
0xFA
},
Package (0x04)
{
ResourceTemplate ()
{
Register (SystemIO,
0x08, // Bit Width
0x00, // Bit Offset
0x0000000000000816, // Address
,)
},
0x03,
0xB9,
0x64
}
})
Name (NCST, Package (0x03)
{
0x02,
Package (0x04)
{
ResourceTemplate ()
{
Register (FFixedHW,
0x08, // Bit Width
0x00, // Bit Offset
0x0000000000000000, // Address
,)
},
One,
One,
0x03E8
},
Package (0x04)
{
ResourceTemplate ()
{
Register (SystemIO,
0x08, // Bit Width
0x00, // Bit Offset
0x0000000000000814, // Address
,)
},
0x02,
One,
0x01F4
}
})
Method (_CST, 0, NotSerialized) // _CST: C-States
{
Store (SMI (0x5E, Zero), Local0)
If (LEqual (Local0, Zero))
{
Return (NCST)
}
Return (DCST)
}
}
}
Name (_S0, Package (0x03) // _S0_: S0 System State
{
Zero,
Zero,
Zero
})
Name (_S1, Package (0x03) // _S1_: S1 System State
{
0x02,
Zero,
Zero
})
Name (_S3, Package (0x03) // _S3_: S3 System State
{
0x05,
Zero,
Zero
})
Name (_S4, Package (0x03) // _S4_: S4 System State
{
0x07,
Zero,
Zero
})
Name (_S5, Package (0x03) // _S5_: S5 System State
{
0x07,
Zero,
Zero
})
Scope (_TZ)
{
ThermalZone (THM)
{
Method (_CRT, 0, NotSerialized) // _CRT: Critical Temperature
{
Store (0x63, Local0)
Multiply (Local0, 0x0A, Local0)
Add (Local0, 0x0AAC, Local0)
Return (Local0)
}
Method (_TMP, 0, NotSerialized) // _TMP: Temperature
{
Store (GINF (0x04), Local0)
Return (Local0)
}
Method (GINF, 1, NotSerialized)
{
SX10 ()
SX30 (Arg0)
SX11 ()
Store (SX41 (), Local0)
SX12 ()
If (LLess (Local0, 0x0BA6))
{
Store (0x0BA6, Local0)
}
Return (Local0)
}
}
}
Scope (_SB)
{
OperationRegion (SMIR, SystemIO, 0xB2, 0x02)
Field (SMIR, ByteAcc, NoLock, Preserve)
{
SMIC, 8,
SMID, 8
}
OperationRegion (SMR2, SystemIO, 0x86, One)
Field (SMR2, ByteAcc, NoLock, Preserve)
{
SMIA, 8
}
Device (AC)
{
Name (_HID, "ACPI0003") // _HID: Hardware ID
Name (_PCL, Package (0x02) // _PCL: Power Consumer List
{
_SB,
BAT0
})
Method (_PSR, 0, NotSerialized) // _PSR: Power Source
{
Store (SMI (0x85, Zero), Local0)
And (Local0, One, Local0)
Return (Local0)
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0F)
}
}
Name (BIFP, Package (0x0D) {})
Method (BIF, 1, NotSerialized)
{
SX10 ()
SX30 (One)
SX30 (Arg0)
SX11 ()
Store (SX42 (), Index (BIFP, Zero))
Store (SX42 (), Index (BIFP, One))
Store (SX42 (), Index (BIFP, 0x02))
Store (SX42 (), Index (BIFP, 0x03))
Store (SX42 (), Index (BIFP, 0x04))
Store (SX42 (), Index (BIFP, 0x05))
Store (SX42 (), Index (BIFP, 0x06))
Store (SX42 (), Index (BIFP, 0x07))
Store (SX42 (), Index (BIFP, 0x08))
Store (SX45 (), Index (BIFP, 0x09))
Store (SX45 (), Index (BIFP, 0x0A))
Store (SX45 (), Index (BIFP, 0x0B))
Store (SX45 (), Index (BIFP, 0x0C))
SX12 ()
Return (BIFP)
}
Device (PNLF)
{
Name (_HID, EisaId ("APP0002")) // _HID: Hardware ID
Name (_CID, "backlight") // _CID: Compatible ID
Name (_UID, 0x0A) // _UID: Unique ID
Name (_STA, 0x0B) // _STA: Status
}
Device (BAT0)
{
Name (_HID, EisaId ("PNP0C0A")) // _HID: Hardware ID
Name (_UID, One) // _UID: Unique ID
Name (_PCL, Package (0x01) // _PCL: Power Consumer List
{
_SB
})
Method (_STA, 0, NotSerialized) // _STA: Status
{
And (MIS0, 0x02, Local0)
If (Local0)
{
Return (0x1F)
}
Return (0x0F)
}
Method (_BIF, 0, NotSerialized) // _BIF: Battery Information
{
Return (BIF (One))
}
Method (_BST, 0, NotSerialized) // _BST: Battery Status
{
SX10 ()
SX30 (0x02)
SX30 (One)
SX11 ()
Name (BST0, Package (0x04) {})
Store (SX42 (), Index (BST0, Zero))
Store (SX42 (), Index (BST0, One))
Store (SX42 (), Index (BST0, 0x02))
Store (SX42 (), Index (BST0, 0x03))
SX12 ()
Return (BST0)
}
Method (_BTP, 1, NotSerialized) // _BTP: Battery Trip Point
{
SX10 ()
SX30 (0x03)
SX30 (One)
SX32 (Arg0)
SX11 ()
SX12 ()
Sleep (0xFA)
}
}
Device (LID)
{
Name (_HID, EisaId ("PNP0C0D")) // _HID: Hardware ID
Method (_LID, 0, NotSerialized) // _LID: Lid Status
{
Store (SMI (0x84, Zero), Local0)
Return (Local0)
}
Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
{
0x1C,
0x03
})
Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
{
PSW (Arg0, 0x02)
}
}
Device (PBTN)
{
Name (_HID, EisaId ("PNP0C0C")) // _HID: Hardware ID
Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
{
0x1C,
0x04
})
Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
{
PSW (Arg0, One)
}
}
Device (SBTN)
{
Name (_HID, EisaId ("PNP0C0E")) // _HID: Hardware ID
}
Device (MB1)
{
Name (_HID, EisaId ("PNP0C01")) // _HID: Hardware ID
Name (_UID, One) // _UID: Unique ID
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
CRS3 ()
CR_0 (One, Zero, 0x0009FC00)
CR_0 (One, 0x0009FC00, 0x0400)
If (LOr (LEqual (OSID (), 0x08), LEqual (OSID (), 0x10)))
{
Store (GORL (), Local0)
CR_0 (Zero, 0x000C0000, Local0)
}
CR_0 (Zero, 0x000E0000, 0x00020000)
Store (GMEM (), Local0)
Subtract (Local0, 0x00010000, Local1)
CR_0 (One, 0x00100000, Local1)
Add (Local1, 0x00100000, Local1)
CR_0 (One, Local1, 0x00010000)
CR_0 (Zero, 0xFEC10000, 0x00010000)
CR_0 (Zero, 0xFEDA0000, 0x00060000)
CR_0 (Zero, 0xFFB00000, 0x00100000)
CR_5 ()
Return (CRS0)
}
}
Device (PCI0)
{
Name (_HID, EisaId ("PNP0A03")) // _HID: Hardware ID
Name (_ADR, Zero) // _ADR: Address
Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
{
0x0B,
0x03
})
Method (_INI, 0, NotSerialized) // _INI: Initialize
{
Store (SMI (0x98, Zero), MIS0)
And (MIS0, 0x13, MIS0)
Store (SMI (0x87, Zero), MIS2)
Store (One, MIS4)
SOST ()
}
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
CRS3 ()
CR_2 (Zero, 0x0100)
CR_3 (Zero, 0x0CF8)
CR_1 (0x0CF8, 0x0CF8, One, 0x08)
CR_3 (0x0D00, 0xF300)
CR_4 (0x000A0000, 0x00020000)
CR_4 (0x000D0000, 0x00010000)
Add (0x00100000, GMEM (), Local0)
Subtract (0xFEC10000, Local0, Local1)
If (Local1)
{
CR_4 (Local0, Local1)
}
Subtract (0xFEDA0000, 0xFEC20000, Local1)
CR_4 (0xFEC20000, Local1)
Subtract (0xFFB00000, 0xFEE00000, Local1)
CR_4 (0xFEE00000, Local1)
CR_5 ()
Return (CRS0)
}
Device (MB2)
{
Name (_HID, EisaId ("PNP0C01")) // _HID: Hardware ID
Name (_UID, 0x02) // _UID: Unique ID
Name (CRS, ResourceTemplate ()
{
IO (Decode16,
0x0092, // Range Minimum
0x0092, // Range Maximum
0x02, // Alignment
0x01, // Length
)
IO (Decode16,
0x00B2, // Range Minimum
0x00B2, // Range Maximum
0x02, // Alignment
0x01, // Length
)
IO (Decode16,
0x0020, // Range Minimum
0x0020, // Range Maximum
0x10, // Alignment
0x02, // Length
)
IO (Decode16,
0x00A0, // Range Minimum
0x00A0, // Range Maximum
0x10, // Alignment
0x02, // Length
)
IRQNoFlags ()
{2}
IO (Decode16,
0x04D0, // Range Minimum
0x04D0, // Range Maximum
0x10, // Alignment
0x02, // Length
)
IO (Decode16,
0x0800, // Range Minimum
0x0800, // Range Maximum
0x10, // Alignment
0x06, // Length
)
IO (Decode16,
0x0808, // Range Minimum
0x0808, // Range Maximum
0x08, // Alignment
0x08, // Length
)
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (CRS)
}
}
Device (MB3)
{
Name (_HID, EisaId ("PNP0C01")) // _HID: Hardware ID
Name (_UID, 0x03) // _UID: Unique ID
Name (CRS, ResourceTemplate ()
{
IO (Decode16,
0xF400, // Range Minimum
0xF400, // Range Maximum
0x01, // Alignment
0xFF, // Length
)
IO (Decode16,
0x0086, // Range Minimum
0x0086, // Range Maximum
0x02, // Alignment
0x01, // Length
)
IO (Decode16,
0x00B3, // Range Minimum
0x00B3, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0806, // Range Minimum
0x0806, // Range Maximum
0x02, // Alignment
0x02, // Length
)
IO (Decode16,
0x0810, // Range Minimum
0x0810, // Range Maximum
0x10, // Alignment
0x50, // Length
)
IO (Decode16,
0x0860, // Range Minimum
0x0860, // Range Maximum
0x10, // Alignment
0x20, // Length
)
IO (Decode16,
0x0880, // Range Minimum
0x0880, // Range Maximum
0x10, // Alignment
0x40, // Length
)
IO (Decode16,
0x08C0, // Range Minimum
0x08C0, // Range Maximum
0x10, // Alignment
0x20, // Length
)
IO (Decode16,
0x08E0, // Range Minimum
0x08E0, // Range Maximum
0x10, // Alignment
0x20, // Length
)
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (CRS)
}
}
Device (ISAB)
{
Name (_ADR, 0x001F0000) // _ADR: Address
OperationRegion (PIR1, PCI_Config, 0x60, 0x04)
OperationRegion (PIR2, PCI_Config, 0x68, 0x04)
OperationRegion (FDIS, PCI_Config, 0xF2, 0x02)
Device (PS2M)
{
Name (_HID, EisaId ("PNP0F13")) // _HID: Hardware ID
Name (CRS, ResourceTemplate ()
{
IRQNoFlags ()
{12}
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (CRS)
}
}
Device (KBC)
{
Name (_HID, EisaId ("PNP0303")) // _HID: Hardware ID
Name (CRS, ResourceTemplate ()
{
IO (Decode16,
0x0060, // Range Minimum
0x0060, // Range Maximum
0x10, // Alignment
0x01, // Length
)
IO (Decode16,
0x0064, // Range Minimum
0x0064, // Range Maximum
0x04, // Alignment
0x01, // Length
)
IRQNoFlags ()
{1}
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (CRS)
}
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
Store (Package (0x02)
{
"AAPL,has-embedded-fn-keys",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (RTC)
{
Name (_HID, EisaId ("PNP0B00")) // _HID: Hardware ID
Name (CRS, ResourceTemplate ()
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x10, // Alignment
0x02, // Length
)
IO (Decode16,
0x0072, // Range Minimum
0x0072, // Range Maximum
0x02, // Alignment
0x06, // Length
)
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (CRS)
}
}
Device (HPET)
{
Name (_HID, EisaId ("PNP0103")) // _HID: Hardware ID
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Name (HBAB, ResourceTemplate ()
{
IRQNoFlags ()
{0}
IRQNoFlags ()
{8}
Memory32Fixed (ReadOnly,
0xFED00000, // Address Base
0x00000400, // Address Length
)
})
Return (HBAB)
}
}
Device (TMR)
{
Name (_HID, EisaId ("PNP0100")) // _HID: Hardware ID
Name (CRS, ResourceTemplate ()
{
IO (Decode16,
0x0040, // Range Minimum
0x0040, // Range Maximum
0x10, // Alignment
0x04, // Length
)
IO (Decode16,
0x0050, // Range Minimum
0x0050, // Range Maximum
0x10, // Alignment
0x04, // Length
)
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (CRS)
}
}
Device (SPKR)
{
Name (_HID, EisaId ("PNP0800")) // _HID: Hardware ID
Name (CRS, ResourceTemplate ()
{
IO (Decode16,
0x0061, // Range Minimum
0x0061, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0063, // Range Minimum
0x0063, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0065, // Range Minimum
0x0065, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0067, // Range Minimum
0x0067, // Range Maximum
0x01, // Alignment
0x01, // Length
)
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (CRS)
}
}
Device (MB4)
{
Name (_HID, EisaId ("PNP0C01")) // _HID: Hardware ID
Name (_UID, 0x04) // _UID: Unique ID
Name (CRS, ResourceTemplate ()
{
IO (Decode16,
0x002E, // Range Minimum
0x002E, // Range Maximum
0x02, // Alignment
0x02, // Length
)
IO (Decode16,
0x004E, // Range Minimum
0x004E, // Range Maximum
0x02, // Alignment
0x02, // Length
)
IO (Decode16,
0x0900, // Range Minimum
0x0900, // Range Maximum
0x10, // Alignment
0x80, // Length
)
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (CRS)
}
}
Device (PIC)
{
Name (_HID, EisaId ("PNP0000")) // _HID: Hardware ID
Name (CRS, ResourceTemplate ()
{
IO (Decode16,
0x0024, // Range Minimum
0x0024, // Range Maximum
0x04, // Alignment
0x02, // Length
)
IO (Decode16,
0x0028, // Range Minimum
0x0028, // Range Maximum
0x04, // Alignment
0x02, // Length
)
IO (Decode16,
0x002C, // Range Minimum
0x002C, // Range Maximum
0x04, // Alignment
0x02, // Length
)
IO (Decode16,
0x0030, // Range Minimum
0x0030, // Range Maximum
0x04, // Alignment
0x02, // Length
)
IO (Decode16,
0x0034, // Range Minimum
0x0034, // Range Maximum
0x04, // Alignment
0x02, // Length
)
IO (Decode16,
0x0038, // Range Minimum
0x0038, // Range Maximum
0x04, // Alignment
0x02, // Length
)
IO (Decode16,
0x003C, // Range Minimum
0x003C, // Range Maximum
0x04, // Alignment
0x02, // Length
)
IO (Decode16,
0x00A4, // Range Minimum
0x00A4, // Range Maximum
0x04, // Alignment
0x02, // Length
)
IO (Decode16,
0x00A8, // Range Minimum
0x00A8, // Range Maximum
0x04, // Alignment
0x02, // Length
)
IO (Decode16,
0x00AC, // Range Minimum
0x00AC, // Range Maximum
0x04, // Alignment
0x02, // Length
)
IO (Decode16,
0x00B0, // Range Minimum
0x00B0, // Range Maximum
0x04, // Alignment
0x02, // Length
)
IO (Decode16,
0x00B4, // Range Minimum
0x00B4, // Range Maximum
0x04, // Alignment
0x02, // Length
)
IO (Decode16,
0x00B8, // Range Minimum
0x00B8, // Range Maximum
0x04, // Alignment
0x02, // Length
)
IO (Decode16,
0x00BC, // Range Minimum
0x00BC, // Range Maximum
0x04, // Alignment
0x02, // Length
)
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (CRS)
}
}
Device (MAD)
{
Name (_HID, EisaId ("PNP0200")) // _HID: Hardware ID
Name (CRS, ResourceTemplate ()
{
DMA (Compatibility, BusMaster, Transfer8, )
{4}
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x10, // Alignment
0x10, // Length
)
IO (Decode16,
0x0080, // Range Minimum
0x0080, // Range Maximum
0x10, // Alignment
0x06, // Length
)
IO (Decode16,
0x0087, // Range Minimum
0x0087, // Range Maximum
0x01, // Alignment
0x09, // Length
)
IO (Decode16,
0x00C0, // Range Minimum
0x00C0, // Range Maximum
0x10, // Alignment
0x20, // Length
)
IO (Decode16,
0x0010, // Range Minimum
0x0010, // Range Maximum
0x10, // Alignment
0x10, // Length
)
IO (Decode16,
0x0090, // Range Minimum
0x0090, // Range Maximum
0x10, // Alignment
0x02, // Length
)
IO (Decode16,
0x0093, // Range Minimum
0x0093, // Range Maximum
0x01, // Alignment
0x0D, // Length
)
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (CRS)
}
}
Device (COPR)
{
Name (_HID, EisaId ("PNP0C04")) // _HID: Hardware ID
Name (CRS, ResourceTemplate ()
{
IO (Decode16,
0x00F0, // Range Minimum
0x00F0, // Range Maximum
0x10, // Alignment
0x10, // Length
)
IRQNoFlags ()
{13}
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (CRS)
}
}
Device (UAR1)
{
Name (_HID, EisaId ("PNP0501")) // _HID: Hardware ID
Name (_EJD, "\\_SB_.PCI0.PCIE.GDCK") // _EJD: Ejection Dependent Device
Method (_STA, 0, NotSerialized) // _STA: Status
{
Store (PNPQ (0x02), Local1)
Return (Local1)
}
Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
{
PNPD (0x02)
}
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (PNPG (0x02))
}
Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings
{
Name (BUF0, ResourceTemplate ()
{
StartDependentFn (0x01, 0x01)
{
IRQ (Edge, ActiveHigh, Shared, )
{3,4,6,12}
IO (Decode16,
0x03F8, // Range Minimum
0x03F8, // Range Maximum
0x08, // Alignment
0x08, // Length
)
}
StartDependentFn (0x01, 0x01)
{
IRQ (Edge, ActiveHigh, Shared, )
{3,4,6,12}
IO (Decode16,
0x02F8, // Range Minimum
0x02F8, // Range Maximum
0x08, // Alignment
0x08, // Length
)
}
StartDependentFn (0x01, 0x01)
{
IRQ (Edge, ActiveHigh, Shared, )
{3,4,6,12}
IO (Decode16,
0x03E8, // Range Minimum
0x03E8, // Range Maximum
0x08, // Alignment
0x08, // Length
)
}
StartDependentFn (0x01, 0x01)
{
IRQ (Edge, ActiveHigh, Shared, )
{3,4,6,12}
IO (Decode16,
0x02E8, // Range Minimum
0x02E8, // Range Maximum
0x08, // Alignment
0x08, // Length
)
If this is not the place for this, I would like to find a place as I could use some help with this. My guess is that the pss table is written in a way that either passes info to Linux in a way it can't understsand or not at all. It'll probably need to be rewritten in order for it to be compatible with Linux. The processor is a 745 Pentium M. A copy of my DSDT follows:
/*
* Intel ACPI Component Architecture
* AML Disassembler version 20130214-32 [Feb 24 2013]
* Copyright © 2000 - 2013 Intel Corporation
*
* Disassembly of DSDT.aml, Mon Feb 25 12:28:46 2013
*
* Original Table Header:
* Signature "DSDT"
* Length 0x000033B2 (13234)
* Revision 0x01 **** 32-bit table (V1), no 64-bit math support
* Checksum 0xC3
* OEM ID "INT430"
* OEM Table ID "SYSFexxx"
* OEM Revision 0x00001001 (4097)
* Compiler ID "INTL"
* Compiler Version 0x20101013 (537923603)
*/
DefinitionBlock ("DSDT.aml", "DSDT", 1, "INT430", "SYSFexxx", 0x00001001)
{
Name (VERS, Package (0x03)
{
"Project: DELL Mojave",
"Date: 01/28/1998",
"Ver: 1.00.04"
})
Event (EJTD)
Name (MISC, Buffer (0x09)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
})
CreateByteField (MISC, Zero, MIS0)
CreateByteField (MISC, 0x02, MIS2)
CreateByteField (MISC, 0x03, MIS3)
CreateByteField (MISC, 0x04, MIS4)
CreateByteField (MISC, 0x05, MIS5)
CreateByteField (MISC, 0x06, MIS6)
CreateByteField (MISC, 0x07, MIS7)
CreateByteField (MISC, 0x08, MIS8)
Mutex (SMIX, 0x01)
Method (SMI, 2, NotSerialized)
{
Acquire (SMIX, 0xFFFF)
Store (Arg1, \_SB.SMIA)
Store (Arg0, \_SB.SMIC)
Store (\_SB.SMIC, Local0)
While (LNotEqual (Local0, Zero))
{
Store (\_SB.SMIC, Local0)
}
Store (\_SB.SMIA, Local1)
Release (SMIX)
Return (Local1)
}
Name (SXX0, Buffer (0x0100) {})
Name (SXX1, Buffer (0x08) {})
CreateWordField (SXX1, Zero, SXX2)
CreateWordField (SXX1, 0x04, SXX3)
Method (SX10, 0, NotSerialized)
{
Acquire (SMIX, 0xFFFF)
Store (Zero, SXX2)
}
Method (SX30, 1, NotSerialized)
{
Store (SXX2, Local0)
Increment (Local0)
If (LLessEqual (Local0, SizeOf (SXX0)))
{
CreateByteField (SXX0, SXX2, SX20)
Store (Arg0, SX20)
Store (Local0, SXX2)
}
}
Method (SX31, 1, NotSerialized)
{
Store (SXX2, Local0)
Add (Local0, 0x02, Local0)
If (LLessEqual (Local0, SizeOf (SXX0)))
{
CreateWordField (SXX0, SXX2, SX21)
Store (Arg0, SX21)
Store (Local0, SXX2)
}
}
Method (SX32, 1, NotSerialized)
{
Store (SXX2, Local0)
Add (Local0, 0x04, Local0)
If (LLessEqual (Local0, SizeOf (SXX0)))
{
CreateDWordField (SXX0, SXX2, SX22)
Store (Arg0, SX22)
Store (Local0, SXX2)
}
}
Method (SX33, 2, NotSerialized)
{
If (LLess (Arg1, SizeOf (Arg0)))
{
CreateByteField (Arg0, Arg1, SX20)
SX30 (SX20)
}
}
Method (SX34, 2, NotSerialized)
{
Store (Zero, Local0)
While (LLess (Local0, Arg1))
{
SX33 (Arg0, Local0)
Increment (Local0)
}
}
Method (SXX6, 2, NotSerialized)
{
Store (Arg1, \_SB.SMIA)
Store (Arg0, \_SB.SMIC)
Store (\_SB.SMIC, Local0)
While (LNotEqual (Local0, Zero))
{
Store (\_SB.SMIC, Local0)
}
Return (\_SB.SMIA)
}
Method (SXX5, 2, NotSerialized)
{
If (LLess (Arg1, SizeOf (Arg0)))
{
CreateByteField (Arg0, Arg1, SX20)
SXX6 (0x7C, SX20)
}
}
Method (SXX4, 0, NotSerialized)
{
SXX6 (0x7B, Zero)
Store (Zero, Local0)
While (LLess (Local0, SXX2))
{
SXX5 (SXX0, Local0)
Increment (Local0)
}
}
Method (SXX8, 2, NotSerialized)
{
If (LLess (Arg1, SizeOf (Arg0)))
{
CreateByteField (Arg0, Arg1, SX20)
Store (SXX6 (0x7D, Zero), SX20)
}
}
Method (SXX7, 0, NotSerialized)
{
Store (Zero, Local0)
While (LLess (Local0, SXX3))
{
Add (SXX2, Local0, Local1)
SXX8 (SXX0, Local1)
Increment (Local0)
}
}
Method (SX11, 0, NotSerialized)
{
SXX4 ()
Store (SXX6 (0x79, Zero), SXX3)
Add (SXX2, SXX3, Local0)
If (LLess (SizeOf (SXX0), Local0))
{
Store (SizeOf (SXX0), Local0)
Subtract (Local0, SXX2, Local0)
Store (Local0, SXX3)
}
SXX7 ()
}
Method (SX40, 0, NotSerialized)
{
Store (SXX2, Local0)
Increment (Local0)
If (LLessEqual (Local0, SizeOf (SXX0)))
{
CreateByteField (SXX0, SXX2, SX20)
Store (Local0, SXX2)
Return (SX20)
}
Return (Zero)
}
Method (SX41, 0, NotSerialized)
{
Store (SXX2, Local0)
Add (Local0, 0x02, Local0)
If (LLessEqual (Local0, SizeOf (SXX0)))
{
CreateWordField (SXX0, SXX2, SX21)
Store (Local0, SXX2)
Return (SX21)
}
Return (Zero)
}
Method (SX42, 0, NotSerialized)
{
Store (SXX2, Local0)
Add (Local0, 0x04, Local0)
If (LLessEqual (Local0, SizeOf (SXX0)))
{
CreateDWordField (SXX0, SXX2, SX22)
Store (Local0, SXX2)
Return (SX22)
}
Return (Zero)
}
Method (SX43, 2, NotSerialized)
{
If (LLess (Arg1, SizeOf (Arg0)))
{
CreateByteField (Arg0, Arg1, SX20)
Store (SX40 (), SX20)
}
}
Method (SX44, 2, NotSerialized)
{
Store (Zero, Local0)
While (LLess (Local0, Arg1))
{
SX43 (Arg0, Local0)
Increment (Local0)
}
}
Method (SX45, 0, NotSerialized)
{
Store (SX40 (), Local0)
Name (SX23, Buffer (Local0) {})
SX44 (SX23, Local0)
Return (SX23)
}
Method (SX12, 0, NotSerialized)
{
Release (SMIX)
}
Method (PNPQ, 1, NotSerialized)
{
SX10 ()
SX30 (Zero)
SX30 (0x02)
SX30 (Arg0)
SX11 ()
Store (SX40 (), Local0)
SX12 ()
Return (Local0)
}
Method (PNPD, 1, NotSerialized)
{
SX10 ()
SX30 (Zero)
SX30 (0x03)
SX30 (Arg0)
SX11 ()
SX12 ()
}
Method (PNPG, 1, NotSerialized)
{
SX10 ()
SX30 (Zero)
SX30 (Zero)
SX30 (Arg0)
SX11 ()
Name (PGET, Buffer (SXX3) {})
SX44 (PGET, SXX3)
SX12 ()
Return (PGET)
}
Method (PNPS, 2, NotSerialized)
{
SX10 ()
SX30 (Zero)
SX30 (One)
SX30 (Arg0)
SX34 (Arg1, SizeOf (Arg1))
SX11 ()
SX12 ()
}
Method (PSW, 2, NotSerialized)
{
SX10 ()
SX30 (0x06)
SX30 (Arg0)
SX30 (Arg1)
SX11 ()
SX12 ()
}
Method (DSS, 2, NotSerialized)
{
SX10 ()
SX30 (0x08)
SX30 (Arg0)
SX32 (Arg1)
SX11 ()
SX12 ()
}
Method (GMEM, 0, NotSerialized)
{
SX10 ()
SX30 (0x07)
SX11 ()
Store (SX42 (), Local0)
SX12 ()
Return (Local0)
}
Method (GORL, 0, NotSerialized)
{
SX10 ()
SX30 (0x09)
SX11 ()
Store (SX42 (), Local0)
SX12 ()
Return (Local0)
}
Name (W98S, "Microsoft Windows")
Name (NT5S, "Microsoft Windows NT")
Name (WINM, "Microsoft WindowsME: Millennium Edition")
Name (WXP, "Windows 2001")
Method (GETC, 2, NotSerialized)
{
CreateByteField (Arg0, Arg1, TCHR)
Return (TCHR)
}
Method (STRE, 2, NotSerialized)
{
Name (STR1, Buffer (0x50) {})
Name (STR2, Buffer (0x50) {})
Store (Arg0, STR1)
Store (Arg1, STR2)
Store (Zero, Local0)
Store (One, Local1)
While (Local1)
{
Store (GETC (STR1, Local0), Local1)
Store (GETC (STR2, Local0), Local2)
If (LNotEqual (Local1, Local2))
{
Return (Zero)
}
Increment (Local0)
}
Return (One)
}
Method (OSID, 0, NotSerialized)
{
If (LEqual (MIS3, Zero))
{
Store (One, MIS3)
If (CondRefOf (\_OSI, Local0))
{
If (_OSI (WXP))
{
Store (0x10, MIS3)
}
}
Else
{
If (STRE (_OS, W98S))
{
Store (0x02, MIS3)
}
If (STRE (_OS, NT5S))
{
Store (0x08, MIS3)
}
If (STRE (_OS, WINM))
{
Store (0x04, MIS3)
}
}
}
Return (MIS3)
}
Method (SOST, 0, NotSerialized)
{
SX10 ()
SX30 (0x0A)
OSID ()
SX30 (MIS3)
SX11 ()
SX12 ()
}
Name (WAKE, Zero)
Method (NEVT, 0, NotSerialized)
{
Store (SMI (0x8C, Zero), Local0)
If (And (Local0, One))
{
Notify (\_SB.PBTN, 0x80)
}
If (And (Local0, 0x02))
{
EJTE ()
}
If (And (Local0, 0x04))
{
LIDE ()
}
If (And (Local0, 0x08))
{
PWRE ()
}
If (And (Local0, 0x10))
{
DCKE ()
}
If (And (Local0, 0x20))
{
BAYE ()
}
If (And (Local0, 0x40))
{
Notify (\_SB.SBTN, 0x80)
}
If (And (Local0, 0x80))
{
SMIE ()
}
}
Method (EJTE, 0, NotSerialized)
{
SMI (0xA6, One)
Notify (\_SB.PCI0.PCIE.GDCK, One)
}
Method (LIDE, 0, NotSerialized)
{
Store (SMI (0x43, Zero), Local0)
If (LNotEqual (Local0, Zero))
{
If (LEqual (OSID (), 0x10))
{
Notify (\_SB.PCI0, Zero)
Sleep (0x03E8)
}
Else
{
If (LEqual (OSID (), 0x08))
{
Notify (\_SB.PCI0.VID, Zero)
Notify (\_SB.PCI0.VID2, Zero)
Sleep (0x02EE)
}
}
Notify (\_SB.PCI0.VID, 0x80)
}
Notify (\_SB.LID, 0x80)
}
Method (PWRE, 0, NotSerialized)
{
Store (SMI (0x98, Zero), Local0)
XOr (Local0, MIS0, Local1)
And (Local0, 0x13, MIS0)
If (And (Local1, One))
{
Notify (\_SB.AC, 0x80)
}
And (MIS0, 0x02, Local2)
If (And (Local1, 0x02))
{
If (Local2)
{
Notify (\_SB.BAT0, 0x81)
}
Else
{
Notify (\_SB.BAT0, 0x81)
}
}
If (And (Local1, 0x04))
{
If (Local2)
{
Notify (\_SB.BAT0, 0x80)
}
}
If (And (Local1, 0x08))
{
If (Local2)
{
Notify (\_SB.BAT0, 0x80)
}
}
}
Method (DCKE, 0, NotSerialized)
{
Store (SMI (0x65, 0x22), Local0)
And (Local0, 0x08, MIS8)
Store (SMI (0x87, Zero), Local0)
XOr (Local0, MIS7, Local1)
Store (Local0, MIS7)
Store (Local0, MIS2)
If (Local1)
{
If (Local0)
{
Notify (\_SB.PCI0.PCIE.GDCK, Zero)
}
Else
{
SMI (0x8D, Zero)
If (MIS8)
{
Signal (EJTD)
}
Else
{
Notify (\_SB.PCI0.PCIE.GDCK, One)
}
}
}
}
Method (BAYE, 0, NotSerialized)
{
Store (SMI (0x86, Zero), Local0)
If (And (Local0, 0x02))
{
SMI (0x90, One)
}
Else
{
SMI (0x90, Zero)
}
SMI (0xBA, Zero)
}
Method (SMIE, 0, NotSerialized)
{
Store (SMI (0x96, Zero), Local0)
If (And (Local0, One))
{
Notify (\_TZ.THM, 0x80)
}
If (And (Local0, 0x20))
{
Notify (\_SB.PCI0.VID, 0x81)
}
If (And (Local0, 0x02))
{
If (LEqual (OSID (), 0x10))
{
Notify (\_SB.PCI0, Zero)
Sleep (0x03E8)
}
Else
{
If (LEqual (OSID (), 0x08))
{
Notify (\_SB.PCI0.VID, Zero)
Notify (\_SB.PCI0.VID2, Zero)
Sleep (0x02EE)
}
}
Notify (\_SB.PCI0.VID, 0x80)
}
If (And (Local0, 0x04))
{
Notify (\_SB.BAT0, 0x81)
}
If (And (Local0, 0x08))
{
Notify (\_PR.CPU0, 0x80)
}
If (And (Local0, 0x40))
{
Store (Zero, MIS5)
}
}
Method (_PTS, 1, NotSerialized) // _PTS: Prepare To Sleep
{
SMI (0x8A, Arg0)
}
Method (DTGP, 5, NotSerialized)
{
If (LEqual (Arg0, Buffer (0x10)
{
/* 0000 */ 0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
/* 0008 */ 0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
}))
{
If (LEqual (Arg1, One))
{
If (LEqual (Arg2, Zero))
{
Store (Buffer (One)
{
0x03
}, Arg4)
Return (One)
}
If (LEqual (Arg2, One))
{
Return (One)
}
}
}
Store (Buffer (One)
{
0x00
}, Arg4)
Return (Zero)
}
Method (_WAK, 1, NotSerialized) // _WAK: Wake
{
SMI (0xA7, MIS2)
SMI (0x9A, Arg0)
If (LEqual (Arg0, 0x04))
{
Notify (\_SB.PBTN, 0x02)
Store (SMI (0x98, Zero), MIS0)
Store (One, MIS4)
SOST ()
}
Notify (\_SB.AC, 0x80)
Store (SMI (0x87, Zero), Local0)
XOr (Local0, MIS2, Local1)
If (Local1)
{
If (Local0)
{
Notify (\_SB.PCI0.PCIE.GDCK, Zero)
}
Else
{
If (LEqual (OSID (), 0x02))
{
SMI (0x8D, Zero)
Notify (\_SB.PCI0.PCIE.GDCK, One)
}
}
}
Store (Local0, MIS2)
SMI (0xA6, Zero)
}
Method (NWAK, 0, NotSerialized)
{
Store (One, WAKE)
Store (SMI (0x89, Zero), Local0)
Store (Zero, Local1)
If (LEqual (Local0, Zero))
{
Store (One, Local1)
}
If (And (Local0, One))
{
Store (One, Local1)
}
If (And (Local0, 0x02))
{
LIDE ()
}
If (And (Local0, 0x10))
{
Notify (\_SB.PCI0.PCIE.GDCK, 0x02)
}
If (And (Local0, 0x40))
{
Notify (\_SB.PCI0.PCIE.GDCK, One)
}
If (And (Local0, 0x20))
{
If (LEqual (OSID (), 0x02))
{
Store (One, Local1)
}
}
Notify (\_SB.BAT0, 0x81)
If (Local1)
{
Notify (\_SB.PBTN, 0x02)
}
Store (Zero, WAKE)
}
Scope (_GPE)
{
Method (_L1D, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
NEVT ()
}
Method (_L1C, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
NWAK ()
}
Method (_L0B, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
Store (Zero, Local0)
Notify (\_SB.PCI0, 0x02)
}
Method (_L18, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
Store (Zero, Local0)
}
Method (_L03, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
Notify (\_SB.PCI0.USB0, 0x02)
}
Method (_L04, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
Notify (\_SB.PCI0.USB1, 0x02)
}
Method (_L0C, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
Notify (\_SB.PCI0.USB2, 0x02)
}
Method (_L0D, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
Notify (\_SB.PCI0.USB3, 0x02)
}
Method (_L05, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
Notify (\_SB.PCI0.MODM, 0x02)
}
}
Name (CRS0, Buffer (0x0101) {})
CreateByteField (CRS0, 0x0100, CRS1)
Method (CRS3, 0, NotSerialized)
{
Store (Zero, CRS1)
}
Method (CRS4, 1, NotSerialized)
{
CreateByteField (CRS0, CRS1, CRS2)
Store (Arg0, CRS2)
Increment (CRS1)
}
Method (CRS5, 1, NotSerialized)
{
CreateWordField (CRS0, CRS1, CRS2)
Store (Arg0, CRS2)
Increment (CRS1)
Increment (CRS1)
}
Method (CRS6, 1, NotSerialized)
{
CreateDWordField (CRS0, CRS1, CRS2)
Store (Arg0, CRS2)
Add (CRS1, 0x04, CRS1)
}
Method (CR_0, 3, NotSerialized)
{
CRS4 (0x86)
CRS5 (0x09)
CRS4 (Arg0)
CRS6 (Arg1)
CRS6 (Arg2)
}
Method (CR_1, 4, NotSerialized)
{
CRS4 (0x47)
CRS4 (One)
CRS5 (Arg0)
CRS5 (Arg1)
CRS4 (Arg2)
CRS4 (Arg3)
}
Method (CR_2, 2, NotSerialized)
{
CRS4 (0x88)
CRS5 (0x0D)
CRS4 (0x02)
CRS4 (0x0C)
CRS4 (Zero)
CRS5 (Zero)
CRS5 (Arg0)
Add (Arg0, Arg1, Local0)
Decrement (Local0)
CRS5 (Local0)
CRS5 (Zero)
CRS5 (Arg1)
}
Method (CR_3, 2, NotSerialized)
{
CRS4 (0x88)
CRS5 (0x0D)
CRS4 (One)
CRS4 (0x0C)
CRS4 (0x03)
CRS5 (Zero)
CRS5 (Arg0)
Add (Arg0, Arg1, Local0)
Decrement (Local0)
CRS5 (Local0)
CRS5 (Zero)
CRS5 (Arg1)
}
Method (CR_4, 2, NotSerialized)
{
CRS4 (0x87)
CRS5 (0x17)
CRS4 (Zero)
CRS4 (0x0C)
CRS4 (0x03)
CRS6 (Zero)
CRS6 (Arg0)
Add (Arg0, Arg1, Local0)
Decrement (Local0)
CRS6 (Local0)
CRS6 (Zero)
CRS6 (Arg1)
}
Method (CR_5, 0, NotSerialized)
{
CRS5 (0x79)
}
Scope (_PR)
{
Processor (CPU0, 0x00, 0x000008E0, 0x06)
{
Name (PDC0, 0xF0000000)
Method (_PDC, 1, NotSerialized) // _PDC: Processor Driver Capabilities
{
CreateDWordField (Arg0, 0x08, CAP0)
Store (CAP0, PDC0)
}
Method (_PCT, 0, NotSerialized) // _PCT: Performance Control
{
If (LEqual (And (PDC0, One), One))
{
Return (Package (0x02)
{
ResourceTemplate ()
{
Register (FFixedHW,
0x40, // Bit Width
0x00, // Bit Offset
0x0000000000000199, // Address
,)
},
ResourceTemplate ()
{
Register (FFixedHW,
0x10, // Bit Width
0x00, // Bit Offset
0x0000000000000198, // Address
,)
}
})
}
Else
{
Return (Package (0x02)
{
ResourceTemplate ()
{
Register (SystemIO,
0x10, // Bit Width
0x00, // Bit Offset
0x00000000000000B2, // Address
,)
},
ResourceTemplate ()
{
Register (SystemIO,
0x08, // Bit Width
0x00, // Bit Offset
0x00000000000000B3, // Address
,)
}
})
}
}
Name (PSSX, Package (0x08)
{
Package (0x06) //duplicate this frequncy scale step not used
{
0x0640,
0x6590,
0x0A,
0x0A,
Zero,
Zero
},
Package (0x06) // 1.80 GHz
{
0x0640,
0x6590,
0x0A,
0x0A,
Zero,
Zero
},
Package (0x06) //1.60 GHz
{
0x05DC,
0x61A8,
0x0A,
0x0A,
Zero,
Zero
},
Package (0x06) //1.40 GHz
{
0x0578,
0x5DC0,
0x0A,
0x0A,
Zero,
Zero
},
Package (0x06) //1.20 GHz
{
0x0514,
0x59D8,
0x0A,
0x0A,
Zero,
Zero
},
Package (0x06) //1.00 GHz
{
0x04B0,
0x55F0,
0x0A,
0x0A,
Zero,
Zero
},
Package (0x06) //800 MHz
{
0x044C,
0x5208,
0x0A,
0x0A,
Zero,
Zero
},
Package (0x06) //600 MHz
{
0x03E8,
0x4E20,
0x0A,
0x0A,
Zero,
Zero
}
})
Name (PSSN, Zero)
Method (_PSS, 0, NotSerialized) // _PSS: Performance Supported States
{
SX10 ()
If (LEqual (And (PDC0, One), One))
{
SX30 (0x0C)
}
Else
{
SX30 (0x0B)
}
SX11 ()
Store (SX40 (), PSSN)
Subtract (0x08, 0x08, Local1)
While (LLess (Local1, 0x08))
{
Store (SX42 (), Index (DerefOf (Index (PSSX, Local1)), Zero))
Store (SX42 (), Index (DerefOf (Index (PSSX, Local1)), One))
Store (SX42 (), Index (DerefOf (Index (PSSX, Local1)), 0x02))
Store (SX42 (), Index (DerefOf (Index (PSSX, Local1)), 0x03))
Store (SX41 (), Index (DerefOf (Index (PSSX, Local1)), 0x04))
Store (SX41 (), Index (DerefOf (Index (PSSX, Local1)), 0x05))
Increment (Local1)
}
SX12 ()
Subtract (0x08, 0x08, Local1)
While (LLess (Local1, 0x08))
{
Increment (Local1)
}
Return (PSSX)
}
Method (_PPC, 0, NotSerialized) // _PPC: Performance Present Capabilites
{
Subtract (0x08, PSSN, Local0)
Add (Local0, SMI (0xAD, Zero), Local0)
Return (Local0)
}
Name (DCST, Package (0x05)
{
0x04,
Package (0x04)
{
ResourceTemplate ()
{
Register (FFixedHW,
0x08, // Bit Width
0x00, // Bit Offset
0x0000000000000000, // Address
,)
},
One,
One,
0x03E8
},
Package (0x04)
{
ResourceTemplate ()
{
Register (SystemIO,
0x08, // Bit Width
0x00, // Bit Offset
0x0000000000000814, // Address
,)
},
0x02,
One,
0x01F4
},
Package (0x04)
{
ResourceTemplate ()
{
Register (SystemIO,
0x08, // Bit Width
0x00, // Bit Offset
0x0000000000000815, // Address
,)
},
0x03,
0x55,
0xFA
},
Package (0x04)
{
ResourceTemplate ()
{
Register (SystemIO,
0x08, // Bit Width
0x00, // Bit Offset
0x0000000000000816, // Address
,)
},
0x03,
0xB9,
0x64
}
})
Name (NCST, Package (0x03)
{
0x02,
Package (0x04)
{
ResourceTemplate ()
{
Register (FFixedHW,
0x08, // Bit Width
0x00, // Bit Offset
0x0000000000000000, // Address
,)
},
One,
One,
0x03E8
},
Package (0x04)
{
ResourceTemplate ()
{
Register (SystemIO,
0x08, // Bit Width
0x00, // Bit Offset
0x0000000000000814, // Address
,)
},
0x02,
One,
0x01F4
}
})
Method (_CST, 0, NotSerialized) // _CST: C-States
{
Store (SMI (0x5E, Zero), Local0)
If (LEqual (Local0, Zero))
{
Return (NCST)
}
Return (DCST)
}
}
}
Name (_S0, Package (0x03) // _S0_: S0 System State
{
Zero,
Zero,
Zero
})
Name (_S1, Package (0x03) // _S1_: S1 System State
{
0x02,
Zero,
Zero
})
Name (_S3, Package (0x03) // _S3_: S3 System State
{
0x05,
Zero,
Zero
})
Name (_S4, Package (0x03) // _S4_: S4 System State
{
0x07,
Zero,
Zero
})
Name (_S5, Package (0x03) // _S5_: S5 System State
{
0x07,
Zero,
Zero
})
Scope (_TZ)
{
ThermalZone (THM)
{
Method (_CRT, 0, NotSerialized) // _CRT: Critical Temperature
{
Store (0x63, Local0)
Multiply (Local0, 0x0A, Local0)
Add (Local0, 0x0AAC, Local0)
Return (Local0)
}
Method (_TMP, 0, NotSerialized) // _TMP: Temperature
{
Store (GINF (0x04), Local0)
Return (Local0)
}
Method (GINF, 1, NotSerialized)
{
SX10 ()
SX30 (Arg0)
SX11 ()
Store (SX41 (), Local0)
SX12 ()
If (LLess (Local0, 0x0BA6))
{
Store (0x0BA6, Local0)
}
Return (Local0)
}
}
}
Scope (_SB)
{
OperationRegion (SMIR, SystemIO, 0xB2, 0x02)
Field (SMIR, ByteAcc, NoLock, Preserve)
{
SMIC, 8,
SMID, 8
}
OperationRegion (SMR2, SystemIO, 0x86, One)
Field (SMR2, ByteAcc, NoLock, Preserve)
{
SMIA, 8
}
Device (AC)
{
Name (_HID, "ACPI0003") // _HID: Hardware ID
Name (_PCL, Package (0x02) // _PCL: Power Consumer List
{
_SB,
BAT0
})
Method (_PSR, 0, NotSerialized) // _PSR: Power Source
{
Store (SMI (0x85, Zero), Local0)
And (Local0, One, Local0)
Return (Local0)
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0F)
}
}
Name (BIFP, Package (0x0D) {})
Method (BIF, 1, NotSerialized)
{
SX10 ()
SX30 (One)
SX30 (Arg0)
SX11 ()
Store (SX42 (), Index (BIFP, Zero))
Store (SX42 (), Index (BIFP, One))
Store (SX42 (), Index (BIFP, 0x02))
Store (SX42 (), Index (BIFP, 0x03))
Store (SX42 (), Index (BIFP, 0x04))
Store (SX42 (), Index (BIFP, 0x05))
Store (SX42 (), Index (BIFP, 0x06))
Store (SX42 (), Index (BIFP, 0x07))
Store (SX42 (), Index (BIFP, 0x08))
Store (SX45 (), Index (BIFP, 0x09))
Store (SX45 (), Index (BIFP, 0x0A))
Store (SX45 (), Index (BIFP, 0x0B))
Store (SX45 (), Index (BIFP, 0x0C))
SX12 ()
Return (BIFP)
}
Device (PNLF)
{
Name (_HID, EisaId ("APP0002")) // _HID: Hardware ID
Name (_CID, "backlight") // _CID: Compatible ID
Name (_UID, 0x0A) // _UID: Unique ID
Name (_STA, 0x0B) // _STA: Status
}
Device (BAT0)
{
Name (_HID, EisaId ("PNP0C0A")) // _HID: Hardware ID
Name (_UID, One) // _UID: Unique ID
Name (_PCL, Package (0x01) // _PCL: Power Consumer List
{
_SB
})
Method (_STA, 0, NotSerialized) // _STA: Status
{
And (MIS0, 0x02, Local0)
If (Local0)
{
Return (0x1F)
}
Return (0x0F)
}
Method (_BIF, 0, NotSerialized) // _BIF: Battery Information
{
Return (BIF (One))
}
Method (_BST, 0, NotSerialized) // _BST: Battery Status
{
SX10 ()
SX30 (0x02)
SX30 (One)
SX11 ()
Name (BST0, Package (0x04) {})
Store (SX42 (), Index (BST0, Zero))
Store (SX42 (), Index (BST0, One))
Store (SX42 (), Index (BST0, 0x02))
Store (SX42 (), Index (BST0, 0x03))
SX12 ()
Return (BST0)
}
Method (_BTP, 1, NotSerialized) // _BTP: Battery Trip Point
{
SX10 ()
SX30 (0x03)
SX30 (One)
SX32 (Arg0)
SX11 ()
SX12 ()
Sleep (0xFA)
}
}
Device (LID)
{
Name (_HID, EisaId ("PNP0C0D")) // _HID: Hardware ID
Method (_LID, 0, NotSerialized) // _LID: Lid Status
{
Store (SMI (0x84, Zero), Local0)
Return (Local0)
}
Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
{
0x1C,
0x03
})
Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
{
PSW (Arg0, 0x02)
}
}
Device (PBTN)
{
Name (_HID, EisaId ("PNP0C0C")) // _HID: Hardware ID
Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
{
0x1C,
0x04
})
Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
{
PSW (Arg0, One)
}
}
Device (SBTN)
{
Name (_HID, EisaId ("PNP0C0E")) // _HID: Hardware ID
}
Device (MB1)
{
Name (_HID, EisaId ("PNP0C01")) // _HID: Hardware ID
Name (_UID, One) // _UID: Unique ID
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
CRS3 ()
CR_0 (One, Zero, 0x0009FC00)
CR_0 (One, 0x0009FC00, 0x0400)
If (LOr (LEqual (OSID (), 0x08), LEqual (OSID (), 0x10)))
{
Store (GORL (), Local0)
CR_0 (Zero, 0x000C0000, Local0)
}
CR_0 (Zero, 0x000E0000, 0x00020000)
Store (GMEM (), Local0)
Subtract (Local0, 0x00010000, Local1)
CR_0 (One, 0x00100000, Local1)
Add (Local1, 0x00100000, Local1)
CR_0 (One, Local1, 0x00010000)
CR_0 (Zero, 0xFEC10000, 0x00010000)
CR_0 (Zero, 0xFEDA0000, 0x00060000)
CR_0 (Zero, 0xFFB00000, 0x00100000)
CR_5 ()
Return (CRS0)
}
}
Device (PCI0)
{
Name (_HID, EisaId ("PNP0A03")) // _HID: Hardware ID
Name (_ADR, Zero) // _ADR: Address
Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
{
0x0B,
0x03
})
Method (_INI, 0, NotSerialized) // _INI: Initialize
{
Store (SMI (0x98, Zero), MIS0)
And (MIS0, 0x13, MIS0)
Store (SMI (0x87, Zero), MIS2)
Store (One, MIS4)
SOST ()
}
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
CRS3 ()
CR_2 (Zero, 0x0100)
CR_3 (Zero, 0x0CF8)
CR_1 (0x0CF8, 0x0CF8, One, 0x08)
CR_3 (0x0D00, 0xF300)
CR_4 (0x000A0000, 0x00020000)
CR_4 (0x000D0000, 0x00010000)
Add (0x00100000, GMEM (), Local0)
Subtract (0xFEC10000, Local0, Local1)
If (Local1)
{
CR_4 (Local0, Local1)
}
Subtract (0xFEDA0000, 0xFEC20000, Local1)
CR_4 (0xFEC20000, Local1)
Subtract (0xFFB00000, 0xFEE00000, Local1)
CR_4 (0xFEE00000, Local1)
CR_5 ()
Return (CRS0)
}
Device (MB2)
{
Name (_HID, EisaId ("PNP0C01")) // _HID: Hardware ID
Name (_UID, 0x02) // _UID: Unique ID
Name (CRS, ResourceTemplate ()
{
IO (Decode16,
0x0092, // Range Minimum
0x0092, // Range Maximum
0x02, // Alignment
0x01, // Length
)
IO (Decode16,
0x00B2, // Range Minimum
0x00B2, // Range Maximum
0x02, // Alignment
0x01, // Length
)
IO (Decode16,
0x0020, // Range Minimum
0x0020, // Range Maximum
0x10, // Alignment
0x02, // Length
)
IO (Decode16,
0x00A0, // Range Minimum
0x00A0, // Range Maximum
0x10, // Alignment
0x02, // Length
)
IRQNoFlags ()
{2}
IO (Decode16,
0x04D0, // Range Minimum
0x04D0, // Range Maximum
0x10, // Alignment
0x02, // Length
)
IO (Decode16,
0x0800, // Range Minimum
0x0800, // Range Maximum
0x10, // Alignment
0x06, // Length
)
IO (Decode16,
0x0808, // Range Minimum
0x0808, // Range Maximum
0x08, // Alignment
0x08, // Length
)
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (CRS)
}
}
Device (MB3)
{
Name (_HID, EisaId ("PNP0C01")) // _HID: Hardware ID
Name (_UID, 0x03) // _UID: Unique ID
Name (CRS, ResourceTemplate ()
{
IO (Decode16,
0xF400, // Range Minimum
0xF400, // Range Maximum
0x01, // Alignment
0xFF, // Length
)
IO (Decode16,
0x0086, // Range Minimum
0x0086, // Range Maximum
0x02, // Alignment
0x01, // Length
)
IO (Decode16,
0x00B3, // Range Minimum
0x00B3, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0806, // Range Minimum
0x0806, // Range Maximum
0x02, // Alignment
0x02, // Length
)
IO (Decode16,
0x0810, // Range Minimum
0x0810, // Range Maximum
0x10, // Alignment
0x50, // Length
)
IO (Decode16,
0x0860, // Range Minimum
0x0860, // Range Maximum
0x10, // Alignment
0x20, // Length
)
IO (Decode16,
0x0880, // Range Minimum
0x0880, // Range Maximum
0x10, // Alignment
0x40, // Length
)
IO (Decode16,
0x08C0, // Range Minimum
0x08C0, // Range Maximum
0x10, // Alignment
0x20, // Length
)
IO (Decode16,
0x08E0, // Range Minimum
0x08E0, // Range Maximum
0x10, // Alignment
0x20, // Length
)
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (CRS)
}
}
Device (ISAB)
{
Name (_ADR, 0x001F0000) // _ADR: Address
OperationRegion (PIR1, PCI_Config, 0x60, 0x04)
OperationRegion (PIR2, PCI_Config, 0x68, 0x04)
OperationRegion (FDIS, PCI_Config, 0xF2, 0x02)
Device (PS2M)
{
Name (_HID, EisaId ("PNP0F13")) // _HID: Hardware ID
Name (CRS, ResourceTemplate ()
{
IRQNoFlags ()
{12}
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (CRS)
}
}
Device (KBC)
{
Name (_HID, EisaId ("PNP0303")) // _HID: Hardware ID
Name (CRS, ResourceTemplate ()
{
IO (Decode16,
0x0060, // Range Minimum
0x0060, // Range Maximum
0x10, // Alignment
0x01, // Length
)
IO (Decode16,
0x0064, // Range Minimum
0x0064, // Range Maximum
0x04, // Alignment
0x01, // Length
)
IRQNoFlags ()
{1}
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (CRS)
}
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
Store (Package (0x02)
{
"AAPL,has-embedded-fn-keys",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (RTC)
{
Name (_HID, EisaId ("PNP0B00")) // _HID: Hardware ID
Name (CRS, ResourceTemplate ()
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x10, // Alignment
0x02, // Length
)
IO (Decode16,
0x0072, // Range Minimum
0x0072, // Range Maximum
0x02, // Alignment
0x06, // Length
)
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (CRS)
}
}
Device (HPET)
{
Name (_HID, EisaId ("PNP0103")) // _HID: Hardware ID
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Name (HBAB, ResourceTemplate ()
{
IRQNoFlags ()
{0}
IRQNoFlags ()
{8}
Memory32Fixed (ReadOnly,
0xFED00000, // Address Base
0x00000400, // Address Length
)
})
Return (HBAB)
}
}
Device (TMR)
{
Name (_HID, EisaId ("PNP0100")) // _HID: Hardware ID
Name (CRS, ResourceTemplate ()
{
IO (Decode16,
0x0040, // Range Minimum
0x0040, // Range Maximum
0x10, // Alignment
0x04, // Length
)
IO (Decode16,
0x0050, // Range Minimum
0x0050, // Range Maximum
0x10, // Alignment
0x04, // Length
)
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (CRS)
}
}
Device (SPKR)
{
Name (_HID, EisaId ("PNP0800")) // _HID: Hardware ID
Name (CRS, ResourceTemplate ()
{
IO (Decode16,
0x0061, // Range Minimum
0x0061, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0063, // Range Minimum
0x0063, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0065, // Range Minimum
0x0065, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0067, // Range Minimum
0x0067, // Range Maximum
0x01, // Alignment
0x01, // Length
)
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (CRS)
}
}
Device (MB4)
{
Name (_HID, EisaId ("PNP0C01")) // _HID: Hardware ID
Name (_UID, 0x04) // _UID: Unique ID
Name (CRS, ResourceTemplate ()
{
IO (Decode16,
0x002E, // Range Minimum
0x002E, // Range Maximum
0x02, // Alignment
0x02, // Length
)
IO (Decode16,
0x004E, // Range Minimum
0x004E, // Range Maximum
0x02, // Alignment
0x02, // Length
)
IO (Decode16,
0x0900, // Range Minimum
0x0900, // Range Maximum
0x10, // Alignment
0x80, // Length
)
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (CRS)
}
}
Device (PIC)
{
Name (_HID, EisaId ("PNP0000")) // _HID: Hardware ID
Name (CRS, ResourceTemplate ()
{
IO (Decode16,
0x0024, // Range Minimum
0x0024, // Range Maximum
0x04, // Alignment
0x02, // Length
)
IO (Decode16,
0x0028, // Range Minimum
0x0028, // Range Maximum
0x04, // Alignment
0x02, // Length
)
IO (Decode16,
0x002C, // Range Minimum
0x002C, // Range Maximum
0x04, // Alignment
0x02, // Length
)
IO (Decode16,
0x0030, // Range Minimum
0x0030, // Range Maximum
0x04, // Alignment
0x02, // Length
)
IO (Decode16,
0x0034, // Range Minimum
0x0034, // Range Maximum
0x04, // Alignment
0x02, // Length
)
IO (Decode16,
0x0038, // Range Minimum
0x0038, // Range Maximum
0x04, // Alignment
0x02, // Length
)
IO (Decode16,
0x003C, // Range Minimum
0x003C, // Range Maximum
0x04, // Alignment
0x02, // Length
)
IO (Decode16,
0x00A4, // Range Minimum
0x00A4, // Range Maximum
0x04, // Alignment
0x02, // Length
)
IO (Decode16,
0x00A8, // Range Minimum
0x00A8, // Range Maximum
0x04, // Alignment
0x02, // Length
)
IO (Decode16,
0x00AC, // Range Minimum
0x00AC, // Range Maximum
0x04, // Alignment
0x02, // Length
)
IO (Decode16,
0x00B0, // Range Minimum
0x00B0, // Range Maximum
0x04, // Alignment
0x02, // Length
)
IO (Decode16,
0x00B4, // Range Minimum
0x00B4, // Range Maximum
0x04, // Alignment
0x02, // Length
)
IO (Decode16,
0x00B8, // Range Minimum
0x00B8, // Range Maximum
0x04, // Alignment
0x02, // Length
)
IO (Decode16,
0x00BC, // Range Minimum
0x00BC, // Range Maximum
0x04, // Alignment
0x02, // Length
)
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (CRS)
}
}
Device (MAD)
{
Name (_HID, EisaId ("PNP0200")) // _HID: Hardware ID
Name (CRS, ResourceTemplate ()
{
DMA (Compatibility, BusMaster, Transfer8, )
{4}
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x10, // Alignment
0x10, // Length
)
IO (Decode16,
0x0080, // Range Minimum
0x0080, // Range Maximum
0x10, // Alignment
0x06, // Length
)
IO (Decode16,
0x0087, // Range Minimum
0x0087, // Range Maximum
0x01, // Alignment
0x09, // Length
)
IO (Decode16,
0x00C0, // Range Minimum
0x00C0, // Range Maximum
0x10, // Alignment
0x20, // Length
)
IO (Decode16,
0x0010, // Range Minimum
0x0010, // Range Maximum
0x10, // Alignment
0x10, // Length
)
IO (Decode16,
0x0090, // Range Minimum
0x0090, // Range Maximum
0x10, // Alignment
0x02, // Length
)
IO (Decode16,
0x0093, // Range Minimum
0x0093, // Range Maximum
0x01, // Alignment
0x0D, // Length
)
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (CRS)
}
}
Device (COPR)
{
Name (_HID, EisaId ("PNP0C04")) // _HID: Hardware ID
Name (CRS, ResourceTemplate ()
{
IO (Decode16,
0x00F0, // Range Minimum
0x00F0, // Range Maximum
0x10, // Alignment
0x10, // Length
)
IRQNoFlags ()
{13}
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (CRS)
}
}
Device (UAR1)
{
Name (_HID, EisaId ("PNP0501")) // _HID: Hardware ID
Name (_EJD, "\\_SB_.PCI0.PCIE.GDCK") // _EJD: Ejection Dependent Device
Method (_STA, 0, NotSerialized) // _STA: Status
{
Store (PNPQ (0x02), Local1)
Return (Local1)
}
Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
{
PNPD (0x02)
}
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (PNPG (0x02))
}
Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings
{
Name (BUF0, ResourceTemplate ()
{
StartDependentFn (0x01, 0x01)
{
IRQ (Edge, ActiveHigh, Shared, )
{3,4,6,12}
IO (Decode16,
0x03F8, // Range Minimum
0x03F8, // Range Maximum
0x08, // Alignment
0x08, // Length
)
}
StartDependentFn (0x01, 0x01)
{
IRQ (Edge, ActiveHigh, Shared, )
{3,4,6,12}
IO (Decode16,
0x02F8, // Range Minimum
0x02F8, // Range Maximum
0x08, // Alignment
0x08, // Length
)
}
StartDependentFn (0x01, 0x01)
{
IRQ (Edge, ActiveHigh, Shared, )
{3,4,6,12}
IO (Decode16,
0x03E8, // Range Minimum
0x03E8, // Range Maximum
0x08, // Alignment
0x08, // Length
)
}
StartDependentFn (0x01, 0x01)
{
IRQ (Edge, ActiveHigh, Shared, )
{3,4,6,12}
IO (Decode16,
0x02E8, // Range Minimum
0x02E8, // Range Maximum
0x08, // Alignment
0x08, // Length
)