Skip to content

irusanov/ZenStates-Core

Repository files navigation

ZenStates-Core

This project aims to provide a common functions for full SMU control on AMD Zen platform.
The library is used in ZenTimings and ZenStates projects.

CPU Support

The following AMD Zen-based codenames are supported

  • SummitRidge
  • Whitehaven
  • Naples
  • RavenRidge
  • PinnacleRidge
  • Colfax
  • Picasso
  • FireFlight
  • Matisse
  • CastlePeak
  • Rome
  • Dali
  • Renoir
  • VanGogh
  • Vermeer
  • Chagall
  • Milan
  • Cezanne
  • Rembrandt
  • Lucienne
  • Phoenix
  • Mendocino
  • Genoa
  • StormPeak

How To

First, reference the DLL in your .NET project and import it.

using ZenStates.Core;

Then initialize it. Cpu is the main module.

private readonly Cpu cpu = new Cpu();

Modules

Cpu.info

field type
cpuid uint
family Family
codeName CodeName
cpuName string
packageType PackageType
baseModel uint
extModel uint
model uint
ccds uint
ccxs uint
coresPerCcx uint
cores uint
logicalCores uint
physicalCores uint
threadsPerCore uint
patchLevel uint
coreDisableMap uint
svi2 SVI2

where svi2 exposes the following fields corresponding to the SVI2 power planes

field type
coreAddress uint
socAddress uint

Cpu.systemInfo

The module combines Cpu.info with additional information about the motherboard

Projects used

ryzen_smu (gitlab)
ryzen_nb_smu (github)
zenpower (github)
Linux kernel (github)
AMD's public documentation
Open Hardware Monitor

with the help of patrickschur, leogx9r, PJVol, FlyGoat, sbski, 1usmus