version 8.8

Seems like power management in Mavericks really changed. Again. At least one person (Hackmodford) on Github issues confirmed that this was the case. And to be absolutely 100% certain that this is the case… I made you a new update of that I committed seconds ago.

Please give v8.8 a spin and let me know if this update solved the error:

XCPM: P-state table mismatch (error:0x8)
X86PlatformShim::sendPStates – pmCPUControl (XCPMIO_SETPSTATETABLE) returned 0x8
X86PlatformShim::start – Failed to send PStates

Note: The 0x8 is probably different for you!

p.s. I don’t know when power management was changed. In which version, so we have to figure that out together.

So far I have only have one confirmation that it works, with a i7-3770K, but I am working with Gringo Vermelho to see if we can get his configuration going.

I also changed a bit so that it allows you to inject the extra P-States more easily. You do this by changing gIvyWorkAround in This are the supported values:

1 – Injects one extra Turbo P-State at he top with max-Turbo frequency + 1 MHz.
2 – Injects N extra Turbo P-State at the bottom.
3 – Injects both of them.

Get version 9.0 now from Github repository, link below, and see if it is working for you. Thank you for testing this update!


56 thoughts on “ version 8.8

  1. Hi Pike, I just tried your new Version:

    – Stuck at 1200Mhz
    – Difference on reached C6 states:
    with the old version Cores 0 and 1 didn’t reach C6 state. (C6 is the only reported on my system)
    with the new version Cores 0 and 1 do reach C6
    – AICPUPMI now tells me that MRS_PKG_C2_RESIDENCY has a value (not 0x0 anymore!)
    – Wattage power dropped and temperatures dropped by approx. 5°C
    – AICPUPMI: CPU C6-Cores [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ] why only Core 0-16?

    So it seems, things are getting better. Maybe the truth is somewhere inbetween both version?😀

  2. Is it possible that If I don’t drop oem SSDT I have more steps like this?
    Maybe for that reason I had localhost or fabios-Mac-Pro kernel in this?

    Jan 20 17:46:15 localhost kernel[0]: AICPUPMI: CPU P-States [ 33 36 ]
    Jan 20 17:46:15 localhost kernel[0]: AICPUPMI: CPU P-States [ 12 33 36 ]
    Jan 20 17:51:42 localhost kernel[0]: AICPUPMI: CPU P-States [ 33 36 ]
    Jan 20 17:51:42 localhost kernel[0]: AICPUPMI: CPU P-States [ 12 33 36 ]
    Jan 20 17:54:15 localhost kernel[0]: AICPUPMI: CPU P-States [ 33 36 ]
    Jan 20 17:54:15 localhost kernel[0]: AICPUPMI: CPU P-States [ 12 33 36 ]
    Jan 20 17:54:28 fabios-Mac-Pro kernel[0]: AICPUPMI: CPU P-States [ 12 18 33 36 ]
    Jan 20 17:55:35 fabios-Mac-Pro kernel[0]: AICPUPMI: CPU P-States [ 12 18 30 33 36 ]
    Jan 20 17:59:42 fabios-Mac-Pro kernel[0]: AICPUPMI: CPU P-States [ 12 33 ]
    Jan 20 18:00:00 fabios-Mac-Pro kernel[0]: AICPUPMI: CPU P-States [ 12 30 33 ]
    Jan 20 18:04:06 fabios-Mac-Pro kernel[0]: AICPUPMI: CPU P-States [ 12 18 30 33 ]

  3. hello, why? MacPro3,1 is alright? i use 3,1 to get rid of pop sound i have with iMac14,2 (cause i have i5 4670k cpu) , thank you

    • Haswell processors use XCPM and FrequencyVectors but not all board-id’s have FrequencyVectors in their plist. Look here:


      Open a terminal window and enter: grep -e ‘FrequencyVectors’ *.plist

      What I did was that I copied the FrequencyVectors from the Mac-2BD1B31983FE1663.plist into the Mac-F60DEB81FF30ACF6.plist This because I currently use a MacPro6,1 model and Mac-F60DEB81FF30ACF6 board-id. Without the FrequencyVectors I have a power management error.

      Just give it a try!

      • xmm i looked and i dont have those plist’s cause i’m on 10.9.1 maybe ?, is safe to download these plists only without installing 10.9.2 and make the swap? anyway maybe i’ll wait till official release or i’ll try the plists from extracting the beta update without installing it

  4. Just wanted to share my feedback – iMac14,2 – i5 4670K seems to work well with 9.0
    Droping CpuPm and Cpu0Ist
    (sleep is working but Sleep menu not available in Energy settings but I got use to it now)

    localhost kernel[0]: AICPUPMI: MWAIT C-States…………………: 270624
    localhost kernel[0]: AICPUPMI: MSR_CORE_THREAD_COUNT……(0x35) : 0x40004
    localhost kernel[0]: AICPUPMI: MSR_PLATFORM_INFO……….(0xCE) : 0x80838F3012200
    localhost kernel[0]: AICPUPMI: MSR_PMG_CST_CONFIG_CONTROL.(0xE2) : 0x1E000007
    localhost kernel[0]: AICPUPMI: MSR_PMG_IO_CAPTURE_BASE….(0xE4) : 0x1814
    localhost kernel[0]: AICPUPMI: IA32_MPERF……………..(0xE7) : 0x2B2C5CD7C3
    localhost kernel[0]: AICPUPMI: IA32_APERF……………..(0xE8) : 0x2D9E63AED5
    localhost kernel[0]: AICPUPMI: MSR_FLEX_RATIO………….(0x194) : 0xE0000
    localhost kernel[0]: AICPUPMI: MSR_IA32_PERF_STATUS…….(0x198) : 0x16CA00000800
    localhost kernel[0]: AICPUPMI: MSR_IA32_PERF_CONTROL……(0x199) : 0x800
    localhost kernel[0]: AICPUPMI: IA32_CLOCK_MODULATION……(0x19A) : 0x0
    localhost kernel[0]: AICPUPMI: IA32_THERM_STATUS……….(0x19C) : 0x88470000
    localhost kernel[0]: AICPUPMI: IA32_MISC_ENABLES……….(0x1A0) : 0x850089
    localhost kernel[0]: AICPUPMI: MSR_MISC_PWR_MGMT……….(0x1AA) : 0x1
    localhost kernel[0]: AICPUPMI: MSR_TURBO_RATIO_LIMIT……(0x1AD) : 0x26262626
    localhost kernel[0]: AICPUPMI: IA32_ENERGY_PERF_BIAS……(0x1B0) : 0x5
    localhost kernel[0]: AICPUPMI: MSR_POWER_CTL…………..(0x1FC) : 0x4005F
    localhost kernel[0]: AICPUPMI: MSR_RAPL_POWER_UNIT……..(0x606) : 0xA0E03
    localhost kernel[0]: AICPUPMI: MSR_PKG_POWER_LIMIT……..(0x610) : 0xFFD00000EA82
    localhost kernel[0]: AICPUPMI: MSR_PKG_ENERGY_STATUS……(0x611) : 0x1F4FD21
    localhost kernel[0]: AICPUPMI: MSR_PKGC3_IRTL………….(0x60a) : 0x8842
    localhost kernel[0]: AICPUPMI: MSR_PKGC6_IRTL………….(0x60b) : 0x8873
    localhost kernel[0]: AICPUPMI: MSR_PKGC7_IRTL………….(0x60c) : 0x8891
    localhost kernel[0]: AICPUPMI: MSR_PP0_CURRENT_CONFIG…..(0x601) : 0x1F40
    localhost kernel[0]: AICPUPMI: MSR_PP0_POWER_LIMIT……..(0x638) : 0xFFD0
    localhost kernel[0]: AICPUPMI: MSR_PP0_ENERGY_STATUS……(0x639) : 0x16D434E
    localhost kernel[0]: AICPUPMI: MSR_PP0_POLICY………….(0x63a) : 0x0
    localhost kernel[0]: AICPUPMI: MSR_CONFIG_TDP_NOMINAL…..(0x648) : 0x22
    localhost kernel[0]: AICPUPMI: MSR_CONFIG_TDP_LEVEL1……(0x649) : 0x0
    localhost kernel[0]: AICPUPMI: MSR_CONFIG_TDP_LEVEL2……(0x64a) : 0x0
    localhost kernel[0]: AICPUPMI: MSR_CONFIG_TDP_CONTROL…..(0x64b) : 0x80000000
    localhost kernel[0]: AICPUPMI: MSR_TURBO_ACTIVATION_RATIO.(0x64c) : 0x0
    localhost kernel[0]: AICPUPMI: MSR_PKG_C2_RESIDENCY…….(0x60d) : 0x0
    localhost kernel[0]: AICPUPMI: MSR_PKG_C3_RESIDENCY…….(0x3f8) : 0x0
    localhost kernel[0]: AICPUPMI: MSR_PKG_C6_RESIDENCY…….(0x3f9) : 0x0
    localhost kernel[0]: AICPUPMI: MSR_PKG_C7_RESIDENCY…….(0x3fa) : 0x0
    localhost kernel[0]: AICPUPMI: Low Frequency Mode……………..: 800 MHz
    localhost kernel[0]: AICPUPMI: Clock Speed (Max. Non-Turbo Freq.).: 3400 MHz
    localhost kernel[0]: AICPUPMI: Maximum Turbo Frequency…………: 3800 MHz

    • Hmm. This doesn’t look good. You don’t seem to have non-zero values for MSR_PKG_Cn_RESIDENCY MSR’s. Not even for C2.

      Also. Why is MSR_TURBO_RATIO_LIMIT set to 0×26262626? This way it doesn’t really use the Turbo frequencies. Just one. At boot time only. Not good.

      • Hmmm, Regarding Turbo ratio that’s really strange. In HWMonitor I can see Turbo Ratio moving from 800Mhz to 3,8Ghz.
        You are probably right for the rest, this may explain why Sleep is down.
        The things is I don’t anymore KP, this is why I have concluded that everything is working

        DO you want me to send you other files ?

      • I have manage to correct MSR_TURBO_RATIO_LIMIT by setting Turbo Ratio in Manual Mode in BIOS.
        It seems that there is a BUG IN BIOS which put all turbo ratio at maximum when you set turbo ratio on Auto(every people with GA Z87x-OC should be aware of this)

        When I set it manually at 38 38 37 36 (i5 4670k) here is what I’ve got then

        AICPUPMI: MSR_TURBO_RATIO_LIMIT……(0x1AD) : 0x24252626

        However regarding MSR_PKG_Cn_RESIDENCY MSR’s I’m stucked don’t know what to do….

      • I replied to your e-mail about this and told you what it should be (0x23242526) and I can confirm bugs in the (UEFI) BIOS but that is old news. My advise is to always use manual setting, because there is no motherboard made for OS X. Not even the one from QUO Computers.

        About the MSR_PKG_Cn_RESIDENCY. That is the result of the boot loader, your BIOS settings, BIOS version and installation/setup of OS X.

      • Zero Value for C-State Residency comes (in my case at least) from wrong boot loader. The SMBIOS decoding for QPI is not very reliable. for me, chameleon r2669 works, where current releases like r3229 did not work. ioreg should tell for C000 –> bus-frequency a normale value. with bad boot loader i had . with r2669 i have <00 e1 f5 05). You will probably have a different value though. Also disable kernel debug flags. these two steps, gave me working c-states.

  5. Hi, Pike. I get a kernel panic when using the about X86PlatformShim(1.0). My cpu is Ivy Bridge i5 3230m, and I use Mac OS X 10.8.5. Please give me some advice. Thanks a lot.

      • Strange. I think that this is the first time that someone mentioned a KP after running but then again I don’t know what you are doing since you forgot to add the output of the script/creted ssdt.dsl so it is really hard to tell right now.

        p.s. My e-mail address can be found in:

  6. i saw the new IOPlatformPluginFamily.kext plist’s but i’ll wait for official release , right now i’m staying with 14,2 which seems the best for haswell but if we could just found a way to disable sound power management (the pop sound) without changing mac id would be great..

    ps. i generated ssdt with the new script and works ok but worked the same with the old version too (only 8,34 and turbo steps with imac 14,2) , i’m on 10.9.1 with 4670k cpu and i had no problem with sleep with either versions of script , thanks for the useful site, bye

      • That line as you wrote in the comment to it refers to the OEM CPUs. I have one of those and it’s 0 for me not v2.

        These CPUs of mine are SB and I am not sure how it is for IB though.

      • What I meant to say, and thought to have explained already, is that I use “v2” there because otherwise it won’t match with the data that we use to identify the processors. I did it like this, instead of having to wait for people to complain, after which I would have to add extra lines for basically the same processor… just because Intel is using a “0” instead of “v2”.

  7. Hi mate, Im having this error: v0.9 Copyright (c) 2011-2012 by † RevoGirl
    v6.6 Copyright (c) 2013 by † Jeroen
    v9.0 Copyright (c) 2013-2014 by Pike R. Alpha
    System information: Mac OS X 10.9.1 (13B42)
    Brandstring ‘Intel(R) Core(TM) i7 CPU X 990 @ 3.47GHz’
    Warning: The brandstring has an unexpected length!
    Processor Declaration(s) Found in DSDT
    Generating ssdt_pr.dsl for a MacPro3,1 [Mac-F42C88C8]
    Unknown Core i7 processor [0x206C2] setup [0x0701]
    Number logical CPU’s: 12 (Core Frequency: 3474 MHz)

    Error: ‘MaxTurboFrequency’ must be in the range of 3474-6300… exiting

    thanks in advance for your help.

      • Thanks Jas. So it would be something like:
        i7-990X 3.73 130 Gulftown
        However Gulftown its not a value (0 1 or 2). What should I use?
        Moreover I don’t know that should I put a ACPI Processor Name.
        Thanks again.

      • is written to support Intel Core processors using 100 MHz steps called a ‘bank’. In short. There is no support for any of the previous generations of Intel processors, like your ‘Gulftown’ (doesn’t use banks). Sorry.

  8. Thanks very much for providing and documenting this great resource. Using the ssdtPRGen script and some light over-clocking I have posted the world’s fastest single CPU Mac Geekbench. You can look it up on the Geekbench site, it’s on about the 6th page of Top Multi-Core Geekbench 3 Results. I’m using the new 10.9.2 beta build on an Asus P9X79-E WS motherboard with an E5-2697 v2 CPU.

  9. Pike?

    I have one Problem…

    If i use ssdtPRgen script, i break some symlinks from my dsdt…
    I changed at the moment only in my dsdt (_PSS) to (APSS)… but there are much more like _PPC and etc…

    The thing is, if i use ssdtPRgen, i break much in my dsdt, but its working at the end…
    If i don’t use your generated SSDT, and instead my SSDT Tables, i don’t break anything, but osx loads ACPI_Smc_Platformplugin (Its empty)
    And if i use your generated ssdt, apple loads X86Platformplugin, with much things like AGPM… etc… (Without my ssdts / With symlinks break)
    If i use both Your SSDT and my SSDTs, its same as without your ssdt(generated)…

    One thing: With every way… your/mine ssdts, the cpu scales right, the battery time is the self… there changes nothing… only ioreg show different plugins…
    I Uploaded on GitHub, there are your SSDT0.aml (Generated) and my SSDTs/DSDT.aml (There are a dsl version on Github too (DSDT.206.dsl))
    And i uploaded both Ioregs (, that you can see the difference self…

    I just want to fix the links in my DSDT🙂
    I Hope you can help me🙂

    Thank you Pike!🙂
    PS: You should add a donate button… So anyone can thank you for your good work here🙂

    • Pike, sorry, forget this message!

      I fixed the links… The whole problem was:
      I named my ssdts (SSDT1.aml, SSDT2.aml) and clover didn’t load them…
      They need to be: (SSDT-1.aml, SSDT-2.aml)…

      Now they are loaded, and x86platformplugin is loaded and i have no broken symlinks🙂
      All is perfect now🙂

      PS: i just checked, that in the original SSDTs for i7-4558U was the lowest step 756 MHz… and not 800…

      Here: (i7-4558U) (756 MHz Step):
      Package (0x06) { 0x02F4, 0x1534, 0x0A, 0x0A, 0x0700, 0x0800 }

      But the other steps are a bit different too:
      (i7-4558U, Original SSDT Steps):

      Package (0x06) { 0x0AF1, 0x06D60, 0x0A, 0x0A, 0x02500, 0x02500 },
      Package (0x06) { 0x0AF0, 0x06D60, 0x0A, 0x0A, 0x01C00, 0x01C00 },
      Package (0x06) { 0x0A8C, 0x067CE, 0x0A, 0x0A, 0x01B00, 0x01B00 },
      Package (0x06) { 0x09C4, 0x05E0B, 0x0A, 0x0A, 0x01900, 0x01900 },
      Package (0x06) { 0x08FC, 0x054A5, 0x0A, 0x0A, 0x01700, 0x01700 },
      Package (0x06) { 0x0898, 0x04F97, 0x0A, 0x0A, 0x01600, 0x01600 },
      Package (0x06) { 0x07D0, 0x046C0, 0x0A, 0x0A, 0x01400, 0x01400 },
      Package (0x06) { 0x076C, 0x041F8, 0x0A, 0x0A, 0x01300, 0x01300 },
      Package (0x06) { 0x06A4, 0x039AD, 0x0A, 0x0A, 0x01100, 0x01100 },
      Package (0x06) { 0x0640, 0x03621, 0x0A, 0x0A, 0x01000, 0x01000 },
      Package (0x06) { 0x0578, 0x02E53, 0x0A, 0x0A, 0x0E00, 0x0E00 },
      Package (0x06) { 0x0514, 0x02A18, 0x0A, 0x0A, 0x0D00, 0x0D00 },
      Package (0x06) { 0x044C, 0x022D0, 0x0A, 0x0A, 0x0B00, 0x0B00 },
      Package (0x06) { 0x03E8, 0x01ED9, 0x0A, 0x0A, 0x0A00, 0x0A00 },
      Package (0x06) { 0x0320, 0x0180E, 0x0A, 0x0A, 0x0800, 0x0800 },
      Package (0x06) { 0x02F4, 0x01534, 0x0A, 0x0A, 0x0700, 0x0800 }

      Thank you Pike, Cheers🙂

  10. Hello,

    Your script fails on my i3-4000M chip. I scanned the file and noticed there isn’t a definition for it. I was going to just add it myself but I was unable to locate the Low Frequency Mode for this chip. Do you happen to know it’s value?

    I think “i3-4000M,37,800,2400,2400,2,4” is correct but figured I’d ask you first.


    • Thank you for reporting this here, but please use Github issues next time so that we have one place to collect bugs and other issues.

      P.s. I’ll add the whole range of missing i3 processors in the next update.

  11. Hi Pike,
    I’ve tried using ssdtPRGen to generate a ssdt to enable Turbo Boost for my CPU. the command i ran is: “sh ‘i5-4200U’ 2600” and then copy the SSDT.aml into bootloader.
    yeah the speedstepping did work, but the max frequence was still 2.3GHz… it seems that Turbo Boost didn’t work.
    did i do anything incorrectly? any suggetions?

    Thanks in advance!

    • First. You don’t have to use any arguments. At least not when you run on your Haswell setup with said processor.

      Also. Please use the latest version of because I am won’t support older versions of the script anymore, but that having said that. Power management (turbo) problems can be anything. It’s not that easy. Maybe your bootloader, version of OS X, the fact that you drop/don’t drop SSDT tables is the problem. No idea really. Not without additional data like a dump of IORegistryExplorer.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s