Emulate
Cpuid1Data
- Type:
plist data
, 16 bytes - Failsafe: All zero
- Description: Sequence of
EAX
,EBX
,ECX
,EDX
values to replaceCPUID (1)
call in XNU kernel.
This property primarily meets three requirements: - Enabling support for an unsupported CPU model (e.g. Intel Pentium). - Enabling support for a CPU model not yet supported by a specific version of macOS (typically old versions). - Enabling XCPM support for an unsupported CPU variant.
Note 1: It may also be the case that the CPU model is supported but there is no power management supported (e.g. virtual machines). In this case,
MinKernel
andMaxKernel
can be set to restrict CPU virtualisation and dummy power management patches to the particular macOS kernel version.Note 2: Only the value of
EAX
, which represents the full CPUID, typically needs to be accounted for and remaining bytes should be left as zeroes. The byte order is Little Endian. For example,C3 06 03 00
stands for CPUID0x0306C3
(Haswell).Note 3: For XCPM support it is recommended to use the following combinations. Be warned that one is required to set the correct frequency vectors matching the installed CPU.
- Haswell-E (
0x0306F2
) to Haswell (0x0306C3
):Cpuid1Data
:C3 06 03 00 00 00 00 00 00 00 00 00 00 00 00 00
Cpuid1Mask
:FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00
- Broadwell-E (
0x0406F1
) to Broadwell (0x0306D4
):Cpuid1Data
:D4 06 03 00 00 00 00 00 00 00 00 00 00 00 00 00
Cpuid1Mask
:FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00
- Comet Lake U62 (
0x0A0660
) to Comet Lake U42 (0x0806EC
):Cpuid1Data
:EC 06 08 00 00 00 00 00 00 00 00 00 00 00 00 00
Cpuid1Mask
:FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00
- Rocket Lake (
0x0A0670
) to Comet Lake (0x0A0655
):Cpuid1Data
:55 06 0A 00 00 00 00 00 00 00 00 00 00 00 00 00
Cpuid1Mask
:FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00
- Alder Lake (
0x090672
) to Comet Lake (0x0A0655
):Cpuid1Data
:55 06 0A 00 00 00 00 00 00 00 00 00 00 00 00 00
Cpuid1Mask
:FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00
Note 4: Be aware 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 instead of this option. - Low-end CPUs (e.g. Haswell+ Pentium) as they are not supported properly by macOS. Legacy workarounds for older models can be found in the
Special NOTES
section of acidanthera/bugtracker#365.
- Type:
Cpuid1Mask
- Type:
plist data
, 16 bytes - Failsafe: All zero
- Description: Bit mask of active bits in
Cpuid1Data
.
When each
Cpuid1Mask
bit is set to0
, the original CPU bit is used, otherwise set bits take the value ofCpuid1Data
.- Type:
DummyPowerManagement
- Type:
plist boolean
- Failsafe:
false
- Requirement: 10.4-12
- Description: Disables
AppleIntelCpuPowerManagement
.
Note 1: This option is a preferred alternative to
NullCpuPowerManagement.kext
for CPUs without native power management driver in macOS.Note 2: While this option is typically needed to disable
AppleIntelCpuPowerManagement
on unsupported platforms, it can also be used to disable this kext in other situations (e.g. withCpuid1Data
left blank).- Type:
MaxKernel
- Type:
plist string
- Failsafe: Empty
- Description: Emulates CPUID and applies
DummyPowerManagement
on specified macOS version or older.
Note: Refer to the Add MaxKernel description for matching logic.
- Type:
MinKernel
- Type:
plist string
- Failsafe: Empty
- Description: Emulates CPUID and applies
DummyPowerManagement
on specified macOS version or newer.
Note: Refer to the Add MaxKernel description for matching logic.
- Type: