g-helper
g-helper copied to clipboard
Endpoint discovery for different laptop models
Hello, recently I have discovered endpoints that let you set Total PPT and CPU PPT on 2022 models. Armory seem to use them as well.
I did that by running own app-script that literally sent DSTS (asus'es "get device status") command to all possible DeviceID's in asus ACPI and checking which one's would respond at least somehow :)
Then by just trying to set a new value (with DEVS "set device status") command to a few discovered DeviceIDs correct endpoints were found.
0x001200A0 - sPPT / PL2 almost everywhere ( Total Platform limit on all AMD platforms )
0x001200A1 - EDC_LIMIT_VDD
0x001200A2 - TDC_LIMIT_VDD
0x001200A3 - SPL / PL1
0x001200B0 - CPU limit on all AMD platforms
0x001200B1 - sPPT / PL2
0x001200C0 - NVIDIA GPU dynamic boost 5W ... 25W
0x001200C1 - fPPT
0x001200C2 - NVIDIA GPU temp limit 75C ... 87C
It could be that on other models (non G14) this endpoints could adjust different settings.
Discover endpoints Method 1
Run this ps1 scan-atkacpi.zip as admin in powershell and post output here
Discover endpoints Method 2
Crate a dump and upload it here (as suggested by @vddCore )
-
Download ACPICA tools. Extract into some folder.
-
Open that folder in powershell and run
./acpidump.exe -b
to dump them all to .dat files. They'll be placed in the location you ran the tool from. -
Then run
./iasl.exe dsdt.dat
and the decompiled ACPI table will be created asdsdt.dsl
. Zip it and upload here.
How to test what discovered endpoints do
Run following command in powershell as admin:
Invoke-CimMethod (Get-CimInstance -Namespace root/wmi -ClassName AsusAtkWmi_WMNB) -MethodName DEVS -Arguments @{Device_ID=0x1200C1; Control_status=25}
Where DeviceID is ID from the list (for example 0x1200B0, 0x1200B1, 0x1200C0, 0x1200C1, 0x1200C2)
And Control_status is the "value" , try something like 25 or 50 or 100 ... :) (on your own risk, but most probably bios will just hardcap some potentially high values)
Then you can just run some CPU / GPU intensive task and check in HWinfo if it has any effect on PPTs / clocks / etc
It's a console app that will run for like few mins and start showing output of discovered device IDs
Sample output (from 2022 model)
00010001: 00030000 (196608)
00010011: 00020001 (131073)
00010013: 00020001 (131073)
00050019: 00000001 (1)
00050020: 00000001 (1)
00060023: FFFF0004 (-65532)
00060024: A36C8086 (-1553170298)
00060026: 00000000 (0)
00060094: 00000006 (6)
00090016: 00000001 (1)
00090020: 00000000 (0)
00090030: 00000051 (81)
00100051: 00000001 (1)
00110013: 00000014 (20)
00110014: 00000016 (22)
00110022: 000000D2 (210)
00110023: 000000DC (220)
00110024: 443F3D3A (1144995130)
00110025: 443F3D3A (1144995130)
00120057: 00080000 (524288)
00120061: 00020001 (131073)
0012006C: 00000001 (1)
00120075: 00000003 (3)
00120079: 000005A0 (1440)
00120093: 0000005A (90)
00120094: 00000044 (68)
00120097: 00000035 (53)
001200A0: 00000000 (0)
001200A1: 00000000 (0)
001200A2: 00000000 (0)
001200A3: 00000000 (0)
001200B0: 00000000 (0)
001200B1: 00000000 (0)
001200C1: 00000000 (0)
001200C2: 00000000 (0)
00130021: 00000002 (2)
00130022: 00000000 (0)
00130031: 00000000 (0)
60023 : ffffffffffff0004 (-65532)
60024 : a36c8086 (2741796998)
60026 : 0 (0)
60061 : ffffffffffff0000 (-65536)
60094 : 3 (3)
80041 : ffffffffffff0000 (-65536)
80042 : ffffffffffff0000 (-65536)
80043 : ffffffffffff0000 (-65536)
80044 : ffffffffffff0000 (-65536)
90020 : 1 (1)
90030 : c0 (192)
100051 : 1 (1)
110013 : 0 (0)
110014 : 0 (0)
110015 : ffffffffffff0000 (-65536)
110016 : ffffffffffff0000 (-65536)
110022 : a7 (167)
110023 : b2 (178) Invoke-CimMethod : Generic failure At C:\Users######\Desktop\scan-atkacpi.ps1:5 char:20 + ... $result = (Invoke-CimMethod (Get-CimInstance -Namespace root/wmi -Cl ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (AsuAt C:\Users######\Desktop\scan-atkacpi.ps1:5 char:20 + ... $result = (Invoke-CimMethod (Get-CimInstance -Namespace root/wmi -Cl ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (AsusAtkWmi_WMNB...PNP0C14\ATK_0"):CimInstance) [Invoke-CimM Invoke-CimMethod : Generic failure Checking ID: 15009a Checking ID: 160009 Processing + FullyQualifiedErrorId : HRESULT 0x80041001,Microsoft.Management.Infrastructure.CimCmdlets.InvokeCimMethodCommand
110024 : ffff0000 (-65536)
110025 : ffff0000 (-65536)
Processing
12006c : 0 (0)
120075 : 3 (3)
120079 : 34b (843)
12007a : 0 (0)
120093 : 3c (60)
120094 : 29 (41)
120095 : 0 (0)
120096 : 0 (0)
120097 : 20 (32)
1200a0 : 0 (0)
1200a1 : 0 (0)
1200a2 : 0 (0)
1200a3 : 0 (0)
130021 : 2 (2)
130022 : 0 (0)
(This is from a 2021 model)
Here is the Asus G14 2020. In picture [1], you have the laptop model and its specifications, along with the DSTS script. And at [2] you have script result as text.
[1]
[2]
60023 : ffffffffffff0004 (-65532)
60024 : a36c8086 (2741796998) 60026 : 0 (0) 60061 : ffffffffffff0000 (-65536) 60094 : 3 (3) 80041 : ffffffffffff0000 (-65536)
80042 : ffffffffffff0000 (-65536)
80043 : ffffffffffff0000 (-65536)
80044 : ffffffffffff0000 (-65536)
90020 : 1 (1)
90030 : c0 (192)
100051 : 1 (1)
110013 : 1d (29)
110014 : 1f (31)
110015 : ffffffffffff0000 (-65536)
110016 : ffffffffffff0000 (-65536)
110022 : a7 (167)
110023 : b2 (178)
Invoke-CimMethod : Generic failure
At C:\Users..\Desktop\scan-atkacpi.ps1:5 char:20
... $result = (Invoke-CimMethod (Get-CimInstance -Namespace root/wmi -Cl ...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CategoryInfo : NotSpecified: (AsusAtkWmi_WMNB...PNP0C14\ATK_0"):CimInstance) [Invoke-CimMethod], CimException
+ FullyQualifiedErrorId : HRESULT 0x80041001,Microsoft.Management.Infrastructure.CimCmdlets.InvokeCimMethodCommand
110024 : ffff0000 (-65536) Invoke-CimMethod : Generic failure At C:\Users..\Desktop\scan-atkacpi.ps1:5 char:20 ... $result = (Invoke-CimMethod (Get-CimInstance -Namespace root/wmi -Cl ... ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CategoryInfo : NotSpecified: (AsusAtkWmi_WMNB...PNP0C14\ATK_0"):CimInstance) [Invoke-CimMethod], CimException FullyQualifiedErrorId : HRESULT 0x80041001,Microsoft.Management.Infrastructure.CimCmdlets.InvokeCimMethodCommand
110025 : ffff0000 (-65536) 110026 : ffffffffffff0000 (-65536) 110027 : ffffffffffff0000 (-65536) 120057 : 80000 (524288) 120061 : 1 (1) 12006c : 1 (1) 120075 : 3 (3) 120079 : 4f4 (1268) 12007a : 0 (0) 120093 : 3c (60) 120094 : 27 (39) 120097 : 20 (32) 1200a0 : 0 (0) 1200a1 : 0 (0) 1200a2 : 0 (0) 1200a3 : 0 (0) 130021 : 2 (2) 130022 : 0 (0)
So they did change at the 2022 model, but 2021 and 2020 are working the same way. Had the same result, with 2021. Tho Global PPT works on all devices
-
However @seerge, based on previous messages, it seems that these endpoints do not work on the 2021/2020 models of the Asus G14. Without knowing more about the specific models and their hardware configurations, it's difficult to provide more information on PPTs for those models.
-
In general, as you know, PPT (Package Power Tracking) is a feature in CPUs that limits the amount of power that a processor can draw. This is important for maintaining stable performance and preventing overheating. Total PPT refers to the maximum amount of power that can be consumed by the entire CPU package, while CPU PPT refers to the maximum amount of power that can be consumed by the CPU cores.
-
Based on my laptop configuration, the Asus G14 2020 model with the Ryzen 7 4800HS, GA401IHR motherboard, and GTX 1650 Mobile GPU, I'm assuming that:
-
The Total PPT and CPU PPT values for this laptop may vary depending on the specific BIOS and firmware versions installed. However, as a general rule, the Ryzen 7 4800HS has a default Total PPT value of 45W, while the CPU PPT value can range from 10W to 60W depending on the workload.
-
To do so @seerge, you can use a tool such as the ASUSTeK Computer Inc. Device Driver or the AsusFanControlService to send the DSTS command and retrieve the necessary information.
-
For example, you can use the following command in the Command Prompt or PowerShell to retrieve the device status for the CPU:
ASUSIoCtl.exe DEVS GET_DEVSTS CPU
[1] -
To retrieve information about PPT values for any laptop, including the Asus G14 2020 model, you can use third-party tools such as Ryzen Controller or HWiNFO.
[1] This should return a list of parameters, including the current Total PPT and CPU PPT values for the CPU.
off-topic: If I misunderstood the topic or what you wanted to know, I apologize, but I am in a hurry :Dz
Ok, thanks :) I also got same results from "Routard" user on Reddit.
Quick conclusion, 1200A0/A1 exist on older models too, and seem to work. This is TOTAL PPT (i.e. dGPU and iGPU and CPU together)
How 2021 model sets CPU limits - remains unknown for me.
If someone wills to test, you can try following command (in admin powershell):
Invoke-CimMethod (Get-CimInstance -Namespace root/wmi -ClassName AsusAtkWmi_WMNB) -MethodName DEVS -Arguments @{Device_ID=0x1200a0; Control_status=25}
Replace 0x1200a0 with other IDs.
DeviceID = should be a ID of a endpoint (with 0x in front, cause it's in hex) Control_status = is a value that you try to set :) (i.e. 25W max power)
A quick and simple way to see if something worked - is to run cinebench and look at HWinfo CPU metrics :)
G14 2021 GA401QC
60023 : ffffffffffff0004 (-65532) 60024 : a36c8086 (2741796998) 60026 : 0 (0)
60061 : ffffffffffff0000 (-65536)
60094 : 3 (3)
80041 : ffffffffffff0000 (-65536)
80042 : ffffffffffff0000 (-65536)
80043 : ffffffffffff0000 (-65536)
80044 : ffffffffffff0000 (-65536)
90020 : 1 (1)
90030 : c0 (192)
100051 : 1 (1)
110013 : 0 (0)
110014 : 0 (0)
110015 : ffffffffffff0000 (-65536)
110016 : ffffffffffff0000 (-65536)
110022 : a7 (167)
110023 : b2 (178)
Invoke-CimMethod : Generic failure
At C:\Users\kaan\Desktop\scan-atkacpi.ps1:5 char:20
+ ... $result = (Invoke-CimMethod (Get-CimInstance -Namespace root/wmi -Cl ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (AsusAtkWmi_WMNB...PNP0C14\ATK_0"):CimInstance) [Invoke-CimMethod], Cim
Exception
+ FullyQualifiedErrorId : HRESULT 0x80041001,Microsoft.Management.Infrastructure.CimCmdlets.InvokeCimMethodComm
and
110024 : ffff0000 (-65536)
Invoke-CimMethod : Generic failure
At C:\Users\kaan\Desktop\scan-atkacpi.ps1:5 char:20
+ ... $result = (Invoke-CimMethod (Get-CimInstance -Namespace root/wmi -Cl ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (AsusAtkWmi_WMNB...PNP0C14\ATK_0"):CimInstance) [Invoke-CimMethod], Cim
Exception
+ FullyQualifiedErrorId : HRESULT 0x80041001,Microsoft.Management.Infrastructure.CimCmdlets.InvokeCimMethodComm
and
110025 : ffff0000 (-65536)
110026 : ffffffffffff0000 (-65536)
110027 : ffffffffffff0000 (-65536)
120057 : 80000 (524288)
120061 : 1 (1)
12006c : 1 (1)
120075 : 3 (3)
120079 : 401 (1025)
12007a : 0 (0)
120093 : 3c (60)
120094 : 35 (53)
120095 : 0 (0)
120096 : 0 (0)
120097 : 28 (40)
1200a0 : 0 (0)
1200a1 : 0 (0)
1200a2 : 0 (0)
1200a3 : 0 (0)
130021 : 2 (2)
130022 : 0 (0)
GA401QC 0x1200a3 changes APU STAPM in hwinfo 0x1200a2 changes CPU TDC 0x1200a1 changes CPU EDC 0x1200a0 changes CPU PPT
I tried all the numbers above and these are all i can find.
@hkaancaliskan Are you sure 1200a0 change CPU PPT ? For me it changes the whole PPT, which results having a turd instead of a computer at 35W
GA401QC 0x1200a3 changes APU STAPM in hwinfo 0x1200a2 changes CPU TDC 0x1200a1 changes CPU EDC 0x1200a0 changes CPU PPT
I tried all the numbers above and these are all i can find.
That's interesting. Are you sure that A0 sets only CPU PPT? not total (like with GPU as well ?) can you try in some heavy game (that uses both cpu / gpu?). Cause on 2022 model it's literally opposite ?
Just in case guys, A0 is already implemented in app, but it's just called "Total PPT"
@seerge we agree that on your app, total PPT is 1200a0 ?
Well, got my answer trying it rn
That’s weird, I am having 100 fps on Minecraft, without the graphics card I should be having like 30 (this is a heavy map
With shaders I had like 15 fps. did reset to 110 Total PPT and having 40 fps again (well the shaders and the map are strong lol)
@seerge we agree that on your app, total PPT is 1200a0 ?
Yes, Total PPT slider - adjusts 1200a0 CPU PPT adjusts 1200b0 (available only on 2022 models).
In v0.13 I have made that CPU slider also adjusts 1200a2 (next to b0). But looks like it had no effect to ones who tested
G15 2021 GA503QR
60023 : ffffffffffff0004 (-65532) 60024 : a36c8086 (2741796998) 60026 : 0 (0) 60061 : ffffffffffff0000 (-65536) 60094 : 6 (6) 80041 : ffffffffffff0000 (-65536) 80042 : ffffffffffff0000 (-65536) 80043 : ffffffffffff0000 (-65536) 80044 : ffffffffffff0000 (-65536) 90020 : 0 (0) 90030 : c0 (192) 100051 : 1 (1) 110013 : 0 (0) 110014 : 0 (0) 110015 : ffffffffffff0000 (-65536) 110016 : ffffffffffff0000 (-65536) 110022 : a7 (167) 110023 : b6 (182) Invoke-CimMethod: E:\scan-atkacpi.ps1:5 Line | 5 | … $result = (Invoke-CimMethod (Get-CimInstance -Namespace root/wmi -Cl … | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | Generic failure 110024 : ffff0000 (-65536) Invoke-CimMethod: E:\scan-atkacpi.ps1:5 Line | 5 | … $result = (Invoke-CimMethod (Get-CimInstance -Namespace root/wmi -Cl … | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | Generic failure 110025 : ffff0000 (-65536) 110026 : ffffffffffff0000 (-65536) 110027 : ffffffffffff0000 (-65536) 120057 : 80000 (524288) 120061 : 1 (1) 12006c : 1 (1) 120075 : 3 (3) 120079 : 471 (1137) 12007a : 0 (0) 120093 : 50 (80) 120094 : 39 (57) 120095 : 0 (0) 120096 : 0 (0) 120097 : 2e (46) 1200a0 : 0 (0) 1200a1 : 0 (0) 1200a2 : 0 (0) 1200a3 : 0 (0) 130021 : 2 (2) 130022 : 0 (0)
@seerge could you put your result of the 2022 version, this way we could test every settings that differs from yours
@seerge could you put your result of the 2022 version, this way we could test every settings that differs from yours
It's literally second message in this topic :)
No effect on Total PPT with 2020 model
Good to know :(
@seerge oups I thought it was only a sample, mb thanks
Please find input from GA401QM
PS C:\Users\dryba\Downloads\scan-atkacpi>> .\scan-atkacpi.ps1 60023 : ffffffffffff0004 (-65532) 60024 : a36c8086 (2741796998) 60026 : 0 (0) 60061 : ffffffffffff0000 (-65536) 60094 : 3 (3) 80041 : ffffffffffff0000 (-65536) 80042 : ffffffffffff0000 (-65536) 80043 : ffffffffffff0000 (-65536) 80044 : ffffffffffff0000 (-65536) 90020 : 0 (0) 90030 : c0 (192) 100051 : 1 (1) 110013 : 1a (26) 110014 : 1c (28) 110015 : ffffffffffff0000 (-65536) 110016 : ffffffffffff0000 (-65536) 110022 : a7 (167) 110023 : b2 (178) Invoke-CimMethod : Generic failure At C:\Users\dryba\Downloads\scan-atkacpi\scan-atkacpi.ps1:5 char:20
- ... $result = (Invoke-CimMethod (Get-CimInstance -Namespace root/wmi -Cl ...
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : NotSpecified: (AsusAtkWmi_WMNB...PNP0C14\ATK_0"):CimInstance) [Invoke-CimMethod], CimExc eption
- FullyQualifiedErrorId : HRESULT 0x80041001,Microsoft.Management.Infrastructure.CimCmdlets.InvokeCimMethodCommand
110024 : ffff0000 (-65536) Invoke-CimMethod : Generic failure At C:\Users\dryba\Downloads\scan-atkacpi\scan-atkacpi.ps1:5 char:20
- ... $result = (Invoke-CimMethod (Get-CimInstance -Namespace root/wmi -Cl ...
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : NotSpecified: (AsusAtkWmi_WMNB...PNP0C14\ATK_0"):CimInstance) [Invoke-CimMethod], CimExc eption
- FullyQualifiedErrorId : HRESULT 0x80041001,Microsoft.Management.Infrastructure.CimCmdlets.InvokeCimMethodCommand
110025 : ffff0000 (-65536) 110026 : ffffffffffff0000 (-65536) 110027 : ffffffffffff0000 (-65536) 120057 : 80000 (524288) 120061 : 1 (1) 12006c : 1 (1) 120075 : 3 (3) 120079 : 5a3 (1443) 12007a : 0 (0) 120093 : 3c (60) 120094 : 3a (58) 120095 : 0 (0) 120096 : 0 (0) 120097 : 25 (37) 1200a0 : 0 (0) 1200a1 : 0 (0) 1200a2 : 0 (0) 1200a3 : 0 (0) 130021 : 2 (2) 130022 : 0 (0)
we have the 110015 and 16 that you don’t have And we have all the 800xx that you don’t have too. Do you think it could be safe to try ?
You can try ofc :) in a worst-worst scenario, if you accidentally set some wrong setting - you can do a cmos reset, that will reset all settings to defaults. Turn off laptop normally, press and hold power for like 30 seconds, turn on again normally (it will take like a minute to start booting after)
I used that thing to fix my disappearing wifi card once.
What does result 0 mean ? 1`is that it is good, 42xxxxxxx it doesn’t exists, but 0 ? Alright !
for 35, 110015 and 16 gets a 0 as result
G14 2021 5800HS 3060 GA401QM
60023 : ffffffffffff0004 (-65532) 60024 : a36c8086 (2741796998) 60026 : 0 (0) 60061 : ffffffffffff0000 (-65536) 60094 : 3 (3) 80041 : ffffffffffff0000 (-65536) 80042 : ffffffffffff0000 (-65536) 80043 : ffffffffffff0000 (-65536) 80044 : ffffffffffff0000 (-65536) 90020 : 0 (0) 90030 : c0 (192) 100051 : 1 (1) 110013 : 0 (0) 110014 : 0 (0) 110015 : ffffffffffff0000 (-65536) 110016 : ffffffffffff0000 (-65536) 110022 : a7 (167) 110023 : b2 (178) Invoke-CimMethod : Generic failure At C:\Users\dj\Downloads\scan-atkacpi\scan-atkacpi.ps1:5 char:20
- ... $result = (Invoke-CimMethod (Get-CimInstance -Namespace root/wmi -Cl ...
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : NotSpecified: (AsusAtkWmi_WMNB...PNP0C14\ATK_0"):CimInstance) [Invoke-CimMethod], CimExc eption
- FullyQualifiedErrorId : HRESULT 0x80041001,Microsoft.Management.Infrastructure.CimCmdlets.InvokeCimMethodCommand
110024 : ffff0000 (-65536) Invoke-CimMethod : Generic failure At C:\Users\dj\Downloads\scan-atkacpi\scan-atkacpi.ps1:5 char:20
- ... $result = (Invoke-CimMethod (Get-CimInstance -Namespace root/wmi -Cl ...
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : NotSpecified: (AsusAtkWmi_WMNB...PNP0C14\ATK_0"):CimInstance) [Invoke-CimMethod], CimExc eption
- FullyQualifiedErrorId : HRESULT 0x80041001,Microsoft.Management.Infrastructure.CimCmdlets.InvokeCimMethodCommand
110025 : ffff0000 (-65536) 110026 : ffffffffffff0000 (-65536) 110027 : ffffffffffff0000 (-65536) 120057 : 80000 (524288) 120061 : 0 (0) 12006c : 0 (0) 120075 : 3 (3) 120079 : 35e (862) 12007a : 0 (0) 120093 : 3c (60) 120094 : 1d (29) 120095 : 0 (0) 120096 : 0 (0) 120097 : 19 (25) 1200a0 : 0 (0) 1200a1 : 0 (0) 1200a2 : 0 (0) 1200a3 : 0 (0) 130021 : 2 (2) 130022 : 0 (0)
Thanks, input from 2021 is not needed anymore (you all post same thing anyway) :)
I should test it more but for now, I am putting 105W overall TDP and 25 on CPU (well the CPU one is only for the conscious lol) and so far it seems that the computer handles it very well. I will test it with real benchmark and all, why 105, because I want to let my CPU have 25W and my dGPU have 80W and it seems to do it this way, I don't know if it's the right way but at least we have that to handle temps on our laptops.
Do you think that there is another way to get what is changing CPU TDP or no @seerge ? (Well, you are hard working on the AnimeMatrix for now so it is just a pass by question you know, and well done the work on AnimeMtarix, even if I don't have it, it is great to see that it works with everyone)