Jump to content

[Release] HWP (Intel Speed Shift on Skylake and up) Enabler Kext


Krim404
 Share

7 posts in this topic

Recommended Posts

(this got deleted in another forum out of political reasons)

 

What is HWP? HWP is a technology introduced in Skylake which lets the CPU select its own stepping speed without the usage of the CPU Multiplier. Additionally it trottles/boosts itself much faster, which improoves overall CPU performance. With enabled HWP you dont need to create SSDTs with CPU P-States anymore.

 

This is also already implemented in newer clover versions.

goodwin_c posted this in the (now deleted) Dell XPS 15 compatibility thread, but i think his development is very interesting for everyone - for Desktops and Notebooks.

When do you need this KEXT?

  1. your computer uses a Intel Skylake or newer
  2. you dont want to create frequency vectors
  3. you want more performance and/or lower energy consumption

Download: https://github.com/goodwin/HWPEnable
(Install the kext in S/L/E)

 

goodwin_c said:
- My changes for HWP support in Clover are already in repo and will be included into next build clear.pnghttps://sourceforge.net/p/cloverefiboot/code/3879/
- Fully rewrote my kext. I like it now! You can got it here https://github.com/goodwin/HWPEnable
- Normal support of HWP needs not only CPU configuration, but also frequencyVectors with HWP flag. Currently in El Capitan this is only MacBook9,1. So who want to have best possible CPU performance with incredible battery life - change your smbios to MacBook9,1. Also, for those who has generated ssdt.aml - delete it and forget, we don't need it anymore bcz HWP will handle all power management! Yarrr

So now my kext have some configuration in Info.plist. Also you can manually change your performance profile with new command line tool. If somebody wants - you can make GUI for it clear.png As for me cli tool is more than enough.
So let's do some description:
In Info.plist:
- you can disable HWP enabling by kext with "HWPenable"
- you can disable automatic HWP profile setting on kext load with "HWPSetDeaults"
- you can set automatic HWP profile with "HWPDeaultVal"
You can read current HWP profile until working ins OS X with next command:
./hwpenabler rd_req
You can set current HWP profile until working ins OS X with next command:
./hwpenabler wr_req <HEX_VAL>
Where <HEX_VAL> is hexidecimal value for HWP settings cpu register. So, this setting looks scary as for now... lets learn a little...
Lets check example:
80002301 - you can divide into four parts:
80 - EPP profile (performance preference), can be value from 00 to FF (from 0 to 255 in decimal). Bigger value - more aggresive battery saving. With FF most part of time you CPU will be on lowest frequency. Find out what you like more clear.png Default is decimal 128 that gives 80 in hex
00 - reserved, should be zero
23 - maximum frequency, from hex 23 will give 35 that is maximum turbo freq for i7-6700HQ. If you have different CPU or you want to limit max freq - change this
01 - lowest frequency, just keep it as 01
So, looking on that, we can make few profiles:
80002301 - middle point
64002301 - little more performance (moderate mode)
94002301 - little more battery saving (same setting as on real MacBook9,1)

Happy using guys!

P.S. Forgot one more detail! New kext now loads automatically with system, no need to load it manually on each reboot!

 

 

 

  • Like 1
Link to comment
Share on other sites

Is using the kext unnecessary with the Clover option enabled?

either the clover option, or the kext. no need for both.

 

 

I can confirm it's working using 13,1 smbios, I just have to understand how to keep it working after sleep.

 

2.1 Keep Speed Shift after sleep 

To retain Speed Shift after resume from sleep, you need to follow a few simple steps. Otherwise, Speed Shift won't work after your system slept. Kinda pointless. Thanks to DELL we don't have Speed Shift enabled in our BIOS, so we need to help ourselves.

 

Create a file called '.wakeup' and fill it with the following: 

kextunload -b good.win.HWPEnabler

kextload -b good.win.HWPEnabler

Install Homebrew

Issue the following commands in terminal from the location of your .wakeup file

chmod +x .wakeup 

sudo cp

.wakeup /var/root/

brew install sleepwatcher

sudo brew services start sleepwatcher 

Done.

Remember: It's either Speed Shift or SSDT.aml patching via Pike R. Alpha for Power Management, not both.

  • Like 1
Link to comment
Share on other sites

  • 1 month later...

good stuff here.

 

note: using HWPenabled with clover does work...

but one will may also need to edit the X86Platform resources file to change FrequencyVector data - to properly set the min-p state and/or EPP (energy performance preference) values to match your specific CPU and Product Model. for example, I use product MPB13,1 which seems to use properties from file: Mac-473D31EABEB93F9B.plist

Link to comment
Share on other sites

  • 1 month later...

Hi syscl

 

Does the HWPEnabler has a desktop version for the skylakes?

 

My 6700T has 13 steps W/O any setting after a new installation, but put HWPEnabler into SLE and rebuild..., only working with the lowest and top 2 steps, total 3 steps.

Link to comment
Share on other sites

 Share

×
×
  • Create New...