5/17/2023 0 Comments Macbook pro turbo boost switchervoltageshift write 0x199 0xNEW_DESIRED_VALUE_IN_HEX In my case, the default value for the limited CPU clock is 0x0d00.The returned value is in binary, you will probably want to convert it to hex.Read the current target operating point from the MSR.The first time you run voltageshift, you will have to approve loading the kext and reboot.If you get the failed Apple notarization warning when running voltageshift, start the binary once using Open in the Finder context menu and it should work fine in the terminal after that.Disable signed kext verification by booting in recovery mode and running csrutil enable -without kext in the terminal.Make sure the kext files are owned by root: sudo chown -R root:wheel VoltageShift.kext.Follow the installation instructions carefully: Confirmed to work on Big Sur.ĭisclaimer: Changing settings like these, especially using interfaces as low-level as directly writing MSR registers has a potential to damage your computer. If you want to change this value yourself, follow these steps. You may want to verify that this matches what your machine does before proceeding. However, from what I found online, it seems that the first byte is usually the requested CPU multiplier, and the second byte is always 0. Not expected to use either IA32_PERF_CTL or IA32_PERF_STATUS and should treat both as reserved. The 16-bit encoding that defines valid operating points is model-specific. The Intel® 64 and IA-32 Architectures Software Developer Manual states that: The exact value you need to write does not seem to be officially documented. What did work though was requesting a different Target Performance State Value using the IA32_PERF_CTL (0x199) MSR as suggested in this GitHub comment. You can even set a higher multiplier for increased performance if you wish but I never felt the need.Ĭhanging BD PROCHOT did not seem to work for me on an early 2015 MacBook Air with a missing battery. If you did find it was shutting down you can set the multiplier to a lower number to reduce peak power draw. However this has never happened to me and I've been running it like this almost 24*7 for the last couple of years. This is perhaps the reason Apple set this register on. In theory it is possible that at peak load you could take more power than the power adapter alone can supply resulting in a shutdown. If you turn off BD PROCHOT and set the multiplier to 25 you can get the 2.5 GHz. As you can see with it set on (as it is by the MacBook firmware) the clock is limited to 1.2 GHz. On Windows however there is a program called ThrottleStop which easily lets you turn off BD PROCHOT. I tried to write an EFI program to do this myself but could not get it to work - see Stack Overflow question How to make changes to msr 0x199 from EFI stick?. This is quite surprising as people facing throttling due to removed batteries is a fairly common issue. This is described in Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 4: Model-Specific RegistersĪlthough there are various macOS utilities to change other MSR (such as Turbo Boost Switcher) I can find no way to turn this one off in macOS. This will cause the CPU to throttle even though it is not itself overheating. The reason for this is that the EFI firmware sets on BD PROCHOT which is a CPU register (msr 0x1FC) usually used to tell the CPU that some other component (GPU or whatever) is overheating. With Intel Power Gadget you can easily see it. Like you I've no intention of getting a replacement and so in macOS the CPU is now throttled to 1.2 GHz. It has no battery as it swelled too much to fit in the case so I removed it. I have a late 2012 MacBook Pro with a i5-3210 CPU which has a base clock of 2.5 GHz and max Turbo of 3.2 GHz. If you don't want to replace the battery and the programs you want to run are available on Windows that would be the easiest/cheapest option. However it is easy to override the throttling on a MacBook if you use Windows as a OS but not if you run macOS. The CPU throttling due to battery is triggered by the firmware and it doesn't make any difference what version of macOS (or other OS) you are running.
0 Comments
Leave a Reply. |