Hintergrund: Apple hat vor einigen Jahren die Unterstützung des X86PlatformPlugins für Intel CPUs der Ivy Bridge Familie in MacOS eingestellt. Stattdessen wird das ACPI_SMC_Platform_Plugin für das CPU Power Management verwendet, obwohl XCPM von Ivy Bridge unterstützt wird. Mehr zu den beiden Plugins hier. Allerdings finden sich in der Dokumentation von OpenCore nicht viele Infos dazu:
Zitat"Note 4: Note that the following configurations are unsupported by XCPM (at least out of the box):
Consumer Ivy Bridge (0x0306A9) as Apple disabled XCPM for Ivy Bridge and recommends legacy power management for these CPUs. _xcpm_bootstrap should manually be patched to enforce XCPM on these CPUs […]."
Mit einem Kernel Patch lässt sich XCPM jedoch wieder aktiveren und mit einer modifizierten SSDT-PM.aml bzw SSDT-PLUG.aml die Verwendung des X86PlatformPlugin wieder einschalten (sprich Plugin Type auf "1" setzen).
Kompatibilität: macOS 10.15.5 bis 11.3 beta
Voraussetzungen:
- Intel IvyBridge CPU
- Tools: Terminal, ssdtPRGEN, SSDTTime (optional), Plist Editor, MaciASL (optional), IORegistryExplorer (optional)
- SMBIOS, das Ivy Bridge CPUs unterstützt
ACHTUNG: Falls man macOS Big Sur installiert hat und um Zuge dessen ein SMBIOS einstellen musste, das Ivy Bridge CPUs nicht unterstützt, funktioniert ssdtPRGen nicht mehr. In diesem Fall SSDTTime verwenden, um SSDT-PLUG zu generieren und statt SSDT-PM verwenden. Die Frequenzen im Nachgang ggf. mit CPUFriend und CPUFriendFriend anpassen. Siehe hierzu o.g. Guide von KuckKuck.
How-To:
- Kernel-Patch für "_xcpm Bootstrap" aus. plist im Anhang in die Config unter Kernel > Patch einsetzen:
- Kernel > Quirks > AppleXcpmExtraMsrs auf "YES" stellen
Damit wäre das XCPM Feature für Ivy Bridge für macOS Catalina und Big Sur wieder aktiviert.
Jetzt muss allerdings noch der Plugin-Type der SSDT-PM.aml auf "1" gesetzt werden. Dazu generieren wir mit ssdtPRGen eine neue SSDT-PM. Da diese standard-mäßig ohne XCPM support generiert wird (also Plugin-Type = 0), muss man im Terminal den Befehl modifizieren.
Der benötigte Terminal-Befehl lautet: sudo /Users/DEIN USERNAME/ssdtPRGen.sh -x 1
-x 1 setzt Plugin-Type auf 1 (Leerstelle beachten)
Die Terminal-Ausgabe sieht in etwa so aus:
Die fertige ssdt.aml und ssdt.dsl befinden sich dann unter /Users/DEIN USERNAME/Library/ssdtPRGen
Ein Blick in die .aml Datei zeigt eine Auflistung aller Einstellungen der SSDT. Wenn in der letzten Zeile eine "1" steht, ist alles richtig:
- Die neu generierte "ssdt.aml" umbenennen in "SSDT-PM", nach EFI > OC > ACPI kopieren (ggf. alte ersetzen) und in OpenCore Config einbinden (falls noch nicht vorhanden).
- Config speichern
- neustarten
- Terminal öffnen: sysctl machdep.xcpm.mode
- Falls die Ausgabe "1" lautet, ist das X86PlatformPlugin aktiv, bei "0" nicht.
- auf Frequenz-Vektoren prüfen: sysctl -n machdep.xcpm.vectors_loaded_count (Benötigt SMBIOS, dass Frequenc Vecorts enthält, wie bspw. MacBookPro11,1)
In IORegistryExplorer sollte es so aussehen:
Viel Erfolg!
PS: Screenshot vom Endresultat. Aktiviertes XCPM unter MacBookPro10,1 in Intel Power Gadget. Allerdings muss ich sagen, dass die Performance mit aktiviertem XCPM in meinem Fall schlechter war als bei Verwendung des Legacy Plugins. Insofern muss jede/r selbst entscheiden, ob sie/er XCPM aktivieren möchte oder nicht. Möglich ist es jedoch.