Jump to content

(Big Sur) Need help to enable CPU Power Management for Dual Sandy-Bridge CPUs on HP Z820 (X79). No problem with Ivy-Bridge CPU(s).


Bill Huang
 Share

14 posts in this topic

Recommended Posts

Hello, everyone:

 

Wonder if anyone can shed some light on enabling CPU power management for Dual Sandy-bridge CPUs on a HP Z820 system, running Big Sur (latest 11.5.2), with OpenCore 0.7.1.

 

The issue appears to be associated only with Dual Sandy-Bridge CPU configurations, not Single CPU configuration, even on the same system (Update: Just checked my log. No CPU management even with one CPU configuration! System would boot without KP, but no power management).  Also, no problem for Ivy-Bridge CPUs (verified on other Z620/820 systems). Latest Big Sur (11.5+, not sure about earlier versions) appears to support that out of the box, without any patches, at least on my HP setup.

 

My systems were running great with Catalina (10.15.7), with full CPU power management, with the help of a couple of well-known kernel patches, here:
https://www.insanelymac.com/forum/topic/344523-sandy-bridge-e-ivy-bridge-e-power-management-1015/?tab=comments#comment-2730495, and a SSDT_CPUM.aml generated with ssdtPRgen. There are total of 7 patches mentioned above, but only the last two appeared to be sufficient for my HP setup.

 

Now, moved to Big Sur 11.5.2.  Clean install, with the same SSDT_CPUM.aml. Surprised to discover that full CPU power management is still working, except Dual Sandy-Bridge CPU configurations. Also, NO PATCHING is NEEDED under latest Big Sur - i.e. no need to load any of the 7 patches (btw - only 4 of the them would load under Big Sur).  The only exception is Dual Sandy-Bridge configurations - system will experience kernel panic, for Dual CPU setup, as soon as SSDT_SPUM.aml is enabled. Single Sandy-bridge CPU setup would boot, but still no power management. In this both cases, I had to run the system without CPU power management, by leaving out SSDT_CPUM.aml.

 

So it appears that Big Sur (MacPro6,1) would not enable CPU power management for Dual Sandy-Bridge CPUs. New patches are needed. Hope someone with know-how could figure this one out.

 

Thanks,

 

Bill

 

 

 

Edited by Bill Huang
Added addtional details and correct typo.
Link to comment
Share on other sites

6 hours ago, Slice said:

May be using Clover you will have a success.

Thank you for your response. Would Clover offer new patches differently than we already have? I had been using OC with Catalina for this setup, using the same set patches. Of course it is no longer working due to Big Sur update of the Mac binaries. My understanding so far (please correct me if I am wrong) is that Sandy Bridge CPUs were not used in the MacPro lineup, but Ivy-Bridge's are. So the solution (a patch) would be to fool the macOS power management tool into thinking that we had an Ivy Bridge installed. How to do that is beyond my skills.

Edited by Bill Huang
Link to comment
Share on other sites

5 hours ago, Bill Huang said:

Thank you for your response. Would Clover offer new patches differently than we already have? I had been using OC with Catalina for this setup, using the same set patches. Of course it is no longer working due to Big Sur update of the Mac binaries. My understanding so far (please correct me if I am wrong) is that Sandy Bridge CPUs were not used in the MacPro lineup, but Ivy-Bridge's are. So the solution (a patch) would be to fool the macOS power management tool into thinking that we had an Ivy Bridge installed. How to do that is beyond my skills.

Clover provides different methods to do the same things.

Link to comment
Share on other sites

On 9/3/2021 at 4:17 AM, 5T33Z0 said:

 

Please upload the SSDT_CPUM.aml so I can have a look at it-.

Here is my ssdt CPU file, generated with this command. For single CPU, used '-cpus 1'. Both outputs appeared to be identical, other than the 'debug" comments.

      ./ssdtPRGen.sh -cpus 2 -p 'E5-2680' -x 1 -target 0 -turbo 3500 -c 3 -mode custom

 

All other commands would fail, such as specifying MacPro6,1 model in the command option (Sandy Bridge CPU is not officially supported). Typically for a V2 Xeon, I used the following command (as an example):

    ./ssdtPRGen.sh -cpus 2 -l 40 -p 'E5-2680 v2' -x 1 -b Mac-F60DEB81FF30ACF6 -c 3 -mode custom

 

