Git Product home page Git Product logo

zenstates's Introduction

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 GUI ZenStates.exe and a service ZenStatesSrv.exe. An additional uninstall.bat is 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. Run uninstall.bat if not running for a first time
  3. Run ZenStates.exe

Technical Information

What have changed with Zen2

  1. SMU mailbox message address changed from 0x03B10528 to 0x03B10530
  2. SMU mailbox response address changed from 0x03B10564 to 0x03B1057C
  3. ARG base address changed from 0x03B10998 to 0x03B109C4

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, 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

Projects used

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

zenstates's People

Contributors

eelmor avatar irusanov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

zenstates's Issues

Getting CPUH Error: WinRing DLL_INITIALIZE_ERROR

I've been getting this error all of a sudden now. What could this be? I re-extracted the app (latest release) to make sure the files are correct, but still getting this error when trying to start the ZenStatesSrv service.

mobile ryzen 3500U and 1600AF

Hi! This seems really cool, I'm a noob and don't exactly know what I"m doing, but am enthusiastic and wanted to include dumps for my 1600AF (msi tomahawk b450) and my mobile ryzen 3500u (Motile M142) laptop.

The desktop 1600AF can run zenstates 0.80-beta3. I haven't really messed around the tweaks yet (i'm overclocked in BIOS, which seems to normally disable p-states... would be interesting to see if zenstates works betteR).

However, the desktop 1600AF when running 2.0.0_debug_20200529 gives error "Error getting SMU Version. Default SMU addresses are not responding to commands.".

I'm attaching the json from the SMU debug tool. Let me know if there's other info or testing you want.

will follow up with another post with dump from my laptop.

SMUDebug_26512676.3656378.json.zip

AMD 3700x FCLK UCLK MCLK and CLDO not showing

I have a Gigabyte x570 Elite MB with g.Skill ram

Everything in Zen was working great for the longest time. Didnt need to use ZenStates for a good while until the OC bug bit me and I wanted to tweak more.

I was running 1.25 forever. Saw a new version so i updated it.

Also updated AMD drivers for my chipset. Now I do not know if these are related. But now ZenStates will not show the following on the display : FCLK, MCLK, UCLK, CLDO VDDP voltage, VDDG IOD, and VDDG CCD.

Hoping there is a fix for this. Understand you are busy and appreciate all the hard work you put into this program.
Thank you

In dev branch ZenStates 2.0.0 terminates itself if numericUpDownScalar.Value = Convert.ToDecimal(cpu.GetPBOScalar()); is unable to obtain a value.

@irusanov
This is on my Ryzen 2700U inside a Lenovo A485.

Temporarily setting numericUpDownScalar.Value = Convert.ToDecimal(10); allows to program to run.

I'm able so far to change p0 p1 and p2 frequencies, as well as disable core performance boost.
Thanks a lot for this wonderful program, It allows me to recover the power that otherwise I could not use.

Argument driven configuration (CMD)

It would be very handy to be able to change the current configuration by CMD
For example:

zenstates.exe - vcore 1.3 - freq 3.9

My use cases for that are automation (run batch when app is started for example) and remote control.

V2 Beta as release

Hi,

Thanks for the amazing tool!
Just wanted to check when you plan to release v2.0.0 (i found the debug version on forums) as a release?

PS: Noob question, For me Max Boost Single core doesn't kick in for some reason. and my processor Always hovers its values around my mAx Boost all clock setting regardless of what. Never goes towards idle frequent even when not used.
I am pretty sure I might be doing something wrong. Please advise if can.

My current configuration is:
image
I also use Park control to park 50% of my cores when not used.

Thank you for your time and help!

TurboBoost P0 temperature limited

