kathir Posted 6 hours ago Posted 6 hours ago Title: bootplim=0 / forced_idle_ratio=100 — Package C-states stuck at 0% on Z390 + i5-9600K (Ventura) cpufriendkext andCPUFriendDataProvider also added --- System: - Board: Gigabyte Z390I Aorus Pro WiFi (BIOS F8h) - CPU: Intel i5-9600K - SMBIOS: iMac19,1 - macOS: Ventura 13.7.8 (22H730) - OpenCore: 0.9.7 (REL-107) - Boot: USB OpenCore (test EFI) --- Problem: Package C-states are completely stuck at 0% across all states (C2/C3/C6/C7/C8/C9/C10). Individual core C-states work fine (C6 at 84–97% residency). powermetrics shows TURBO_ATTENUATION limiter active even at 2.6W idle. Key sysctl values on every boot: machdep.xcpm.bootplim: 0 machdep.xcpm.forced_idle_ratio: 100 machdep.xcpm.mid_cst_control_limit: 0 IORegistry X86PlatformPlugin shows: CPUPLimitDict: pMax=0, pMin=38 IdlePLimitDict: pMax=0, pMin=100 IGPUPLimitDict: pMax=0, pMin=16 ForcedIdleTable is active --- What I have tried (none resolved bootplim=0): 1. AppleCpuPmCfgLock: true 2. AppleXcpmCfgLock: true 3. AppleXcpmExtraMsrs: true 4. ProvideCurrentCpuInfo: true 5. CFG Lock disabled via GRUB (MSR 0xE2 confirmed 0x00) 6. MSR 0xE2 kernel NOP patch (correct bytes for kernel 22.6.0) 7. SSDT-PMC — already present in SSDT-OLARILA 8. BIOS C-state settings — C8/C10 enabled, Package C State = Auto 9. BIOS SGX disabled 10. BIOS PL1/PL2 manually set to 95W (no visible setting on this board) 11. wrmsr 0x610 via GRUB shell with correct PL1=PL2=95W value 12. boot-args: xcpm_pkg_scope_msrs=1, xcpm_idle_disable=1 — both ignored --- MSR values read via modGRUBShell: MSR 0x606 (Power Unit): 0xa0e83 → 0.125W per unit MSR 0x610 (Pkg Power): 0x42ffd0001affd0 → PL1=PL2=0x7FFF (unlimited/no limit) MSR 0x1FC (Power Control): 0x38005f → power mgmt enabled The BIOS writes 0x7FFF (unlimited) to MSR 0x610 on this board and resets it on every boot. wrmsr fix doesn't survive reboot. --- Root cause assumption: On a real iMac19,1, X86PlatformPlugin reads CPU power budget from SMC keys (MSAL, PDTR) rather than MSR 0x610. VirtualSMC + SMCProcessor do not publish these SMC power budget keys, so X86PlatformPlugin receives nothing, sets bootplim=0, and activates ForcedIdleTable permanently. --- Question: Is there a known fix or workaround for this on Z390 + Coffee Lake desktop? Specifically — does SSDT-OLARILA or any custom SSDT provide a way to inject the missing SMC power budget data, or is there a VirtualSMC plugin that covers MSAL/PDTR for iMac19,1 SMBIOS? CPUFriend is working correctly (vectors_loaded_count=1, CPUFloor=800MHz, P-states 800MHz–4600MHz all correct). The only remaining issue is the package-level power budget injection. Archive.zip
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now