I used the same EFI folder to boot both Big Sur (11.5.2) and Catalina (10.15.7), using the same config.plist file. Normally, I would have the two AICPM kernel patches (#6/#7, needed for Catalina) removed for Big Sur. But I found out that they did not seem to do any harm under Big Sur (only #7 would load), so I left them in there to have a single setup for both macOS.

 

I've also attached the output of running "AppleIntelInfo.kext" to show AICPM is fully working under Catalina, but not Big Sur. If I drop a V2 Xeon CPU in the same setup, AICPM will start working again, under Big Sur, without any changes, other than updating a new ssdt_CPUPM.aml. Attached plist file, with serial # removed.

 

 

AppleIntelInfo_Out_BigSur.png

AppleIntelInfo_Out_Catalina.png

ssdt-CPUPM.aml

config-Z820.plist

Edited by Bill Huang
Added plist file, with Serial info removed.
Link to comment
Share on other sites

I think you need to deactive XCPM and use the legacy ACPI_SMC_PlatformPlugin. Otherwise you need patch it into the kernel. I did this once for my IvyBridge Laptop CPU to test XCPM - and it performed worse. And with every new Kernel/version of macOS these patches have to be adjusted in order to work. Otherwise you get a "Kernel Patch is borked" type of notification in OpenCore.

 

Your  CPU is in the database of SSDTPrGen. I'd just boot into Catalina and generate a new SSTD-PM with the default settings (without XCPM) and see how it works. I am pretty sure that trying to patch in XCPM is the issue.

Link to comment
Share on other sites

Thank you for the follow up. I would need some help in trying out your suggestion. 

 

1) How do I switch from XCPM to ACPI_SMC_FlatformPlugin? 

Currently system is using X86PlatformPlugIn (see attached picture).

 

2) "generate a new SSTD-PM with the default settings (without XCPM)"?

 

I tried this: 

./ssdtPRGen.sh -cpus 2 -p 'E5-2680' -x 0 -target 0 -turbo 3500 -c 3 -mode custom

 

Before, it was:

./ssdtPRGen.sh -cpus 2 -p 'E5-2680' -x 1 -target 0 -turbo 3500 -c 3 -mode custom

 

Compared the outputs. Only different is one line in the debug section, under (_INI,...) method:

           Debug = "machdep.xcpm.mode.....: 1"     v.s.

           Debug = "machdep.xcpm.mode.....: 0"
 

Tried to load the new ssdt, but made no difference. 

IORegistryExp_BigSur.png

Link to comment
Share on other sites

OK. I've tried this command running ssdtPRGen:

     ./ssdtPRGen.sh -mode custom -b Mac-F60DEB81FF30ACF6 -p 'E5-2680' -c 3 -x 0 -cpus 1

 

I ignored "warning/error" messages from ssdtPRGen (said "board-id" not supported by Sandy Bridge), and went ahead to create the ssdt. This time it is indeed a different file from my earlier version.

 

Loaded this new ssdt and boot up again with Big Sur. Now, IORegistry showed "ACPI_SMC_PlatformPlugin" is used (see screen capture).

 

But still no CPU power management. CPU is stuck at 2.7 GHz. AppleIntelInfo.kext showed no C-States.

 

Also, during booting, debug output to the screen complaint something about C1 state. But it went away too quickly. Those message were not captured in the OC log. I did not see similar msgs during Catalina booting.

 

Screen Shot 2021-09-03 at 4.53.02 PM.png

ssdt-new.dsl

Edited by Bill Huang
Link to comment
Share on other sites

Just another follow up. Tried the new ssdt (i.e. the "forced" output version, by ignoring the warning/error from ssdtPRGen.sh) on Catalina. It boots up fine and the CPU PM appeared to be working. But further testing showed, by AppleIntelInfo.kext, that the CPU frequency multiplier did not drop below 20x. So it is only "partially" working, compared to the old ssdt. If it would work under Big Sur, it would be still better than nothing. 

 

Edited by Bill Huang
Link to comment
Share on other sites