Hi !i!
Not an Issue, just asking for a new feature. Sorry if writing in wrong place (I'm totally newbie here).

Ryzen 1600 after entering "OverClock" mode is totally ignoring current and power limits. Performance Enhancer and over features below it - is grayed out in ZenStates (look's like not compatible with new AGESA).
My "PCCooler GI-X4" can only cooldown CPU at ALL core overclock 3.8GHz 1.365v.
But CPU can handle 4.15GHz 1.42v in lower threaded programs (CEMU for example) without overheating.

I'm asking to add new feature - let's call it something like "TurboBoost P0 temperature limited".
ZenState service will be measuring temp and automatically change P0 settings based on it.

Next I'll write in BASIC:

10 Read tDIE
20 IF tDIE <65C then set vCore=1.420v, set P0 multipler=x41.5
30 IF tDIE >65C then set vCore=1.365v, set P0 multipler=x38.0
40 IF tDIE >85C then set vCore=1.300v, set P0 multipler=x34.0
50 wait some miliseconds
60 GoTo 10

So we have 3 differen P0 states based on tDIE temperature.

  1. PO for low threaded or low power consumption programs
  2. P0 for multithreaded programs
  3. P0 for LinX and over AVX stress test.

We need to ask user 10 variables: 3temp; 3voltages; 3multiplers; 1waiting.

As I understand P0 is used only under some load and without it CPU will be in P2 or C6 state. This is the only way I can think about - to boost Ryzen 1?00 without overheating problem.

The only question is - how often read temperature? 1000ms - is too long I think - LinX can quickly overheat CPU. Reading temp too often - may be add some stuttering/microfreezing in games (and maybe not :)

Anyway thanks for you attention.
CU

Support for Fenghuang

I have a AMD Fenghuang (K17.5) and it's not supported by ZenStates.
CPU-Z

It supports several SMU mailbox commands from Raven e.g. TDC (values too small causes a reboot),

"Settings have been reset"

On every new boot, ZenStates completely forgets any configuration done to it before and resets everything. How can I make it remember?

"CPU is not supported" on Ryzen 5700U

Hi,
I'm getting "CPU is not supported" with ZenStates 2.0.0 debug 20200529
and "Unsupported CPU" with ZenStates 0.8.0 beta 3.

I'm running a Ryzen 5700U

object reference not set to an instance of an object

image
i get lots of the time this error as in the title.
my hardware:
Mainboard. supermicro h11Dsi, rev.1.01 (bios 1.3, smu 25.125.00 according the app)
cpu: dual epyc 7551 (epyc naples serie)
memory: ecc-reg 16* 8gb

sometimes i have luck when stop the service and re-run the app. and not getting above error. but 95% of time i get this error.

i am using these setting in the app
manualy:
multiplier: from 30 to 31
devider: always /8
voltage: from 0,994 to 1,025

all other options are untouched

running windows 10 1909 with latest updates, using v0.8.0beta and beta3

Few bugs

Hi.
Gear:

  • ASUS X570 TUF GAMING PLUS
  • R7 3800x
  • BIOS 1407 (AGESA 1.0.0.4 AB)
  • chipset driver from 20/04/07

I've set manually:
Single Core - 4,55 GHz
All Cores - 4,3
Idle - left as It were
and boost goes no more than 4,3 GHz, even on Single Core. It reduced Core VID significantly (temps while idle are reduced) but It trashed performance.
If I only could manually set VID per state It would be useful. Now I can get more performance by justreducing Vcore and adjusting PBO limits in BIOS.
Uninstall bat file not working also. I had to disable service from services dialog.

SMU code differences compared to Flygoat's version

From the readme, it was mentioned that 0x3 and 0x4 refers to EnableSMUFeatures and DisableSMUFeatures. However, from Flygoat's version it is a totally different command.

I have tried Flygoat's version in my laptop, which works as intended. Is your SMU message codes are different because of SMU version and/or platform difference? The original Asus Zenstate 0.7.1 message codes are identical to Flygoat's version.

I'd like to try yours on my ryzen laptop but I want to make sure that I didn't change anything harmful first. Maybe I can check my SMU version on my laptop first if I have time

"Last shutdown was not clean" on every boot

I have a "Clevo NH57AF1" with a Ryzen 3700x.
I use Zenstates to underclock and undervolt my CPU.
I have stresstested the clock/voltage combination i use and everything is perfectly stable at idle and under load. No issues at all.

I get that message at every boot even tho i shut down my PC via Windows startmenu every time.

Need only function Q-CODE show CPU temp for ryzen 5000 series

Thanks for this project
i'm using mainboard Asus X370 crosshair vi hero, before i'm using ryzen 1000 it ok, but now using R5 5600 software show notice not support.
i'm not using function OC, can you make it for only Q-CODE show CPU temp.
Thanks for read this.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    šŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. šŸ“ŠšŸ“ˆšŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ā¤ļø Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.