Contribute
Register

Skylake HWP Enable

Status
Not open for further replies.
@shuhung or anyone else who might know -

I'm wondering if you might know what is causing an issue I am having with HWP.

I am running the iMac17,1 definition and have a Skylake 6700k CPU. It is overclocked in BIOS to 4.5GHz.

If I enable HWP in Clover, with an aggressive power saving setting like 0x94002D01, CPU power management works very well. The CPU drops to 800MHz when under light load, but still peaks to 4.5GHz during heavier work.

However, reading this thread I realised that X86PlatformPlugin is not loading with that configuration.

So, reading some of your comments, I thought I would just enabled P State and C State generation in Clover (so it would generate an 'empty' SSDT and enable X86PlatformPlugin to load). This did work, and the plugin was loaded.

However, the CPU is stuck at 4.5GHz all the time. It doesn't drop at all with P State and C State enabled.

So I generated an SSDT with ssdtPRGen.sh. This had the same effect - stuck at 4.5GHz.

Do you have any idea why HWP might not work properly when I am trying to get X86PlatformPlugin working?


Issue like Kabylake CPU with both HWP and XCPM enable, but not as same.

When Kabylake CPU running HWP and XCPM at same time, frequency will stuck at peak level.

I do not have K series CPU for test, normally Skylake CPU work fine with HWP and XCPM both enabled, may be try to disable OC setting from BIOS can help, or try to complete disable XCPM for test.

X86PlatformPlugin is used to enable platform power saving (AGPM and PCIe ASPM), need always enable, it do not prevent HWP control.

I concern about power saving more than performance, I choose HWP control and completely disable XCPM control, for XCPM control is not good enough for me.
 
@shuhung or anyone else who might know -

I'm wondering if you might know what is causing an issue I am having with HWP.

I am running the iMac17,1 definition and have a Skylake 6700k CPU. It is overclocked in BIOS to 4.5GHz.

If I enable HWP in Clover, with an aggressive power saving setting like 0x94002D01, CPU power management works very well. The CPU drops to 800MHz when under light load, but still peaks to 4.5GHz during heavier work.

However, reading this thread I realised that X86PlatformPlugin is not loading with that configuration.

So, reading some of your comments, I thought I would just enabled P State and C State generation in Clover (so it would generate an 'empty' SSDT and enable X86PlatformPlugin to load). This did work, and the plugin was loaded.

However, the CPU is stuck at 4.5GHz all the time. It doesn't drop at all with P State and C State enabled.

So I generated an SSDT with ssdtPRGen.sh. This had the same effect - stuck at 4.5GHz.

Do you have any idea why HWP might not work properly when I am trying to get X86PlatformPlugin working?



Did you ever figure this out? I am experiencing exactly the same that you are.
 
Hey, so I did everything and using SMBIOS 17,1 and seems like HWP works much better than the SSDTs, but my only problem is, my minimum clock has been raised from 800MHz to 1Ghz, is it possible to bring the minimum to 800Mhz? I am using 0x20002801 on non-k i7 6700
 
Hey, so I did everything and using SMBIOS 17,1 and seems like HWP works much better than the SSDTs, but my only problem is, my minimum clock has been raised from 800MHz to 1Ghz, is it possible to bring the minimum to 800Mhz? I am using 0x20002801 on non-k i7 6700
i don´t think that 0x20002801 is valid.
I think it should be 0x20002A01
 