@Bill Huang If a CPU is in the database you don't have to add any additional arguments to the terminal command unless you would like to modify something, like the number of physcial CPUs or dropping the low frequency mode to 800 or 900 mHz for example which works often (usually in 100 mHz increments, depending on your base clock frequency). If you use the legacy power managment plugin you also have disable the kernel patches for enabling XCPM, which you did.

 

ssdtPRGen detects the CPUs, looks them up in the cfg files stored in the user library stored under ssdtPRGen > Data > Sand Bridge .cfg. It uses these values by default: E5-2680 (model) ,130 (tdp), 1200 (low freq) ,2700 (base freq) , 3500 (boost clock), 8 (cores), 16 (Threads).

 

x -0 is the correct command for disabling XCPM support, so that is correct. But in your "SSDT-New" the number of processors is only 1. But you have 2, right?

 

Your Terminal command was:

 

./ssdtPRGen.sh -cpus 2 -p 'E5-2680' -x 0 -target 0 -turbo 3500 -c 3 -mode custom

 

I think the -cpus switch did not apply. I would just try this for testing: ./ssdtPRGen.sh -p 'E5-2680' -cpus 2 so that the model is first in line followed by the rest of the options.

Edited by 5T33Z0
Link to comment
Share on other sites

@5T33Z0  I've been testing with a single CPU right now, since dual sandy-bridge CPUs will cause KP under Big Sur, as soon as SSDT_CPUPM.aml is loaded (every sddt versions I've tried so far). 

 

As for the running ssdtPRGen, your suggested format is normally correct. But for these HP units, the BIOS's DSDT does  not contain the needed CPU information, since

they are stored in SSDT instead. Thus, ssdtPRGen must be run with "-mode custom" option, which will look for DSDT.aml and APIC.aml files from the Desktop, instead of from real-time BIOS dump. I used Clover "F4" to created these files first, and renamed one of the output "ssdt-1-cpuDef.aml" to DSDT.aml, to fool ssdtPRGen to run. This was the trick I learnt from other peoples guide (e.g. bilbo's Z820 guide).

 

Anyway, I tried this command:  
    ./ssdtPRGen.sh -p 'E5-2680' -cpus 1 -mode custom

 

Again, I had to ignore the warning/error about "board-id not supported by Sandy Bridge, use the -target option". The output is basically identical to the one I generated earlier, using this:

   ./ssdtPRGen.sh -mode custom -b Mac-F60DEB81FF30ACF6 -p 'E5-2680' -c 3 -x 0 -cpus 1

 

except one extra line in the later,  Store ("CPU Workarounds.......: 3", Debug), because of the "-c 3" option. Tried both ssd's, still no CPU power management.

 

So, it appears for now I have to stay with Catalina for Sandy Bridge CPUs, until a proper solution/patch is found. Or, It is also about time to hack the motherboard's boot block to enable V2 xeon support! There is a guide out there for doing that..

 

I appreciate your help/suggestions. 

 

Bill

 

Edited by Bill Huang
Link to comment
Share on other sites

Sorry, that I couldn't help you further. If you are using a BIOS which doesn't fully support your CPUs maybe this is the reason why your ssdt doesn't work correctly since it's generated based on the information inside the Dsdt provided by the bios.

 

But before you hack your BIOS, I'd check if there's an official update which brings the support. If you brick the bios this board is basically toast unless you can either replace the bios chip or reflash it with a bios programmer and a clamp that you place on it. I had to do this once to resurrect my laptop.

 

I am kind of shocked that Z820 boards still coast about 400 dollars used... aren't they like 9 years old by now?

Link to comment
Share on other sites

@5T33Z0 Thanks for your reply. The BIOS does support Sandy Bridge CPUs, except the information is not stored in DSDT section but in SSDT section of the BIOS (the reason for ssdtPRGen to run with "-mode custom" flag). I believe the real issue is that Apple CPU Power Management refuse to enable the support for Sandy Bridge CPUs. If a V2 Xeon (Ivy-Bridge) is used, everything works fine. Unfortunately, earlier version of Z820 boards (BIOS Boot Block dated 2011) does not support V2. But someone has published a guide to flash a newer BIOS Boot Block to enable V2 Xeon support(here). This was what I mentioned in my previous post.

 

Indeed, these HP Z820 still cost a lot, since they are one the best workstation in its class. Rock solid! 

Edited by Bill Huang
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...