Contribute
Register

[Guide][New VoodooI2C] Asus Vivobook S15 X510UAR 10.13+

@bugsb Sorry, only SMBR is part of battery patch. GPRW patch is used for fixing instant wake
 
@bugsb Sorry, only SMBR is part of battery patch. GPRW patch is used for fixing instant wake
OK, thanks for confirming. Oh, I just tested with this patch deactivated, booted via hotpatch, and look-a-there: USB mouse click now causes wake, LOL .. so I will test with saintno's v.6 next which has SSDT-GPRW.aml included, and report back.
 
#1 It base on SSDT-UIAC-ALL and i have correct all the port!
#2 Not higher or lower! I think it just how the speedstep work!Jump to 3.4ghz and very quickly back to 800hz,it will better for battery
Read more here: https://www.tonymacx86.com/threads/skylake-hwp-enable.214915/
saintno, are you aware of Ben's comment regarding Clover config/ CPU/ HWPEnable/ HWPValue?
You don't need to use Clover's HWP settings, they are unnecessary.

Just use config.plist/ ACPI/ SSDT/ Generate Options/ PluginType=true to enable native power management + MacBookPro14,1 SMBIOS (Default in RehabMan's config.plist for Kaby Lake) to enable HWP
.

Your CPU will idle at 1.3Ghz (Per Apple's design, not a bug or something). If you want to lower it to 0.8Ghz, for example, you have 3 options:

1. freqVectorsEdit.sh - statically patching X86PlatformPlugin.kext's plist for your SMBIOS to change lowest frequency. Not recommended, as we want to keep the kext unpatched.

2. CPUFriend.kext - which can inject a modified plist for your hardware to, again, lower the minimum CPU frequency.

3. X86PlatformPluginInjector.kext - a codeless injector kext which will inject a modified plist (to lower your minimum frequency, you've got the idea, lol). This one is my favorite and the one I'm using, as you keep X86PlatformPlugin.kext native, and don't need another extra kext for your system (just a codeless injector).

You can find the appropriate plist for your hardware in /System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/X86PlatformPlugin.kext/Contents/Resources.
You should patch the 4th bit of the frequency vector (Default will be 0x0C == 13). Don't patch original plist, edit a copy on your Desktop!
See this post to understand a bit more about frequencyVectors selection:
https://www.insanelymac.com/forum/t...er-management/?do=findComment&comment=2365808

Creating an appropriate injector is easy. I hope @RehabMan will add an explanation about it in the power management guide :)
BTW, I came up with 0x94001001 back then (10 hex for 16 decimal as per binaryhexconverter.com / decimal-to-hex-converter) to leave my CPU's original 1.6 Ghz.
 
YES, VERY helpful, RehabMan, that solved all errors except one. I verified GPRW is not included in the patch list for static DSDT, read about what it's meant for, identified as not necessary at all because even without GPRW patch in static DSDT, no wake-up on USB mouse click and alike which is how I want it anyway, deactivated the patch in config.plist, rebooted, much better.

Now only this error remains, also confirmed by saintno:
Code:
Store (SMBR (RDWD, BADR), Arg0)
            Local0

No more compile errors at all as soon as changed to:
Code:
Store (SMBR (RDWD, BADR, Arg0), Local0)

as per saintno's suggestion. This is in
Code:
    Scope (_SB.PCI0.LPCB.EC0)
    {
        Name (BADR, 0x0B)
        Name (CADR, 0x09)
        Name (SADR, 0x0A)
        Method (BIFW, 1, NotSerialized)
which to me looks like battery related.

I looked in SSDT-BATT.dsl but did not find the code to be changed. @RehabMan , any idea for this last tidbit?

@baohiep welcome back from "observer status"!

Looking at my findings above, can you give us a hint what to do next? If you need to download the error report files, too, feel free to do so :)

Without PR files, your questions cannot be answered.
 
Comment: change Method(GPRW,2,N) to XPRW
  • Find: 47505257
  • Replace: 58505257
Comment: Battery: Rename Method(SMBR,3,Serialized) to Method(XSMR,3,Serialized)
  • Find: 534D4252
  • Replace: 58534D52

That patch is clearly wrong.
You need to read my ACPI hotpatch guide. Carefully.
 
Without PR files, your questions cannot be answered.
Let's saintno give some time for researching and fixing. No rush/ panic :)
 
#1 It base on SSDT-UIAC-ALL and i have correct all the port!
Is SSDT-USB.aml a drop-in SSDT which I can simply copy into my Clover/Acpi/patched folder with static DSDT, too, without adjusting anything in the older config.plist for static DSDT? (I think it is because in ioreg explorer I still do only see 9 entries under XHC booted with static DSDT config). I need to play it safe right now and revert back to static DSDT config for now. Am still trying to be available for testing.
 
Last edited:
That patch is clearly wrong.
You need to read my ACPI hotpatch guide. Carefully.
Yeah! I just try that, already back to origin patch!
saintno, are you aware of Ben's comment regarding Clover config/ CPU/ HWPEnable/ HWPValue?
BTW, I came up with 0x94001001 back then (10 hex for 16 decimal as per binaryhexconverter.com / decimal-to-hex-converter) to leave my CPU's original 1.6 Ghz.
0x94001001
  • The 94 value is show how performance is, can be changed to:
    • 00 - Video editing, Gaming (gaming on mac ?! haha)
    • 20 - Photo editing, Graphic works
    • 40 - Website editing, coding
    • 60 - Office work on MacBook with power savings first
    • 80 - Work on Battery with MacBook this is absolute power saving
    • => Thanks to kolyapatrik for his work
  • the 10 value is highest freq value for your cpu: as 8250U turbo is 3.4ghz i put 22 here
 
OK, all done, see:
AppleIntelInfo.kext v2.9 Copyright © 2012-2017 Pike R. Alpha. All rights reserved.

Settings:
------------------------------------------
logMSRs..................................: 1
logIGPU..................................: 1
logCStates...............................: 1
logIPGStyle..............................: 1
InitialTSC...............................: 0xe6d5f8ec357 (881 MHz)
MWAIT C-States...........................: 286531872

Processor Brandstring....................: Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz

Processor Signature..................... : 0x806EA
------------------------------------------
- Family............................... : 6
- Stepping............................. : 10
- Model................................ : 0x8E (142)

Model Specific Registers (MSRs)
------------------------------------------

MSR_IA32_PLATFORM_ID.............(0x17) : 0x1C000000000000
------------------------------------------
- Processor Flags...................... : 7

MSR_CORE_THREAD_COUNT............(0x35) : 0x40008
------------------------------------------
- Core Count........................... : 4
- Thread Count......................... : 8

MSR_PLATFORM_INFO................(0xCE) : 0x4043DF1011200
------------------------------------------
- Maximum Non-Turbo Ratio.............. : 0x12 (1800 MHz)
- Ratio Limit for Turbo Mode........... : 1 (programmable)
- TDP Limit for Turbo Mode............. : 1 (programmable)
- Low Power Mode Support............... : 1 (LPM supported)
- Number of ConfigTDP Levels........... : 2 (additional TDP level(s) available)
- Maximum Efficiency Ratio............. : 4
- Minimum Operating Ratio.............. : 4

MSR_PMG_CST_CONFIG_CONTROL.......(0xE2) : 0x1E008008
------------------------------------------
- I/O MWAIT Redirection Enable......... : 0 (not enabled)
- CFG Lock............................. : 1 (MSR locked until next reset)
- C3 State Auto Demotion............... : 1 (enabled)
- C1 State Auto Demotion............... : 1 (enabled)
- C3 State Undemotion.................. : 1 (enabled)
- C1 State Undemotion.................. : 1 (enabled)
- Package C-State Auto Demotion........ : 0 (disabled/unsupported)
- Package C-State Undemotion........... : 0 (disabled/unsupported)

MSR_PMG_IO_CAPTURE_BASE..........(0xE4) : 0x51814
------------------------------------------
- LVL_2 Base Address................... : 0x1814
- C-state Range........................ : 5 (C-States not included, I/O MWAIT redirection not enabled)

IA32_MPERF.......................(0xE7) : 0x291D7DB4533
IA32_APERF.......................(0xE8) : 0x1E80114BBBB

MSR_FLEX_RATIO...................(0x194) : 0x10000
------------------------------------------

MSR_IA32_PERF_STATUS.............(0x198) : 0x225500001E00
------------------------------------------
- Current Performance State Value...... : 0x1E00 (3000 MHz)

MSR_IA32_PERF_CONTROL............(0x199) : 0xF00
------------------------------------------
- Target performance State Value....... : 0xF00 (1500 MHz)
- Intel Dynamic Acceleration........... : 0 (IDA engaged)

IA32_CLOCK_MODULATION............(0x19A) : 0x0

IA32_THERM_INTERRUPT.............(0x19B) : 0x10
------------------------------------------
- High-Temperature Interrupt Enable.... : 0 (disabled)
- Low-Temperature Interrupt Enable..... : 0 (disabled)
- PROCHOT# Interrupt Enable............ : 0 (disabled)
- FORCEPR# Interrupt Enable............ : 0 (disabled)
- Critical Temperature Interrupt Enable : 1 (enabled)
- Threshold #1 Value................... : 0
- Threshold #1 Interrupt Enable........ : 0 (disabled)
- Threshold #2 Value................... : 0
- Threshold #2 Interrupt Enable........ : 0 (disabled)
- Power Limit Notification Enable...... : 0 (disabled)

IA32_THERM_STATUS................(0x19C) : 0x882E2808
------------------------------------------
- Thermal Status....................... : 0
- Thermal Log.......................... : 0
- PROCHOT # or FORCEPR# event.......... : 0
- PROCHOT # or FORCEPR# log............ : 1
- Critical Temperature Status.......... : 0
- Critical Temperature log............. : 0
- Thermal Threshold #1 Status.......... : 0
- Thermal Threshold #1 log............. : 0
- Thermal Threshold #2 Status.......... : 0
- Thermal Threshold #2 log............. : 0
- Power Limitation Status.............. : 0
- Power Limitation log................. : 1
- Current Limit Status................. : 0
- Current Limit log.................... : 1
- Cross Domain Limit Status............ : 0
- Cross Domain Limit log............... : 0
- Digital Readout...................... : 46
- Resolution in Degrees Celsius........ : 1
- Reading Valid........................ : 1 (valid)

MSR_THERM2_CTL...................(0x19D) : 0x0

IA32_MISC_ENABLES................(0x1A0) : 0x850089
------------------------------------------
- Fast-Strings......................... : 1 (enabled)
- FOPCODE compatibility mode Enable.... : 0
- Automatic Thermal Control Circuit.... : 1 (enabled)
- Split-lock Disable................... : 0
- Performance Monitoring............... : 1 (available)
- Bus Lock On Cache Line Splits Disable : 0
- Hardware prefetch Disable............ : 0
- Processor Event Based Sampling....... : 0 (PEBS supported)
- GV1/2 legacy Enable.................. : 0
- Enhanced Intel SpeedStep Technology.. : 1 (enabled)
- MONITOR FSM.......................... : 1 (MONITOR/MWAIT supported)
- Adjacent sector prefetch Disable..... : 0
- CFG Lock............................. : 0 (MSR not locked)
- xTPR Message Disable................. : 1 (disabled)

MSR_TEMPERATURE_TARGET...........(0x1A2) : 0x5640000
------------------------------------------
- Turbo Attenuation Units.............. : 0
- Temperature Target................... : 100
- TCC Activation Offset................ : 5

MSR_MISC_PWR_MGMT................(0x1AA) : 0x401CC1
------------------------------------------
- EIST Hardware Coordination........... : 1 (hardware coordination disabled)
- Energy/Performance Bias support...... : 1
- Energy/Performance Bias.............. : 0 (disabled/MSR not visible to software)
- Thermal Interrupt Coordination Enable : 1 (thermal interrupt routed to all cores)
- SpeedShift Technology Enable......... : 1 (enabled)
- SpeedShift Interrupt Coordination.... : 1 (enabled)
- SpeedShift Energy Efficient Perf..... : 1 (enabled)
- SpeedShift Technology Setup for HWP.. : Yes (setup for HWP)

MSR_TURBO_RATIO_LIMIT............(0x1AD) : 0x22222222
------------------------------------------
- Maximum Ratio Limit for C01.......... : 22 (3400 MHz)
- Maximum Ratio Limit for C02.......... : 22 (3400 MHz)
- Maximum Ratio Limit for C03.......... : 22 (3400 MHz)
- Maximum Ratio Limit for C04.......... : 22 (3400 MHz)

IA32_ENERGY_PERF_BIAS............(0x1B0) : 0x5
------------------------------------------
- Power Policy Preference...............: 5 (balanced performance and energy saving)

MSR_POWER_CTL....................(0x1FC) : 0x24005F
------------------------------------------
- Bi-Directional Processor Hot..........: 1 (enabled)
- C1E Enable............................: 1 (enabled)

MSR_RAPL_POWER_UNIT..............(0x606) : 0xA0E03
------------------------------------------
- Power Units.......................... : 3 (1/8 Watt)
- Energy Status Units.................. : 14 (61 micro-Joules)
- Time Units .......................... : 10 (976.6 micro-Seconds)

MSR_PKG_POWER_LIMIT..............(0x610) : 0x42816000DD8160
------------------------------------------
- Package Power Limit #1............... : 44 Watt
- Enable Power Limit #1................ : 1 (enabled)
- Package Clamping Limitation #1....... : 1 (allow going below OS-requested P/T state during Time Window for Power Limit #1)
- Time Window for Power Limit #1....... : 110 (163840 milli-Seconds)
- Package Power Limit #2............... : 44 Watt
- Enable Power Limit #2................ : 1 (enabled)
- Package Clamping Limitation #2....... : 0 (disabled)
- Time Window for Power Limit #2....... : 33 (10 milli-Seconds)
- Lock................................. : 0 (MSR not locked)

MSR_PKG_ENERGY_STATUS............(0x611) : 0x1E14F152
------------------------------------------
- Total Energy Consumed................ : 30803 Joules (Watt = Joules / seconds)

MSR_PP0_POWER_LIMIT..............(0x638) : 0x0

MSR_PP0_ENERGY_STATUS............(0x639) : 0x1864DCD7
------------------------------------------
- Total Energy Consumed................ : 24979 Joules (Watt = Joules / seconds)

MSR_PP0_POWER_LIMIT..............(0x638) : 0x0

MSR_PP0_ENERGY_STATUS............(0x639) : 0x1864DD3D
------------------------------------------
- Total Energy Consumed................ : 24979 Joules (Watt = Joules / seconds)

MSR_PP1_POWER_LIMIT..............(0x640) : 0x0

MSR_PP1_ENERGY_STATUS............(0x641) : 0xA38074
------------------------------------------
- Total Energy Consumed................ : 654 Joules (Watt = Joules / seconds)

MSR_PP1_POLICY...................(0x642) : 0x18
------------------------------------------
- Priority Level....................... : 24

MSR_CONFIG_TDP_NOMINAL...........(0x648) : 0x10
MSR_CONFIG_TDP_LEVEL1............(0x649) : 0x80050
MSR_CONFIG_TDP_LEVEL2............(0x64a) : 0x1200C8
MSR_CONFIG_TDP_CONTROL...........(0x64b) : 0x0
MSR_TURBO_ACTIVATION_RATIO.......(0x64c) : 0x0
MSR_PKGC3_IRTL...................(0x60a) : 0x884E
MSR_PKGC6_IRTL...................(0x60b) : 0x8876
MSR_PKGC7_IRTL...................(0x60c) : 0x8894
MSR_PKG_C2_RESIDENCY.............(0x60d) : 0x24ACEDBFA5C
MSR_PKG_C3_RESIDENCY.............(0x3f8) : 0x5BE2795130
MSR_PKG_C2_RESIDENCY.............(0x60d) : 0x24ACEDBFA5C
MSR_PKG_C3_RESIDENCY.............(0x3f8) : 0x5BE2795130
MSR_PKG_C6_RESIDENCY.............(0x3f9) : 0x32D4EC7C68
MSR_PKG_C7_RESIDENCY.............(0x3fa) : 0xB2D4B0532
MSR_PKG_C8_RESIDENCY.............(0x630) : 0x3080B020822
MSR_PKG_C9_RESIDENCY.............(0x631) : 0x0
MSR_PKG_C10_RESIDENCY............(0x632) : 0x0
MSR_PKG_C8_LATENCY...............(0x633) : 0x3080B020822
MSR_PKG_C9_LATENCY...............(0x634) : 0x0
MSR_PKG_C10_LATENCY..............(0x635) : 0x0

MSR_PLATFORM_ENERGY_COUNTER......(0x64D) : 0x0 (not supported by hardware/BIOS)

MSR_PPERF........................(0x64E) : 0x2C69268822C
------------------------------------------
- Hardware workload scalability........ : 3051883102764

MSR_CORE_PERF_LIMIT_REASONS......(0x64F) : 0x2D010000
------------------------------------------
- PROCHOT Status....................... : 0
- Thermal Status....................... : 0
- Residency State Regulation Status.... : 0
- Running Average Thermal Limit Status. : 0
- VR Therm Alert Status................ : 0
- VR Therm Design Current Status....... : 0
- Other Status......................... : 0
- Package/Platform-Level #1 Power Limit : 0
- Package/Platform-Level #2 Power Limit : 0
- Max Turbo Limit Status............... : 0
- Turbo Transition Attenuation Status.. : 0
- PROCHOT Log.......................... : 1 (status bit has asserted)
- Thermal Log.......................... : 0
- Residency State Regulation Log....... : 0
- Running Average Thermal Limit Log.... : 0
- VR Therm Alert Log................... : 0
- VR Thermal Design Current Log........ : 0
- Other Status Log..................... : 1 (status bit has asserted)
- Package/Platform-Level #1 Power Limit : 1 (status bit has asserted)
- Package/Platform-Level #2 Power Limit : 1 (status bit has asserted)
- Max Turbo Limit Log.................. : 0
- Turbo Transition Attenuation Log..... : 1 (status bit has asserted)
HDC Supported

IA32_PKG_HDC_CTL.................(0xDB0) : 0x0

IA32_PM_CTL1.....................(0xDB1) : 0x1
------------------------------------------
HDC Allow Block..................(0xDB1) : 1 (HDC blocked)

IA32_THREAD_STALL................(0xDB2) : 0x0

MSR_PKG_HDC_CONFIG...............(0x652) : 0x2
------------------------------------------
Pkg Cx Monitor ..................(0x652) : 2 (count package C3 and deeper)
MSR_CORE_HDC_RESIDENCY...........(0x653) : 0x0

MSR_PKG_HDC_SHALLOW_RESIDENCY....(0x655) : 0x0

MSR_PKG_HDC_DEEP_RESIDENCY.......(0x656) : 0x0

IA32_TSC_DEADLINE................(0x6E0) : 0xE6D640E37B5
MSR_PPERF........................(0x63E) : 0x1 (26)

IA32_PM_ENABLE...................(0x770) : 0x1 (HWP Supported and Enabled)

IA32_HWP_CAPABILITIES............(0x771) : 0x1081022
-----------------------------------------
- Highest Performance.................. : 34
- Guaranteed Performance............... : 16
- Most Efficient Performance........... : 8
- Lowest Performance................... : 1

IA32_HWP_INTERRUPT...............(0x773) : 0x1
------------------------------------------
- Guaranteed Performance Change........ : 1 (Interrupt generated on change of)
- Excursion Minimum.................... : 0 (Interrupt generation disabled)

IA32_HWP_REQUEST................(0x774) : 0x801F2204
-----------------------------------------
- Minimum Performance................. : 4
- Maximum Performance................. : 34
- Desired Performance................. : 31
- Energy Efficient Performance........ : 128
- Activity Window..................... : 0, 0
- Package Control..................... : 0

IA32_HWP_STATUS..................(0x777) : 0x0
-----------------------------------------
- Guaranteed Performance Change....... : 0 (has not occured)
- Excursion To Minimum................ : 0 (has not occured)

CPU Ratio Info:
------------------------------------------
Base Clock Frequency (BLCK)............. : 100 MHz
Maximum Efficiency Ratio/Frequency.......: 4 ( 400 MHz)
Maximum non-Turbo Ratio/Frequency........: 18 (1800 MHz)
Maximum Turbo Ratio/Frequency............: 34 (3400 MHz)

IGPU Info:
------------------------------------------
IGPU Current Frequency...................: 0 MHz
IGPU Minimum Frequency...................: 300 MHz
IGPU Maximum Non-Turbo Frequency.........: 300 MHz
IGPU Maximum Turbo Frequency.............: 1100 MHz
IGPU Maximum limit.......................: No Limit

P-State ratio * 100 = Frequency in MHz
------------------------------------------
CPU P-States [ (8) 13 29 ] iGPU P-States [ ]
CPU C3-Cores [ 0 3 5 ]
CPU C7-Cores [ 1 2 3 4 7 ]
CPU P-States [ 8 13 (20) 29 ] iGPU P-States [ ]
CPU C3-Cores [ 0 1 3 5 6 7 ]
CPU C7-Cores [ 0 1 2 3 4 5 7 ]
CPU P-States [ (7) 8 12 13 20 29 ] iGPU P-States [ ]
CPU P-States [ (7) 8 12 13 20 29 ] iGPU P-States [ ]
CPU C3-Cores [ 0 1 2 3 4 5 6 7 ]
CPU C7-Cores [ 0 1 2 3 4 5 6 7 ]
CPU P-States [ 7 8 12 13 20 (24) 29 ] iGPU P-States [ ]
CPU P-States [ 7 8 12 13 15 20 24 29 (30) ] iGPU P-States [ ]
CPU P-States [ 7 8 12 13 15 20 (24) 29 30 ] iGPU P-States [ (30) ]
CPU P-States [ 7 8 (9) 12 13 15 20 24 29 30 ] iGPU P-States [ 30 ]
CPU P-States [ 7 8 9 12 13 15 20 (23) 24 29 30 ] iGPU P-States [ 30 ]
CPU P-States [ 7 8 9 12 13 15 20 23 24 (27) 29 30 ] iGPU P-States [ 30 ]
CPU P-States [ 7 8 9 12 13 15 20 23 24 (25) 27 29 30 ] iGPU P-States [ 30 ]
CPU P-States [ 7 8 9 12 13 15 20 23 24 25 27 29 30 (32) ] iGPU P-States [ 30 ]
CPU P-States [ (4) 7 8 9 12 13 15 20 23 24 25 27 29 30 32 ] iGPU P-States [ 30 ]
CPU P-States [ 4 7 8 9 12 13 15 20 23 24 25 (26) 27 29 30 32 ] iGPU P-States [ 30 ]
CPU P-States [ 4 7 8 9 12 13 15 20 (21) 23 24 25 26 27 29 30 32 ] iGPU P-States [ 30 ]

----------------------------------------------------
Done populating the CPU states!
----------------------------------------------------

Looks good, doesn't it? I do see 700 MHz every once in a while, and 600 MHz once. AWESOME!! I did end up using syscl's X86PlatformPluginInjector.kext you recommended (got it from [GUIDE] HWP(Intel Speed Shift) enable with full power management - Page 2 - Tutorials (The Genius Bar) - Insanel*Mac Forum) because shuhung's mod contained a solid X86PlatformPlugin binary in Contents/MacOS which would not throttle down below 800MHz (syscl's kext contains a symlink to the X86PlatformPlugin kext binary in /S/L/E so always the one matching the OS is used).

Kext for MacBookPro14,1 attached.

However I do see a downside here: the injector only loads a plist inside of it; so when changing model ID in Clover SMBIOS section, one has to remember to either deactivate the kext, or mod the corresponding plist also and place it inside the injector before rebooting after such Mac model change, to prevent disabling HWP speed shift.

Since this is only plist editing, couldn't it be injected via Clover/Kernel and Kext Pacthes/KextsToPatch/InfoPlistPatch find/ replace since I do have original and mod?
I think you can use Clover's kext patching to accomplish the same thing. Won't hurt to test :)
I've seen you may want to modify some more values besides LFM/LPM. This will require a longer patch/multiple patches. Your choice. I think that HWPValue in Clover is just a mix of some values in the plist joined together. Don't remember exactly...
You can refer to syscl's post + comments in it.
 
  • Using CPUFriend to fix CPU frequence (1300 down to 800) - Using Macbook14,1 config
how do I use this ? I have copied CPUFriend.kext and CPUFriendDataProvider.kext into C/K/O folder.
Tools I have PlistEdit Pro & Clover Config.
 
Back
Top