Jump to content

Sandy Bridge i7-2600k + Mojave + iMac13,1 SMBIOS (P-state generation problem/question)


Careless
 Share

17 posts in this topic

Recommended Posts

Hi Friends,


I recently updated from High Sierra to Mojave on my Asus P8P67 Deluxe + i7-2600K system and everything is operating great, except I only have two processor states:

1600mhz & 3400-ish mhz.

 

Understandably, this is due to my Sandy Bridge "second generation" processer not being compatible with the board-id for a iMac13,1- thus it would seem that the P-states or C-states generated via DropOEM SSDT and Generate P/C-states in the latest Clover are not compatible?

 

Mojave would not allow installation unless I was using a newer chassis model, so this was my stop-gap measure for allowing the install at this time, as I had a few hours to fiddle with it this weekend between other things.

 

Within High Sierra, I had all P-states, and as a result, my average CPU temp was a bit lower (But it's ok for now). I had the iMac12,3 SMBios loaded in clover- and everything worked great.

 

I attempted to force/target a generated sdst.dsl using ssdtPRgen.sh, and attempted to use it in Clover- but nothing changed??? (perhaps I am using it wrong- any info here would be appreciated).

 

My question is... how do I go about getting proper processor power management states in Mojave with a Sandy Bridge processor? Is there a way to spoof the OS into generating them via clover, or is there another chassis I can select... Or is there a way to select iMac 12,3 again which will not interfere with any Mojave specific settings or permissions or features, and can it be done without breaking anything now that I've installed?

 

For the time being it runs ok, and I can always fall back on Win10 dual booted OS for repair or for work if need be.

Edited by Careless
Link to comment
Share on other sites

It's not a matter you can solve with DSDT-SSDT nor Clover alone. You'll need to change your Mac model to MacPro5,1, then edit its PM profile on IOPlatformPluginFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources, like this:

 

edit-plist.thumb.jpg.618270ef263d5886d0c12172c118d8a4.jpg

 

Then repair permission, rebuild kextcache and restart. Haven't tried it myself in Mojave but it works fine in 10.13, good luck!

Link to comment
Share on other sites

Hi Maniac10.


I did this modification just now, and booted back in with MacPro5,1 using the modifications you suggested.

 

How can I be sure that it is using the appropriate P-states, or how do I go about making sure it is?

Are there any other steps? Please advise. I've booted in to the new SMBIOS profile and am typing from there now. Seems the same as without the change?

 

Do I need to add a specific ssdt now?

 

edit: I added SDST.aml generated from ssdtPRgen, and here's what the bootlog says.

 

7:928  0:000  === [ DropSSDT ] ==========================================
7:928  0:000  Drop tables from XSDT, SIGN=SSDT TableID= Length=0
7:928  0:000   Table[4]: SSDT  SataTabl  877 dropped
7:928  0:000   Table[5]: SSDT  Cpu0Ist  2474 dropped
7:928  0:000   Table[6]: SSDT  CpuPm  2706 dropped
7:928  0:000  === [ ACPIPatchedAML ] ====================================
7:928  0:000  Unsorted
7:928  0:000  Inserting SSDT.AML from EFI\CLOVER\ACPI\patched: wrong table
7:930  0:001  CPUBase=0 and ApicCPUBase=1 ApicCPUNum=8
7:930  0:000  Cleanup XSDT: count=8, length=100
7:930  0:000  corrected XSDT count=5, length=76

"wrong table" ... 

 

is something amiss here?

 

why do I need to change to MacPro5_1, anyway? can you point me to a post with more information?

Edited by Careless
Link to comment
Share on other sites

The only certain way to check for used c/p-steps is with AppleIntelInfo by Piker Alpha. I'll attach a precompiled kext so you don't have to do it yourself. Just follow the steps listed in the GitHub page and you'll see a list like this:

CPU P-States [ (16) 31 40 ]
CPU C3-Cores [ 0 2 3 7 ]
CPU C6-Cores [ 0 1 4 5 ]
CPU P-States [ (16) 23 31 40 ]
CPU C3-Cores [ 0 2 3 6 7 ]
CPU C6-Cores [ 0 1 3 4 5 7 ]
CPU P-States [ (16) 21 23 31 40 ]
CPU C3-Cores [ 0 2 3 4 6 7 ]
CPU C6-Cores [ 0 1 3 4 5 6 7 ]
CPU P-States [ (16) 21 23 24 31 40 ]
CPU C6-Cores [ 0 1 2 3 4 5 6 7 ]
CPU P-States [ (16) 20 21 23 24 31 40 ]
CPU C3-Cores [ 0 1 2 3 4 6 7 ]
CPU P-States [ (16) 20 21 22 23 24 31 40 ]
CPU C3-Cores [ 0 1 2 3 4 5 6 7 ]
CPU P-States [ (16) 20 21 22 23 24 31 34 40 ]
CPU P-States [ 16 20 21 22 23 24 (30) 31 34 40 ]
CPU P-States [ (16) 20 21 22 23 24 28 30 31 34 40 ]
CPU P-States [ (16) 20 21 22 23 24 28 30 31 33 34 40 ]
CPU P-States [ 16 20 21 22 23 24 (25) 28 30 31 33 34 40 ]
CPU P-States [ 16 20 21 22 23 24 25 28 30 31 32 33 34 (40) ]
CPU P-States [ 16 20 21 22 23 24 25 28 30 31 32 33 34 40 (44) ]
CPU P-States [ 16 20 21 22 23 24 25 28 30 31 32 33 34 37 40 (44) ]
CPU P-States [ (16) 19 20 21 22 23 24 25 28 30 31 32 33 34 37 40 44 ]
CPU P-States [ (16) 19 20 21 22 23 24 25 28 29 30 31 32 33 34 37 40 44 ]
CPU P-States [ 16 19 20 21 22 23 24 25 28 29 30 31 32 33 34 35 37 (40) 44 ]
CPU P-States [ (16) 19 20 21 22 23 24 25 27 28 29 30 31 32 33 34 35 37 40 44 ]
CPU P-States [ (16) 19 20 21 22 23 24 25 27 28 29 30 31 32 33 34 35 36 37 40 44 ]

And the reason for the Mac model is simple, the kext in charge of Sandy Bridge's PM is ACPI_SMC_PlatformPlugin.kext. So you'll need to use one of the profiles listed inside, and AFAIK the only Mac model "capable" of booting Mojave from that list is the MacPro5,1. Please correct me if I'm wrong, I haven't really studied the topic at depth, just read a bit before installing it.

 

No idea about that Clover error. The table may have some error, it could be duplicated or maybe the file has been corrupted. Delete it and generate a new one just to be sure. I also generated the SSDT with the script, dropped Cpu0Ist and CpuPm, disabled Clover's own SSDT generation and it works.

 

EDIT: I had to test it myself to make sure it still works and I can now confirm that this method indeed works in Mojave, it used at least 6 steps in just a few minutes:

CPU Ratio Info:
------------------------------------------
Base Clock Frequency (BLCK)............. : 100 MHz
Maximum Efficiency Ratio/Frequency.......: 16 (1600 MHz)
Maximum non-Turbo Ratio/Frequency........: 34 (3400 MHz)
Maximum Turbo Ratio/Frequency............: 45 (4500 MHz)
P-State ratio * 100 = Frequency in MHz
------------------------------------------
CPU P-States [ 34 44 (45) ]
CPU C3-Cores [ 0 1 2 4 5 7 ]
CPU C6-Cores [ 0 1 2 4 5 7 ]
CPU P-States [ 34 42 (44) 45 ]
CPU C3-Cores [ 0 1 2 3 4 5 7 ]
CPU C6-Cores [ 0 1 2 3 4 5 7 ]
CPU C3-Cores [ 0 1 2 3 4 5 6 7 ]
CPU C6-Cores [ 0 1 2 3 4 5 6 7 ]
CPU P-States [ 34 35 42 (44) 45 ]
CPU P-States [ (20) 34 35 42 44 45 ]
CPU P-States [ 20 (25) 34 35 38 42 44 45 ]
CPU P-States [ (16) 20 25 34 35 38 42 44 45 ]
CPU P-States [ 16 20 25 28 34 35 38 42 (44) 45 ]
CPU P-States [ 16 20 25 26 28 34 35 38 42 (44) 45 ]
CPU P-States [ 16 20 25 26 27 28 34 35 38 42 (44) 45 ]
CPU P-States [ 16 20 25 26 27 28 34 35 37 38 42 (44) 45 ]
CPU P-States [ (16) 20 25 26 27 28 33 34 35 37 38 42 44 45 ]
CPU P-States [ 16 (20) 21 25 26 27 28 33 34 35 37 38 42 44 45 ]
CPU P-States [ (16) 20 21 25 26 27 28 30 33 34 35 37 38 42 44 45 ]
CPU P-States [ 16 20 21 25 26 27 28 30 32 33 34 35 37 38 42 (44) 45 ]
CPU P-States [ (16) 20 21 25 26 27 28 30 31 32 33 34 35 37 38 42 44 45 ]
CPU P-States [ (16) 20 21 25 26 27 28 30 31 32 33 34 35 36 37 38 42 44 45 ]
CPU P-States [ 16 20 21 22 25 26 27 28 30 31 32 33 34 35 36 37 38 42 (44) 45 ]
CPU P-States [ 16 20 21 22 25 26 27 28 30 31 32 33 34 35 36 37 38 41 42 44 (45) ]
CPU P-States [ 16 20 21 22 25 26 27 28 30 31 32 33 34 35 36 37 38 40 41 42 (44) 45 ]
CPU P-States [ 16 20 21 22 25 26 27 28 30 31 32 33 (34) 35 36 37 38 40 41 42 43 44 45 ]
CPU P-States [ (16) 20 21 22 23 25 26 27 28 30 31 32 33 34 35 36 37 38 40 41 42 43 44 45 ]
CPU P-States [ 16 20 21 22 23 24 (25) 26 27 28 30 31 32 33 34 35 36 37 38 40 41 42 43 44 45 ]
CPU P-States [ 16 20 21 22 23 24 (25) 26 27 28 29 30 31 32 33 34 35 36 37 38 40 41 42 43 44 45 ]
CPU P-States [ (16) 17 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 40 41 42 43 44 45 ]
CPU P-States [ (16) 17 18 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 40 41 42 43 44 45 ]
CPU P-States [ (16) 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 40 41 42 43 44 45 ]

EDIT2: you may need to add "-nehalem_error_disable" as Boot/Argument to avoid the known AppleTyMCEDriver kernel panic.

Edited by Maniac10
TESTING IN MOJAVE
Link to comment
Share on other sites

Thanks so much, Maniac10.


I'll play around with it in a day or two. Need to use the computer for some work, so I don't want any downtime.
 

Your explanation was thorough, so I think I got all I need to tackle this further.

Do you mind sending me your SSDT and your config.plist for Clover?

Would help a bit to see if I have anything set incorrectly, and I can compare.

 

Link to comment
Share on other sites

For Mojave i switched from imac12,2 to imac14,2, same ssdt than before (same as Maniac10 and same drop) and i'have no problem with speedstep

 

CPU Ratio Info:
------------------------------------------
Base Clock Frequency (BLCK)............. : 100 MHz
Maximum Efficiency Ratio/Frequency.......: 16 (1600 MHz)
Maximum non-Turbo Ratio/Frequency........: 34 (3400 MHz)
Maximum Turbo Ratio/Frequency............: 38 (3800 MHz)
P-State ratio * 100 = Frequency in MHz
------------------------------------------
CPU P-States [ 34 (38) ]
CPU C3-Cores [ 0 3 4 6 7 ]
CPU C6-Cores [ 0 1 2 3 4 7 ]
CPU P-States [ (16) 33 34 38 ]
CPU C3-Cores [ 0 1 2 3 4 5 6 7 ]
CPU C6-Cores [ 0 1 2 3 4 5 7 ]
CPU P-States [ 16 33 34 36 (38) ]
CPU P-States [ (16) 33 34 35 36 38 ]
CPU C6-Cores [ 0 1 2 3 4 5 6 7 ]
CPU P-States [ (16) 31 33 34 35 36 38 ]
CPU P-States [ (16) 30 31 33 34 35 36 38 ]
CPU P-States [ (16) 28 30 31 33 34 35 36 38 ]
CPU P-States [ (16) 28 29 30 31 33 34 35 36 38 ]
CPU P-States [ (16) 26 28 29 30 31 33 34 35 36 38 ]
CPU P-States [ 16 26 28 29 30 31 33 34 35 36 37 (38) ]
CPU P-States [ (16) 26 28 29 30 31 32 33 34 35 36 37 38 ]
CPU P-States [ (16) 26 27 28 29 30 31 32 33 34 35 36 37 38 ]
CPU P-States [ (16) 24 26 27 28 29 30 31 32 33 34 35 36 37 38 ]
CPU P-States [ (16) 22 24 26 27 28 29 30 31 32 33 34 35 36 37 38 ]
CPU P-States [ (16) 22 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 ]
CPU P-States [ (16) 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 ]
CPU P-States [ (16) 19 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 ]
CPU P-States [ (16) 19 20 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 ]
CPU P-States [ (16) 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 ]

 

Link to comment
Share on other sites

You do have a problem, only 2 out of 21 discovered steps are being used. In my log you can see 6 active steps: 16 (min), 20, 25, 34 (max) and 44-45 (turbos).

If you do further tests you'll see that only the min/max and turbos are active, with nothing in between. So your CPU is either idle at 16 or at full speed. 

Link to comment
Share on other sites

I think what you're seeing in the IPG is the package average frequency (sum of each real core freq divided by the amount of cores). Take a look at the screenshot from Kozlek's HWMonitor below, there you can see both, the individual core frequencies and the package average frequency. The core frequencies show few steps just like the AppleIntelInfo log, but the average frequency is all over the place.

average_vs_core.png

Edited by Maniac10
Link to comment
Share on other sites

Your totally right Maniac10, when i enable log in the intel gadget, there were only 2 step like you said. So the only way is to edit the IOPlatformPluginFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources like you do. 

 

Thx for this usefull tips, hope this help other old sandy's user :) 

 

Edit: i tried to use CPUfriend.kext with a generated CPUFriendProvider.kext with the modified MacPro5_1.plist but saddly i've no luck with it.

Edited by real3x
  • Like 1
Link to comment
Share on other sites

ok I have an i5 2500k.

 

I am interested in doing this patch but I don’t quite fully comprehend your instructions Manic10. This is my first Hackintosh desktop and my laptop was a simple bootpack.

 

How do I go about changing the items you mentioned so I can get full speedstep?

Link to comment
Share on other sites

I created a quick tutorial about this very same topic a while ago but man this is old!!!

 

Most of it is surprisingly still valid, only this time the files involved are MacPro5_1.plist and MacBookPro8_1.plist as shown in this screen capture:

 

edit-plist.thumb.jpg.618270ef263d5886d0c12172c118d8a4.jpg

 

For testing I recommend Intel Power Gadget (activate the log) or AppleIntelInfo.kext (attached here), and here are its instructions.

 

Let me know if you need help with any of those steps.

Edited by Maniac10
  • Like 1
Link to comment
Share on other sites

  • 5 months later...

Good news, the new update of CPUFriend now work with data injection in ACPI_SMC_Plugin >> https://github.com/acidanthera/CPUFriend/releases

 

Just make the MacPro5_1.plist edit with the MacBookPro8_1.plist data like Maniac10 said in the above post, put in a folder (name it cpu for the exemple) the edited MacPro5_1.plist and ResourceConverter.sh, then run in term :

 

bash /Users/*youruser*/Desktop/cpu/ResourceConverter.sh --kext /Users/*youruser*/Desktop/cpu/MacPro5_1.plist

 

It generate a CPUFriendDataProvider.kext, put this kext with the CPUFriend.kext where you put lilu.kext and thats it // Of course you have to revert to vanilla your PlatformPluginFamily.kext

 

cpu.zip

Edited by real3x
  • Like 1
Link to comment
Share on other sites

  • 1 month later...
On 4/8/2019 at 1:18 PM, real3x said:

Good news, the new update of CPUFriend now work with data injection in ACPI_SMC_Plugin >> https://github.com/acidanthera/CPUFriend/releases

 

Just make the MacPro5_1.plist edit with the MacBookPro8_1.plist data like Maniac10 said in the above post, put in a folder (name it cpu for the exemple) the edited MacPro5_1.plist and ResourceConverter.sh, then run in term :

 


bash /Users/*youruser*/Desktop/cpu/ResourceConverter.sh --kext /Users/*youruser*/Desktop/cpu/MacPro5_1.plist

 

It generate a CPUFriendDataProvider.kext, put this kext with the CPUFriend.kext where you put lilu.kext and thats it // Of course you have to revert to vanilla your PlatformPluginFamily.kext

 

cpu.zip

 

Hi real3x

 

do you know how I can extract a vanilla IOPlatformPluginFamily.kext.

 

Been searching everywhere for one, can't find my backup either.

 

I'm on 10.14.5 as of this morning.

Link to comment
Share on other sites

 Share

×
×
  • Create New...