Skip to content

irusanov/ZenStates

Repository files navigation

ZenStates

Prerequisites

  • WinRing driver
  • .Net Framework v4.0
  • Supported OS: Windows XP/Vista/7/8/10

How To

The application consists of two executables - the main GUIZenStates.exeand a serviceZenStatesSrv.exe. An additionaluninstall.batis provided for an easy uninstall of the previous service version.

  1. Extract the provided zip and place in a desired location on the disk
  2. Rununinstall.batif not running for a first time
  3. RunZenStates.exe

Technical Information

What have changed with Zen2

  1. SMU mailbox message address changed from0x03B10528to0x03B10530
  2. SMU mailbox response address changed from0x03B10564to0x03B1057C
  3. ARG base address changed from0x03B10998to0x03B109C4

SMU Commands

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,CrystalCPUIDand the info provided byFlyGoat.

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 on0x24
0x27 SetOverclockFreqPerCore Set overclock frequency per core. Probably requires 2 arguments. Depends on 0x24.
0x28 SetOverclockVid Alters the VID (in HEX). Depends on0x24.
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

Projects used

RTCSharp (github)
ryzen_smu (gitlab)
ryzen_nb_smu (github)
zenpower (github)
Linux kernel (github)
AMD's public documentation