wastez Posted December 8, 2016 Share Posted December 8, 2016 Hello,I installed sierra on my Ivy-Bridge Laptop and had to realize that the -xcpm flag was removed in 10.12 which allowed to use the XNU Kernel CPU Powermanagement on a Ivy System.Because i don´t want to use the old AppleIntelCPUPM i searched for a solution and i found it.Thx to pike who wrote here about xcpm for haswell-e cpus: https://pikeralpha.wordpress.com/2016/07/26/xcpm-for-unsupported-processor/I used his informations about the kernel structure to create this patch.So here is the patch for Clover:Add it in KernelAndKextPatches --> KernelToPatch: Comment: xcpm bootstrap Find: 83C3C483 FB22 Replace: 83C3C683 FB22 Comment: Reboot fix for xcpm Find: 554889E5 41574156 41554154 53504189 D64189F7 4889FB45 85FF0F84 Replace: C34889E5 41574156 41554154 53504189 D64189F7 4889FB45 85FF0F84 You can check if xcpm is active with the following terminal command: sysctl -n machdep.xcpm.mode If it is 1 then xcpm is working as it should.Clear i´ve to say that everything else need to be correct that it work as it should. (ssdt with xcpm mode enabled and also the FrequencyVectors need to be setted in the X86PlatformPlugin)But this isn´t other then in older OS.Hope it will help somebody.Edit:If there are problems else with the powermanagement use a new Version of ssdtprgen to create a new ssdt. 2 Link to comment Share on other sites More sharing options...
PMheart Posted December 8, 2016 Share Posted December 8, 2016 Same here. IVB too and enabled XCPM. All works fine now. BTW you can use an injector to fix X86PlatformPlugin. This will patch vanilla X86PP on the fly. AppleX86PlatformPluginInjector.kext.zip Notes: 1. Put your patched [board-id].plist to ./AppleX86PlatformPluginInjector.kext/C*/R* 2. Install AppleX86PlatformPluginInjector.kext to /L*/E* [Recommended] or /S*/L*/E* 3. You can keep SIP in place. (Injector is not affected by SIP.) And I don't think to block all MSRs is a good way. Just do some experiments to find out which MSR(s) trigger the reboot and just block it(them). You can check this at https://pikeralpha.wordpress.com/2016/07/26/xcpm-for-unsupported-processor/comment-page-1/#comment-6301 (The byte values don't change so far, 16C60b.) Enjoy. PMheart 2 Link to comment Share on other sites More sharing options...
TheRacerMaster Posted December 9, 2016 Share Posted December 9, 2016 Yeah, I'd check and see which specific MSRs you need to block. I did manage to get XCPM working on Ivy Bridge around the time Pike posted his findings, but it was hacky (I simply disabled all MSR writes, as wastez is doing). Link to comment Share on other sites More sharing options...
wastez Posted December 9, 2016 Author Share Posted December 9, 2016 Tested it right now and seems pkg msrs triggered the panic (on my system). (with enabled Kernel PM patch in Clover) Now my System is booting without disabling all msrs. Link to comment Share on other sites More sharing options...
Henk1 Posted December 10, 2016 Share Posted December 10, 2016 Same here. IVB too and enabled XCPM. All works fine now. BTW you can use an injector to fix X86PlatformPlugin. This will patch vanilla X86PP on the fly. AppleX86PlatformPluginInjector.kext.zip Notes: 1. Put your patched [board-id].plist to ./AppleX86PlatformPluginInjector.kext/C*/R* 2. Install AppleX86PlatformPluginInjector.kext to /L*/E* [Recommended] or /S*/L*/E* 3. You can keep SIP in place. (Injector is not affected by SIP.) And I don't think to block all MSRs is a good way. Just do some experiments to find out which MSR(s) trigger the reboot and just block it(them). You can check this at https://pikeralpha.wordpress.com/2016/07/26/xcpm-for-unsupported-processor/comment-page-1/#comment-6301 (The byte values don't change so far, 16C60b.) Enjoy. PMheart Can you explain a bit in more detail what I should do to run this on my GA-B75M-D3H UEFI with i3 3225 and NVidia GTX750ti? Specifically note 1. My pc runs ok in osx 10.12 except for waking up from sleep (it doesn't). SysDef is now 14,2. Should this be changed to 6,1? Thanks. Link to comment Share on other sites More sharing options...
wastez Posted December 11, 2016 Author Share Posted December 11, 2016 The 14.2 smbios is setted already for xcpm.So if you want to keep this setting it would be good to activate xcpm as i wrote in post 1.If you want to keep AppleIntelCPUPM it would be good to use a file for X86PlatformPlugin which has no FrequencyVectors (every model before haswell) in it. Link to comment Share on other sites More sharing options...
reyder Posted July 1, 2017 Share Posted July 1, 2017 Patches for 10.13 PB1 Comment: xcpm bootstrap 10.13 PB1 Find: 89d804c4 3c22 Replace: 89d804c6 3c22 Comment: _xcpm_pkg_scope_msr Find: 488d3d8b 316600be 07000000 31d2e88ffcffff Replace: 488d3d8b 316600be 07000000 31d29090909090 Link to comment Share on other sites More sharing options...
Jangsangin Posted July 11, 2017 Share Posted July 11, 2017 Same here. IVB too and enabled XCPM. All works fine now. BTW you can use an injector to fix X86PlatformPlugin. This will patch vanilla X86PP on the fly. AppleX86PlatformPluginInjector.kext.zip Notes: 1. Put your patched [board-id].plist to ./AppleX86PlatformPluginInjector.kext/C*/R* 2. Install AppleX86PlatformPluginInjector.kext to /L*/E* [Recommended] or /S*/L*/E* 3. You can keep SIP in place. (Injector is not affected by SIP.) And I don't think to block all MSRs is a good way. Just do some experiments to find out which MSR(s) trigger the reboot and just block it(them). You can check this at https://pikeralpha.wordpress.com/2016/07/26/xcpm-for-unsupported-processor/comment-page-1/#comment-6301 (The byte values don't change so far, 16C60b.) Enjoy. PMheart how to make board-id.plist? 나의 SM-N930S 의 Tapatalk에서 보냄 Link to comment Share on other sites More sharing options...
PMheart Posted July 12, 2017 Share Posted July 12, 2017 how to make board-id.plist? 나의 SM-N930S 의 Tapatalk에서 보냄 First run ioreg -p IODeviceTree -d 2 -k board-id | grep board-id | sed -e 's/ *["=<>]//g' -e 's/board-id//' in Terminal. You will get something like this: Mac-F60DEB81FF30ACF6 This is your board-id. X86PlatformPlugin will read it. Locate to /System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/X86PlatformPlugin.kext/Contents/Resources, you will find various these kinds of plist. (e.g. Mac-F60DEB81FF30ACF6.plist ) Make some modifications to it. For example. With freqVectorsEdit.sh. But the modified plist will be restored to vanilla one after system update. So you can put it/them inside AppleX86PlatformPluginInjector.kext/C*/R* and install it to /S/L/E or /L/E, and it will keep working after system update. 2 Link to comment Share on other sites More sharing options...
Jangsangin Posted July 12, 2017 Share Posted July 12, 2017 First run ioreg -p IODeviceTree -d 2 -k board-id | grep board-id | sed -e 's/ *["=<>]//g' -e 's/board-id//' in Terminal. You will get something like this: Mac-F60DEB81FF30ACF6 This is your board-id. X86PlatformPlugin will read it.Locate to /System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/X86PlatformPlugin.kext/Contents/Resources, you will find various these kinds of plist. (e.g. Mac-F60DEB81FF30ACF6.plist ) Make some modifications to it. For example. With freqVectorsEdit.sh. But the modified plist will be restored to vanilla one after system update. So you can put it/them inside AppleX86PlatformPluginInjector.kext/C*/R* and install it to /S/L/E or /L/E, and it will keep working after system update. thank you sir 나의 SM-N930S 의 Tapatalk에서 보냄 1 Link to comment Share on other sites More sharing options...
le0nardwashingt0n Posted July 20, 2017 Share Posted July 20, 2017 First run ioreg -p IODeviceTree -d 2 -k board-id | grep board-id | sed -e 's/ *["=<>]//g' -e 's/board-id//' in Terminal. You will get something like this: Mac-F60DEB81FF30ACF6 This is your board-id. X86PlatformPlugin will read it. Locate to /System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/X86PlatformPlugin.kext/Contents/Resources, you will find various these kinds of plist. (e.g. Mac-F60DEB81FF30ACF6.plist ) Make some modifications to it. For example. With freqVectorsEdit.sh. But the modified plist will be restored to vanilla one after system update. So you can put it/them inside AppleX86PlatformPluginInjector.kext/C*/R* and install it to /S/L/E or /L/E, and it will keep working after system update. I'm trying to get this work. I have an ivy bridge processor I tried using the freqvectorsedit.sh script but none of the board ids are the board I have. can you give me some direction on which board-id to use? my smbios is iMac 13,2 and that's pretty close to my hardware. Link to comment Share on other sites More sharing options...
mnfesq Posted July 20, 2017 Share Posted July 20, 2017 I'm trying to get this work. I have an ivy bridge processor I tried using the freqvectorsedit.sh script but none of the board ids are the board I have. can you give me some direction on which board-id to use? my smbios is iMac 13,2 and that's pretty close to my hardware. You don't have to change your board. That's the whole point of the script. You can take the frequency vectors of a different board and apply them to yours. You will have to see which one works best. For example, I use the board that is appropriate for the SMBIOS for MBP9,2. However, I took the frequency vectors from the board for MBP11,4 and applied them to my board. I still have the same board-id in my SMBIOS and the SMBIOS is still the one for MBP9,2 but the frequency vectors were modified so that I get the power management features found in the board for MBP11,4, including new P-States I never had before. You'll have to experiment to find out which board-id works best for you. Therefore, be sure to save a copy of the plist for your board-id as a back up first before you begin experimenting. 1 Link to comment Share on other sites More sharing options...
le0nardwashingt0n Posted July 21, 2017 Share Posted July 21, 2017 thank you for the help. I tried your advice and got it working with iMac 14,2. then I updated to 10.12.6 and it stopped working. I redid everything since this post says a system update will break things, but it didn't help. The good thing is I know it works. perhaps the kernelpatch isn't the same. I did some searching but can't find anything about 10.12.6. You don't have to change your board. That's the whole point of the script. You can take the frequency vectors of a different board and apply them to yours. You will have to see which one works best. For example, I use the board that is appropriate for the SMBIOS for MBP9,2. However, I took the frequency vectors from the board for MBP11,4 and applied them to my board. I still have the same board-id in my SMBIOS and the SMBIOS is still the one for MBP9,2 but the frequency vectors were modified so that I get the power management features found in the board for MBP11,4, including new P-States I never had before. You'll have to experiment to find out which board-id works best for you. Therefore, be sure to save a copy of the plist for your board-id as a back up first before you begin experimenting. Link to comment Share on other sites More sharing options...
mnfesq Posted July 21, 2017 Share Posted July 21, 2017 thank you for the help. I tried your advice and got it working with iMac 14,2. then I updated to 10.12.6 and it stopped working. I redid everything since this post says a system update will break things, but it didn't help. The good thing is I know it works. perhaps the kernelpatch isn't the same. I did some searching but can't find anything about 10.12.6. Here's the new patch info for 10.12.6: #17 1 Link to comment Share on other sites More sharing options...
le0nardwashingt0n Posted July 21, 2017 Share Posted July 21, 2017 not sure why I couldn't find that! it's working now, thanks for your help Here's the new patch info for 10.12.6: #17 Link to comment Share on other sites More sharing options...
PMheart Posted July 21, 2017 Share Posted July 21, 2017 @le0nardwashingt0n Hi. If iMac14,2 works best, you could also change your SMBios to iMac14,2 to make everything work natively. (i.e. No need to patch X86PlatformPlugin) Link to comment Share on other sites More sharing options...
cicetto Posted October 18, 2019 Share Posted October 18, 2019 any patch for 10.15? Link to comment Share on other sites More sharing options...
Recommended Posts