The application consists of two executables - the main GUI ZenStates.exe
and a service ZenStatesSrv.exe
.
An additional uninstall.bat
is provided for an easy uninstall of the previous service version.
uninstall.bat
if not running for a first timeZenStates.exe
0x03B10528
to 0x03B10530
0x03B10564
to 0x03B1057C
0x03B10998
to 0x03B109C4
There's no public document describing the available commands, however I was able reverse-engineer some of them with the help of the publicly released "worktool" app, ReadWriteEverything, CrystalCPUID and the info provided by FlyGoat.
The research is based on SMU version 64.40.00.
ID | Name | Description |
---|---|---|
0x1 | TestMessage | A test command to check if Mailbox responds. Returns 0x1 if successful. |
0x2 | GetSmuVersion | Gets the SMU Firmware version. |
0x3 | EnableSmuFeatures | |
0x4 | DisableSmuFeatures | The command is rejected (0xFD ). Seems to be currently blocked by AMD |
0x23 | SetTjMax | Set TjMax temperature, probably in degrees C° |
0x24 | EnableOverclocking | Forces manual overclock mode. All limits, except overtemperature protection, are lifted. OC means FID != default. |
0x25 | DisableOverclocking | Reverts back to non-OC mode. |
0x26 | SetOverclockFreqAllCores | Sets all core OC frequency, depends on 0x24 |
0x27 | SetOverclockFreqPerCore | Set overclock frequency per core. Probably requires 2 arguments. Depends on 0x24. |
0x28 | SetOverclockVid | Alters the VID (in HEX). Depends on 0x24 . |
0x29 | etBoostLimitFrequency | Sets single-thread max boost frequency. |
0x2B | SetBoostLimitFrequencyAllCores | Sets maximum boost frequency for multi-thread applications. Still depends on PBO limits. |
0x2C | GetOverclockCap | Gets OC capability, which is unclear to me how it could be used and what does it mean exactly. |
0x2F | SetFITLimitScalar | Sets Scalar from 1 to 10 |
0x30 | MessageCount | Get current messages count in the queue |
RTCSharp (github)
ryzen_smu (gitlab)
ryzen_nb_smu (github)
zenpower (github)
Linux kernel (github)
AMD's public documentation