Thanks again for the reply. Can you tell me if this is right?
This is the scope _PR from my DSDT:
Scope (_PR)
{
Processor (CPU0, 0x01, 0x00000410, 0x06) {}
Processor (CPU1, 0x02, 0x00000410, 0x06) {}
Processor (CPU2, 0x03, 0x00000410, 0x06) {}
Processor (CPU3, 0x04, 0x00000410, 0x06) {}
Processor (CPU4, 0x05, 0x00000410, 0x06) {}
Processor (CPU5, 0x06, 0x00000410, 0x06) {}
Processor (CPU6, 0x07, 0x00000410, 0x06) {}
Processor (CPU7, 0x08, 0x00000410, 0x06) {}
}
If I use DSDTSE and extract the SSDT, i get this:
/*
* Intel ACPI Component Architecture
* AML Disassembler version 20091214
*
* Disassembly of ./SSDT.aml, Mon Mar 5 15:20:02 2012
*
*
* Original Table Header:
* Signature "SSDT"
* Length 0x000001D6 (470)
* Revision 0x01
* Checksum 0x10
* OEM ID "AMICPU"
* OEM Table ID "PROC"
* OEM Revision 0x00000001 (1)
* Compiler ID "MSFT"
* Compiler Version 0x03000001 (50331649)
*/
DefinitionBlock ("./SSDT.aml", "SSDT", 1, "AMICPU", "PROC", 0x00000001)
{
External (\_PR_.OSC_, IntObj)
External (\_PR_.PDC_, MethodObj) // 1 Arguments
Scope (\_PR)
{
Processor (P000, 0x01, 0x00000410, 0x06)
{
Method (_PDC, 1, NotSerialized)
{
\_PR.PDC (Arg0)
}
Method (_OSC, 4, NotSerialized)
{
Return (\_PR.OSC)
Arg0
Arg1
Arg2
Arg3
}
}
Processor (P001, 0x02, 0x00000410, 0x06)
{
Method (_PDC, 1, NotSerialized)
{
\_PR.PDC (Arg0)
}
Method (_OSC, 4, NotSerialized)
{
Return (\_PR.OSC)
Arg0
Arg1
Arg2
Arg3
}
}
Processor (P002, 0x03, 0x00000410, 0x06)
{
Method (_PDC, 1, NotSerialized)
{
\_PR.PDC (Arg0)
}
Method (_OSC, 4, NotSerialized)
{
Return (\_PR.OSC)
Arg0
Arg1
Arg2
Arg3
}
}
Processor (P003, 0x04, 0x00000410, 0x06)
{
Method (_PDC, 1, NotSerialized)
{
\_PR.PDC (Arg0)
}
Method (_OSC, 4, NotSerialized)
{
Return (\_PR.OSC)
Arg0
Arg1
Arg2
Arg3
}
}
Processor (P004, 0x05, 0x00000410, 0x06)
{
Method (_PDC, 1, NotSerialized)
{
\_PR.PDC (Arg0)
}
Method (_OSC, 4, NotSerialized)
{
Return (\_PR.OSC)
Arg0
Arg1
Arg2
Arg3
}
}
Processor (P005, 0x06, 0x00000410, 0x06)
{
Method (_PDC, 1, NotSerialized)
{
\_PR.PDC (Arg0)
}
Method (_OSC, 4, NotSerialized)
{
Return (\_PR.OSC)
Arg0
Arg1
Arg2
Arg3
}
}
Processor (P006, 0x07, 0x00000410, 0x06)
{
Method (_PDC, 1, NotSerialized)
{
\_PR.PDC (Arg0)
}
Method (_OSC, 4, NotSerialized)
{
Return (\_PR.OSC)
Arg0
Arg1
Arg2
Arg3
}
}
Processor (P007, 0x08, 0x00000410, 0x06)
{
Method (_PDC, 1, NotSerialized)
{
\_PR.PDC (Arg0)
}
Method (_OSC, 4, NotSerialized)
{
Return (\_PR.OSC)
Arg0
Arg1
Arg2
Arg3
}
}
}
}
The SSDT that i'm actually using is this:
/*
* Intel ACPI Component Architecture
* AML Disassembler version 20110316-64 [Mar 16 2011]
* Copyright (c) 2000 - 2011 Intel Corporation
*
* Disassembly of ssdt_pr.aml, Mon Mar 28 06:05:00 2011
*
* Original Table Header:
* Signature "SSDT"
* Length 0x00000156 (342)
* Revision 0x01
* Checksum 0x67
* OEM ID "APPLE "
* OEM Table ID "CpuPm"
* OEM Revision 0x00001000 (1)
* Compiler ID "INTL"
* Compiler Version 0x20110316 (537985814)
*/
DefinitionBlock ("ssdt_pr.aml", "SSDT", 1, "APPLE ", "CpuPm", 0x00001000)
{
External (\_PR.CPU0, DeviceObj)
External (\_PR.CPU1, DeviceObj)
External (\_PR.CPU2, DeviceObj)
External (\_PR.CPU3, DeviceObj)
External (\_PR.CPU4, DeviceObj)
External (\_PR.CPU5, DeviceObj)
External (\_PR.CPU6, DeviceObj)
External (\_PR.CPU7, DeviceObj)
Scope (_PR)
{
Scope (\_PR.CPU0)
{
Name (_PSS, Package (0x10) // Not required anymore (because APSS is used instead)?
{
Package (0x06) { 3401, 0x00017318, 0x000A, 0x000A, 0x2600, 0x2600 },
Package (0x06) { 3400, 0x00017318, 0x000A, 0x000A, 0x2200, 0x2200 },
Package (0x06) { 3300, 0x00016B6F, 0x000A, 0x000A, 0x2100, 0x2100 },
Package (0x06) { 3200, 0x000163C6, 0x000A, 0x000A, 0x2000, 0x2000 },
Package (0x06) { 3100, 0x000154BA, 0x000A, 0x000A, 0x1F00, 0x1F00 },
Package (0x06) { 3000, 0x000145F5, 0x000A, 0x000A, 0x1E00, 0x1E00 },
Package (0x06) { 2900, 0x00013776, 0x000A, 0x000A, 0x1D00, 0x1D00 },
Package (0x06) { 2800, 0x0001293C, 0x000A, 0x000A, 0x1C00, 0x1C00 },
Package (0x06) { 2700, 0x00011B47, 0x000A, 0x000A, 0x1B00, 0x1B00 },
Package (0x06) { 2600, 0x00010D96, 0x000A, 0x000A, 0x1A00, 0x1A00 },
Package (0x06) { 2500, 0x00010028, 0x000A, 0x000A, 0x1900, 0x1900 },
Package (0x06) { 2400, 0x0000F2FE, 0x000A, 0x000A, 0x1800, 0x1800 },
Package (0x06) { 2300, 0x0000E616, 0x000A, 0x000A, 0x1700, 0x1700 },
Package (0x06) { 2200, 0x0000D971, 0x000A, 0x000A, 0x1600, 0x1600 },
Package (0x06) { 2100, 0x0000CD0C, 0x000A, 0x000A, 0x1500, 0x1500 },
Package (0x06) { 1600, 0x000092D9, 0x000A, 0x000A, 0x1000, 0x1000 }
})
Name (APSN, 0x04) // Number of turbo states (see Intel Datasheet for your CPU).
Name (APSS, Package (0x14) // This is the PerformanceStateArray data
{
Package (0x06) { 3800, 0x00017318, 0x000A, 0x000A, 0x2600, 0x2600 }, // Fourth Turbo State.
Package (0x06) { 3700, 0x00017318, 0x000A, 0x000A, 0x2500, 0x2500 }, // Third Turbo State.
Package (0x06) { 3600, 0x00017318, 0x000A, 0x000A, 0x2400, 0x2400 }, // Second Turbo State.
Package (0x06) { 3500, 0x00017318, 0x000A, 0x000A, 0x2300, 0x2300 }, // First Turbo State.
Package (0x06) { 3400, 0x00017318, 0x000A, 0x000A, 0x2200, 0x2200 }, // Maximum non-turbo frequency.
Package (0x06) { 3300, 0x00016B6F, 0x000A, 0x000A, 0x2100, 0x2100 },
Package (0x06) { 3200, 0x000163C6, 0x000A, 0x000A, 0x2000, 0x2000 },
Package (0x06) { 3100, 0x000154BA, 0x000A, 0x000A, 0x1F00, 0x1F00 },
Package (0x06) { 3000, 0x000145F5, 0x000A, 0x000A, 0x1E00, 0x1E00 },
Package (0x06) { 2900, 0x00013776, 0x000A, 0x000A, 0x1D00, 0x1D00 },
Package (0x06) { 2800, 0x0001293C, 0x000A, 0x000A, 0x1C00, 0x1C00 },
Package (0x06) { 2700, 0x00011B47, 0x000A, 0x000A, 0x1B00, 0x1B00 },
Package (0x06) { 2600, 0x00010D96, 0x000A, 0x000A, 0x1A00, 0x1A00 },
Package (0x06) { 2500, 0x00010028, 0x000A, 0x000A, 0x1900, 0x1900 },
Package (0x06) { 2400, 0x0000F2FE, 0x000A, 0x000A, 0x1800, 0x1800 },
Package (0x06) { 2300, 0x0000E616, 0x000A, 0x000A, 0x1700, 0x1700 },
Package (0x06) { 2200, 0x0000D971, 0x000A, 0x000A, 0x1600, 0x1600 },
Package (0x06) { 2100, 0x0000CD0C, 0x000A, 0x000A, 0x1500, 0x1500 },
Package (0x06) { 2000, 0x0000C0E9, 0x000A, 0x000A, 0x1400, 0x1400 },
Package (0x06) { 1600, 0x000092D9, 0x000A, 0x000A, 0x1000, 0x1000 } // Lowest Clock frequency.
})
Method (ACST, 0, NotSerialized)
{
Return (Package (0x06)
{
One,
0x04,
Package (0x04)
{
ResourceTemplate ()
{
Register (FFixedHW,
0x01, // Bit Width
0x02, // Bit Offset
0x0000000000000000, // Address
0x01, // Access Size
)
},
One,
0x03,
0x03E8
},
Package (0x04)
{
ResourceTemplate ()
{
Register (FFixedHW,
0x01, // Bit Width
0x02, // Bit Offset
0x0000000000000010, // Address
0x03, // Access Size
)
},
0x03,
0xCD,
0x01F4
},
Package (0x04)
{
ResourceTemplate ()
{
Register (FFixedHW,
0x01, // Bit Width
0x02, // Bit Offset
0x0000000000000020, // Address
0x03, // Access Size
)
},
0x06,
0xF5,
0x015E
},
Package (0x04)
{
ResourceTemplate ()
{
Register (FFixedHW,
0x01, // Bit Width
0x02, // Bit Offset
0x0000000000000030, // Address
0x03, // Access Size
)
},
0x07,
0xF5,
0xC8
}
})
}
Name (_PPC, Zero)
Name (_PCT, Package (0x02)
{
ResourceTemplate ()
{
Register (FFixedHW,
0x40, // Bit Width
0x00, // Bit Offset
0x0000000000000199, // Address
,)
},
ResourceTemplate ()
{
Register (FFixedHW,
0x10, // Bit Width
0x00, // Bit Offset
0x0000000000000198, // Address
,)
}
})
Name (_PTC, Package (0x02)
{
ResourceTemplate ()
{
Register (FFixedHW,
0x00, // Bit Width
0x00, // Bit Offset
0x0000000000000000, // Address
,)
},
ResourceTemplate ()
{
Register (FFixedHW,
0x00, // Bit Width
0x00, // Bit Offset
0x0000000000000000, // Address
,)
}
})
Name (_PSD, Package (0x05) { 0x05, Zero, Zero, 0xFC, 0x08 })
Method (_CST, 0, NotSerialized)
{
Return (Package (0x04)
{
0x03,
Package (0x04)
{
ResourceTemplate ()
{
Register (FFixedHW,
0x00, // Bit Width
0x00, // Bit Offset
0x0000000000000000, // Address
,)
},
One,
One,
0x03E8
},
Package (0x04)
{
ResourceTemplate ()
{
Register (SystemIO,
0x08, // Bit Width
0x00, // Bit Offset
0x0000000000000414, // Address
,)
},
0x02,
0x50,
0x01F4
},
Package (0x04)
{
ResourceTemplate ()
{
Register (SystemIO,
0x08, // Bit Width
0x00, // Bit Offset
0x0000000000000415, // Address
,)
},
0x03,
0x68,
0x015E
}
})
}
Name (_TPC, Zero)
Name (_TSS, Package (0x08)
{
Package (0x05) { 0x64, 0x03E8, Zero, Zero, Zero },
Package (0x05) { 0x58, 0x036B, Zero, 0x1E, Zero },
Package (0x05) { 0x4B, 0x02EE, Zero, 0x1C, Zero },
Package (0x05) { 0x3F, 0x0271, Zero, 0x1A, Zero },
Package (0x05) { 0x32, 0x01F4, Zero, 0x18, Zero },
Package (0x05) { 0x26, 0x0177, Zero, 0x16, Zero },
Package (0x05) { 0x19, 0xFA, Zero, 0x14, Zero },
Package (0x05) { 0x0D, 0x7D, Zero, 0x12, Zero }
})
}
Scope (\_PR.CPU1)
{
Method (APSS, 0, NotSerialized)
{
Return (\_PR.CPU0.APSS)
}
Method (_CST, 0, NotSerialized)
{
Return (\_PR.CPU0._CST)
}
Method (_PCT, 0, NotSerialized)
{
Return (\_PR.CPU0._PCT)
}
Method (_PPC, 0, NotSerialized)
{
Return (\_PR.CPU0._PPC)
}
Method (_PTC, 0, NotSerialized)
{
Return (\_PR.CPU0._PTC)
}
Method (_PSD, 0, NotSerialized)
{
Return (\_PR.CPU0._PSD)
}
Method (_PSS, 0, NotSerialized)
{
Return (\_PR.CPU0.APSS)
}
Method (_TPC, 0, NotSerialized)
{
Return (\_PR.CPU0._TPC)
}
Method (_TSS, 0, NotSerialized)
{
Return (\_PR.CPU0._TSS)
}
}
Scope (\_PR.CPU2)
{
Method (APSS, 0, NotSerialized)
{
Return (\_PR.CPU0.APSS)
}
Method (_CST, 0, NotSerialized)
{
Return (\_PR.CPU0._CST)
}
Method (_PCT, 0, NotSerialized)
{
Return (\_PR.CPU0._PCT)
}
Method (_PPC, 0, NotSerialized)
{
Return (\_PR.CPU0._PPC)
}
Method (_PTC, 0, NotSerialized)
{
Return (\_PR.CPU0._PTC)
}
Method (_PSD, 0, NotSerialized)
{
Return (\_PR.CPU0._PSD)
}
Method (_PSS, 0, NotSerialized)
{
Return (\_PR.CPU0._PSS)
}
Method (_TPC, 0, NotSerialized)
{
Return (\_PR.CPU0._TPC)
}
Method (_TSS, 0, NotSerialized)
{
Return (\_PR.CPU0._TSS)
}
}
Scope (\_PR.CPU3)
{
Method (APSS, 0, NotSerialized)
{
Return (\_PR.CPU0.APSS)
}
Method (_CST, 0, NotSerialized)
{
Return (\_PR.CPU0._CST)
}
Method (_PCT, 0, NotSerialized)
{
Return (\_PR.CPU0._PCT)
}
Method (_PPC, 0, NotSerialized)
{
Return (\_PR.CPU0._PPC)
}
Method (_PTC, 0, NotSerialized)
{
Return (\_PR.CPU0._PTC)
}
Method (_PSD, 0, NotSerialized)
{
Return (\_PR.CPU0._PSD)
}
Method (_PSS, 0, NotSerialized)
{
Return (\_PR.CPU0._PSS)
}
Method (_TPC, 0, NotSerialized)
{
Return (\_PR.CPU0._TPC)
}
Method (_TSS, 0, NotSerialized)
{
Return (\_PR.CPU0._TSS)
}
}
Scope (\_PR.CPU4)
{
Method (APSS, 0, NotSerialized)
{
Return (\_PR.CPU0.APSS)
}
Method (_CST, 0, NotSerialized)
{
Return (\_PR.CPU0._CST)
}
Method (_PCT, 0, NotSerialized)
{
Return (\_PR.CPU0._PCT)
}
Method (_PPC, 0, NotSerialized)
{
Return (\_PR.CPU0._PPC)
}
Method (_PTC, 0, NotSerialized)
{
Return (\_PR.CPU0._PTC)
}
Method (_PSD, 0, NotSerialized)
{
Return (\_PR.CPU0._PSD)
}
Method (_PSS, 0, NotSerialized)
{
Return (\_PR.CPU0._PSS)
}
Method (_TPC, 0, NotSerialized)
{
Return (\_PR.CPU0._TPC)
}
Method (_TSS, 0, NotSerialized)
{
Return (\_PR.CPU0._TSS)
}
}
Scope (\_PR.CPU5)
{
Method (APSS, 0, NotSerialized)
{
Return (\_PR.CPU0.APSS)
}
Method (_CST, 0, NotSerialized)
{
Return (\_PR.CPU0._CST)
}
Method (_PCT, 0, NotSerialized)
{
Return (\_PR.CPU0._PCT)
}
Method (_PPC, 0, NotSerialized)
{
Return (\_PR.CPU0._PPC)
}
Method (_PTC, 0, NotSerialized)
{
Return (\_PR.CPU0._PTC)
}
Method (_PSD, 0, NotSerialized)
{
Return (\_PR.CPU0._PSD)
}
Method (_PSS, 0, NotSerialized)
{
Return (\_PR.CPU0._PSS)
}
Method (_TPC, 0, NotSerialized)
{
Return (\_PR.CPU0._TPC)
}
Method (_TSS, 0, NotSerialized)
{
Return (\_PR.CPU0._TSS)
}
}
Scope (\_PR.CPU6)
{
Method (APSS, 0, NotSerialized)
{
Return (\_PR.CPU0.APSS)
}
Method (_CST, 0, NotSerialized)
{
Return (\_PR.CPU0._CST)
}
Method (_PCT, 0, NotSerialized)
{
Return (\_PR.CPU0._PCT)
}
Method (_PPC, 0, NotSerialized)
{
Return (\_PR.CPU0._PPC)
}
Method (_PTC, 0, NotSerialized)
{
Return (\_PR.CPU0._PTC)
}
Method (_PSD, 0, NotSerialized)
{
Return (\_PR.CPU0._PSD)
}
Method (_PSS, 0, NotSerialized)
{
Return (\_PR.CPU0._PSS)
}
Method (_TPC, 0, NotSerialized)
{
Return (\_PR.CPU0._TPC)
}
Method (_TSS, 0, NotSerialized)
{
Return (\_PR.CPU0._TSS)
}
}
Scope (\_PR.CPU7)
{
Method (APSS, 0, NotSerialized)
{
Return (\_PR.CPU0.APSS)
}
Method (_CST, 0, NotSerialized)
{
Return (\_PR.CPU0._CST)
}
Method (_PCT, 0, NotSerialized)
{
Return (\_PR.CPU0._PCT)
}
Method (_PPC, 0, NotSerialized)
{
Return (\_PR.CPU0._PPC)
}
Method (_PTC, 0, NotSerialized)
{
Return (\_PR.CPU0._PTC)
}
Method (_PSD, 0, NotSerialized)
{
Return (\_PR.CPU0._PSD)
}
Method (_PSS, 0, NotSerialized)
{
Return (\_PR.CPU0._PSS)
}
Method (_TPC, 0, NotSerialized)
{
Return (\_PR.CPU0._TPC)
}
Method (_TSS, 0, NotSerialized)
{
Return (\_PR.CPU0._TSS)
}
}
}
}
also i just noticed that something i did while working on this has caused sleep to no longer work right. when i sleep the computer, the screen goes black but the fans stay on, and it won't wake back up.
...frustrating