-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
OcAppleKernelLib: Add builtin XCPM patches for Ivy Bridge and other unsupported CPUs #365
Comments
Done with both necessary code in OpenCore and sufficient notes for special cases. |
I'm adding this here because it seems, at least on the surface, related to some of these other patches. I can't boot with the native CPUID for my Xeon Gold ( I also need the above patches in |
@mrmiller bit 0 of that MSR is similar to CFG Lock (
Most likely Intel EIST is disabled in your firmware, but macOS expects that it is enabled. Your choice is either fix your firmware, or reset bit 0 on boot (if possible), or patch that MSR write. |
Is it possible to add verification of that bit to VerifyMsrE2? Just to keep all relevant checks in one tool. |
No, it cannot be done reliably due to MSR desync on many GA boards (see VerifyMsrE2 for reference). Even if it was not the case, we would also not have bothered with detection as it does not follow OpenCore design. Closing again. |
Bit 0 is indeed unset. I'll see if I can find a way to set it. Which documentation are you referencing, by the way? I was looking for information about the MSR but couldn't find it in either Skylake-SP reference. |
Hmm, I expected it to be 0 to work… Maybe I am wrong. This is from |
Ah, sorry! I misunderstood what you said and had it backwards. Documentation is rather light there. I don't really get the sense that bit 0 is a lock on the rest of the bits either. Here's my current state for that MSR:
What's curious to me is that the kernel is trying to or |
Yes, you are most likely right. macOS wants to have full control on Intel Power Management technologies available, and our firmware tries to implement EIST, HWP, and friends support for everyone else but macOS. Sometimes related registers are available for writing (like It is like an infinite trouble area but in general you could find some firmware preferences to disable this or that, and macOS can live happily. The documentation is indeed quite opaque, but I e-mailed you some materials that may help. |
thank u so much |
Sorted out ECX features spoofing: |
Hello, As I have dual boot to win10, I was able to verify that this combo can really boost to 4.9Ghz. Basically the (latest rev of Board) Bios is setup according OpenCore Setup Guide for Coffee Lake. I tried also different Settings in Bios regarding Speed Step and so on without success in regards of CPU Boost. Also I tested several hints regarding SSDT-Plug or CPUFriend. So finally, after enabling AppleXcpmExtraMsrs, my i7-9700K boosts beyond 3,7Ghz. Cheers, T |
@th0u I believe the issue might be in your BIOS settings, but good to hear that you found a workaround anyway. |
I'm a newbie to this field. Can someone tell me what, where and how to patch? |
Background
Owing to the lack of symbol resolver and bitmasking, @syscl and I created a tremendous number of patches in Clover years ago, which conversely helps us cope with the bytes nowadays despite messy. There @syscl (or I) added patches earlier than 10.12 as well, yet it has not been well tested. (Or rather NOT AT ALL!) I think the first time people started this heated debate was by the time @Piker-Alpha posted his (probably the first detailed) article at his blog.
And now with OC, it would be nice to handle this much more properly.
What to patch
As summed up at InsanelyMac, XCPM on unsupported CPUs requires several patches:
Special NOTES for Haswell+ low-end
Your support gets dropped as of 10.13 or 10.14 kindly by Apple. Sorry, I cannot tell the exact version, but it indeed is bad news. Well, I will be able to post the necessary patches if you just want to try out earlier versions with your lovely low-end models. LOL
First, apply CPUID patch via
Kernel->Emulate
:This will fake CPUID as 0x306A9 (Ivy Bridge) in order to successfully boot. Yet Ivy Bridge is an XCPM-unsupported model, thus patch to _xcpm_bootstrap might be needed depending on macOS version, as well as a universal patch for AVX (see below):
boot-arg
named-xcpm
._xcpm_bootstrap (Haswell+ low-end Celeron/Pentium) 10.12
_xcpm_bootstrap (Haswell+ low-end Celeron/Pentium) 10.13+ (10.13-10.15 at least)
As well as this universal AVX patch for 10.12+:
Special NOTES for performance fix
Firstly. Do NOT use this patch whenever possible! It basically even breaks the idea of CPU power management. Secondly, it is named
AppleXcpmForceBoost
in OpenCore quirks.Legacy patch depending on macOS version
XCPM performance fix (10.8.5 - 10.13.3)
XCPM performance fix (10.13.4+)
The text was updated successfully, but these errors were encountered: