Beerkex'd, on Sep 13 2009, 09:33 AM, said:
Thanks for looking, it is much appreciated. My ears aren't bleeding from the skipping sound, it's my brain turning to mush from looking at ACPI tables and reading, reading and reading.
No problem. I hear you. And yes it does indeed require a lot of reading, but that's just a fun part of hacking isn't it
Beerkex'd, on Sep 13 2009, 09:33 AM, said:
It's a Core 2 Duo E8500. The CPUs in Scope (\PR) were always like this (except I changed P00x to CPUx):
Scope (_PR)
{
Processor (CPU1, 0x01, 0x00000810, 0x06) {}
Processor (CPU2, 0x02, 0x00000000, 0x00) {}
Processor (CPU3, 0x03, 0x00000000, 0x00) {}
Processor (CPU4, 0x04, 0x00000000, 0x00) {}
}
Which is fine. And the way these processor blocks are declared is 100% valid. The question now is if this will work with the ACPI_SMC_PlatformPlugin.kext My gut feeling might be wrong, but it says nope, since all DSDT files I have seen thus far declare it like this:
Scope (_PR)
{
Processor (CPU1, 0x01, 0x00000810, 0x06) {}
Processor (CPU2, 0x02, 0x00000810, 0x06) {}
}
Note that I copied the
PBlockAddres from your first and only (boot) CPU which is the correct address for your MB, otherwise it won't even boot (hangs at Apple logo).
Beerkex'd, on Sep 13 2009, 09:33 AM, said:
In the DSDT tables I've looked at from real Macs both cores are declared in Scope (_PR) with 410 and 0x06.
Should I do the same thing FormerlyKnownAs did (cp'd from his DSDT in the first post):
Scope (_PR)
{
Processor (CPU0, 0x00, 0x00000410, 0x06) {}
Processor (CPU1, 0x01, 0x00000410, 0x06) {}
Processor (CPU2, 0x02, 0x00000410, 0x06) {}
Processor (CPU3, 0x03, 0x00000410, 0x06) {}
No. You must use the proper
PBlockAddress. Don't use anything else.
Beerkex'd, on Sep 13 2009, 09:33 AM, said:
I tried changing CPU1 to CPU0 earlier today but then I couldn't boot, it halted with at a CPU error message right at the beginning.
The first argument of a Processor declaration opens a name scope with that name, so like Superhai already said: You have to change it everywhere when you change it. There is however no need for it.
Beerkex'd, on Sep 13 2009, 09:33 AM, said:
I didn't try changing the rest though, I will try later - do you know what the 410/810 value means?
From the ACPI specification:
"
Syntax
Processor (ProcessorName, ProcessorID, PBlockAddress, PblockLength)
{ObjectList}
Arguments
Declares a named processor object named ProcessorName. Processor opens a name scope. Each processor
is required to have a unique ProcessorID value that is unique from any other ProcessorID value.
For each processor in the system, the ACPI BIOS declares one processor object in the namespace anywhere
within the \_SB scope. For compatibility with operating systems implementing ACPI 1.0, the processor
object may also be declared under the \_PR scope. An ACPI-compatible namespace may define Processor
objects in either the \_SB or \_PR scope but not both.
PBlockAddress provides the system I/O address for the processors register block. Each processor can
supply a different such address. PBlockLength is the length of the processor register block, in bytes and is
either 0 (for no P_BLK) or 6. With one exception, all processors are required to have the same
PBlockLength. The exception is that the boot processor can have a non-zero PBlockLength when all other
processors have a zero PBlockLength. It is valid for every processor to have a PBlockLength of 0."
Beerkex'd, on Sep 13 2009, 09:33 AM, said:
The "Name (NPCP, 0x00000001)" is already in the DSDT I posted but the compiler has changed 0x00000001 to "One".
Should changed it to 0x00000002? Or what did you mean...I'm just barely on my way to enlightenment with a melting brain so this stuff is difficult to follow.

Yes, change it to 0x02 when you've changed the Processor declarations. And hang in.... we're slowly getting somewhere.
Beerkex'd, on Sep 13 2009, 09:33 AM, said:
When the DSDT was loaded both cores were showing in IORegistryExplorer (that is to say, the second one had an "AppleACPICPU" attached as usual). I didn't check Activity Monitor at the time.
Just
AppleACPICPU? That would mean that P-State stepping isn't even working for you. Is it?
For you info: I also have
ACPI_SMC_PlatformPlugin,
AGPMEnabler and
AGPMController (See attachments:
BTW how do I move attachments to this spot?)
Beerkex'd, on Sep 13 2009, 09:33 AM, said:
I'm using iMac9,1 as model identifier - does that mean that I have to use CStates from an iMac9,1?
I don't think so, but I thought of having seen evidence in the ACPI_SMC_PlatformPlugin.kext (Info.plist) that (certain) iMac's have limited PM capabilities.