Here´s what I did using SMbios iMac 17.1 on my Asus Maximus Ranger Viii 6700K
Noctua nh-d14 (better than almost all water cooling)
Copy SSDT-pr.aml from here #1 to EFI/Clover/ACPI/patched.
Install Shuhung`s X86PlatformPlugin.kext from here #88 in S/L/E or /L/E using Kextbeast 2.0.1
Delete SSDT.aml from EFI/Clover/ACPI/patched.
Reboot.

You get much better Powermanegement compared to using SSDT.aml

http://www.anandtech.com/show/9751/examining-intel-skylake-speed-shift-more-responsive-processors


Credit to PMheart and syscl and not at least Rehabman

Rehabman explained it to me
I asked :

Ok after removing these settings (HWPEnable and HWPValue) from cloverconfig.plist it´s still working.
Is it because the kext or is it because the SSDT-pr.aml ?

Rehabmans answer:

Combination of both.

SSDT-pr.aml injects "plugin-type"=1 on CPU0.
That causes X86PlatformPlugin to load.
If you use an SMBIOS that enables HWP, X86PlatformPlugin will initialize HWP at boot and after wake from sleep.
The X17PP.kext is just a kext that changes the plists for iMac17,1 such that HWP is enabled, as iMac17,1 does not use HWP by default (although other Skylake laptops do).

But no need for HWPEnable and HWPValue in Clover. Although you could use them if you weren't using an HWP enabled X86PlatformPlugin plist, you would then lose HWP on a sleep/wake cycle.
UPDATE.
I´m now using Shuhung´s X86PlatformPluginInjector.kext (attached to #67) instead of X17PP.kext
 
Last edited:
Nice straight forward tutorial!
Can you recommend to me to use your steps with my 6700k on a Gigabyte Z170X-Gaming 3 board?
I still haven't applied HWP and can follow in HWMonitor how the CPU speeds up the frequency to 4,xxGHz by every single task which isn't really needed IMHO.
The lowest while ideling is 1GHz (x10).
Nice that you put the values for different frequencies. But i still haven't understood fully what the HEX values are?
What is the full path of S/L/E or /L/E?
You write "For other use hex converter linked in OP" -> what do you mean by OP?
OP is original post (#1)
To install kext you need Kextbeast 2.0.1 from download section here on Tonymac.
Put Shuhung`s X86PlatformPlugin.kext on your desktop an run Kextbeast.
It gives you 2 options.
Install to S/L/E (System/Library/Extensions) or L/E (Library/Extensions
I installed to S/L/E.
 
Last edited:
OP is original post (#1)
To install kext you need Kextbeast 2.0.1 from download section here on Tonymac.
Put X17PP.kext on your desktop an run Kextbeast.
It gives you 2 options.
Install to S/L/E (System/Library/Extensions) or L/E (Library/Extensions
I installed to S/L/E.

Hi arehep,

Previously I tested x17pp.kext with SMBIOS iMac17.1, it seems to be incompatible with Kabylake i3 7100.
I change below settings in Mac-551B86E5744E2388.plist (MacBookPro14,3), and rename to Mac-B809C3757DA9BB8D.plist (iMac17,1), it work but result does not meet my expect (compared with clover provided HWPEnable method), need to create new plist base on iMac17.1 or iMac 14.1 for Kabylake.

Can you share your Intel Power Gadget at low idle reading for comparison.

02000000 08000000 01000000 00000000 BC020000 00000000 LFM set to min at frequency 800 MHz
65707000 00000000 00000000 00000000 00000000 C0000000 EPP at max power saving level
0x00 Performance
0x40 Balance performance
0x80 Balance power
0xC0 Max Power saving


Attached is my Power Gadget at low idle reading and X86PlatformPluginInjector.kext tested with iMac 17.1 and iMac 14.1.
 

Attachments

  • iMac 17.1 hwp.png
    iMac 17.1 hwp.png
    38.1 KB · Views: 329
  • X86PlatformPluginInjector.kext.zip
    46.9 KB · Views: 230
https://www.tonymacx86.com/threads/skylake-hwp-enable.214915


Hi arehep,

Previously I tested x17pp.kext with SMBIOS iMac17.1, it seems to be incompatible with Kabylake i3 7100.
I change below settings in Mac-551B86E5744E2388.plist (MacBookPro14,3), and rename to Mac-B809C3757DA9BB8D.plist (iMac17,1), it work but result does not meet my expect (compared with clover provided HWPEnable method), need to create new plist base on iMac17.1 or iMac 14.1 for Kabylake.

Can you share your Intel Power Gadget at low idle reading for comparison.

02000000 08000000 01000000 00000000 BC020000 00000000 LFM set to min at frequency 800 MHz
65707000 00000000 00000000 00000000 00000000 C0000000 EPP at max power saving level
0x00 Performance
0x40 Balance performance
0x80 Balance power
0xC0 Max Power saving


Attached is my Power Gadget at low idle reading and X86PlatformPluginInjector.kext tested with iMac 17.1 and iMac 14.1.

Hi shuhung
Here´s Intel Power Gadget using X17pp.kext (SMBIOS iMac17.1)

2.png



And here´s using your modified kext (SMBIOS iMac17.1)

1.png

Using your kext the lower frequencies is much more stable and power consumption and temperature lower.
But it seems that it´s not reaching as many steps in AppleIntelInfo.
(I´m not using Clover HWPEnable method - only SSDT-pr.aml and kext)

My cpu (i7 6700K) is oc´ed to 46 Ghz and Geekbench 4 results are the same

So thank you for sharing your kext
 
Last edited:
https://www.tonymacx86.com/threads/skylake-hwp-enable.214915


Hi shuhung
Here´s Intel Power Gadget using X17pp.kext (SMBIOS iMac17.1)

View attachment 253310



And here´s using your modified kext (SMBIOS iMac17.1)

View attachment 253311

Using your kext the lower frequencies is much more stable and power consumption and temperature lower.
But it seems that it´s not reaching as many steps in AppleIntelInfo.
(I´m not using Clover HWPEnable method - only SSDT-pr.aml and kext)

My cpu (i7 6700K) is oc´ed to 46 Ghz and Geekbench 4 results are the same

So thank you for sharing your kext

Hi arehep,

Result same as my test, HWP is not fully enable by X17pp.kext, it only add HWP ON setting, slightly better than XCPM control, is useless.

It does not improve any performance, EPP setting is base on max power saving level.

Weird, kext seems to be support 4.1 GHz max, you can oc'ed to 4.6 GHz with it.
Try use text editor open Piker freqVectorsEdit.sh, it contains more data may be useful for further optimize smbios.plist.

Btw, did you try to completely disable XCPM, and only use Clover provided HWPEanble method for test, result seems to be better than use dummy kext X86PlatformPluginInjector method.
 
https://www.tonymacx86.com/threads/skylake-hwp-enable.214915


Hi arehep,

Result same as my test, HWP is not fully enable by X17pp.kext, it only add HWP ON setting, slightly better than XCPM control, is useless.

It does not improve any performance, EPP setting is base on max power saving level.

Weird, kext seems to be support 4.1 GHz max, you can oc'ed to 4.6 GHz with it.
Try use text editor open Piker freqVectorsEdit.sh, it contains more data may be useful for further optimize smbios.plist.

Btw, did you try to completely disable XCPM, and only use Clover provided HWPEanble method for test, result seems to be better than use dummy kext X86PlatformPluginInjector method.

Yes my cpu is oc´ed to 46 Ghz and working using your kext.
I can se in both Intel Power Gadget and HWMonitor that it goes all the way up to 46
No I did not disable XCPM (I don´t know how to)
If I only use Clover HWPEnable method using SMBIOS iMac17.1 the problem is that the X86PlatformPlugin disappear in IOREG
and Energysaver changes to two sliders and les options.
Your kext is working fully on my system that is running rock solid with both manual and auto sleep/wake working
 
Last edited:
Status
Not open for further replies.
Back
Top