irusanov / SMUDebugTool

A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table.
GNU General Public License v3.0
61 stars 5 forks source link

SMU scan on Athlon 200GE and PRIME A320M-K causes freeze #3

Open OneB1t opened 4 years ago

OneB1t commented 4 years ago

image

Nothing saved inside .json generated file :/

image this part looks like its working

irusanov commented 4 years ago

If only the export feature is not working, then it might be a collision with the OS or some kind of encoding problem. It might be related to OS info. It's not that important for the debugging, so I might remove it. Otherwise it appears to be working on Raven Ridge.

OneB1t commented 4 years ago

I tested also zenstates and i only achieved to lock CPU down to 2ghz with any modification i did (i also tested before that im able to modify temperature limit with this https://github.com/FlyGoat/RyzenAdj

is there any way how to enable OC on A320? (it should be possible as most vendors have it now)

also been able to modify GFX clock to show 1mhz :D and im able to lock it to maximum 1000mhz via this utility https://github.com/FlyGoat/RyzenAdj

I wanted to hack "AMD ryzen master" in order to allow me to overclock not just view data in x64dbg (i think this must be possible somehow :D)

if everything else fails i will try to crossflash a320 to b350 bios but still waiting for 1.8V adapter from china

irusanov commented 4 years ago

ZenStates does not support RavenRidge currently. I'm trying to collect enough data with the report tool, so I can improve/fix ZenStates. It is now sending a wrong command which puts the CPU cores to the loweст possible frequency. It might be better to make a separate tool for APUs, since they have extra parameters to tweak.

OneB1t commented 4 years ago

Ok i can help with that if you want to share some data :) i have aida64 and RW everything so if you point me which registers you want to get it or can do some experiments about them

also finally managed to get that dump but there is nothing interesting (i think that some system service like AMDRSServ or AsusFanCOntrolService been messing with same registers so that was why it cannot run together

{ "AppVersion": "1.2.2.0", "OSVersion": "Microsoft Windows 10 Enterprise", "CpuId": "810F10", "CpuCodeName": "RavenRidge", "CpuName": "AMD Athlon 200GE with Radeon Vega Graphics", "MbVendor": "ASUSTeK COMPUTER INC.", "MbName": "PRIME A320M-K", "BiosVersion": "5222", "SmuVersion": "30.83.00", "Mailboxes": [ { "MsgAddress": "0x03B10A20", "RspAddress": "0x03B10A80", "ArgAddress": "0x03B10A88" } ] }

OneB1t commented 4 years ago

I did some more researchj and found out that for me this utility is working 100% https://github.com/FlyGoat/RyzenAdj

im able to configure all temperature,vrm,soc,gfx limits (checked with ryzen master and furmark) but im unable to go over maximum GPU frequency which is 1000mhz if i use higher value it is basically limited to 1000mhz :-/

i dont care that much about CPU overclock as CPU is not bottlenecking during 4K@60hz HEVC playback but GPU is on its limit so little bump from 1000mhz to 1500mhz is all i need :-/

irusanov commented 4 years ago

I've got a desktop 240GE, which should help me debug the issue. It does not respond to these commands FlyGoat has though. 0x1 and 0x2 commands are working with these addresses: "MsgAddress": "0x03B10A20", "RspAddress": "0x03B10A80", "ArgAddress": "0x03B10A88" but nothing else.

The ones working are 0x3B10528 0x3B10564 0x3B10998

Not sure how to detect which ones are the correct ones without brute-forcing.

OneB1t commented 4 years ago

Bruteforce is maybe good idea :-D or i can try to see what Addresses are executed from AMD Ryzen master when reading

irusanov commented 4 years ago

Keep in mind testing commands manually is not recommended and is plain dangerous - it can kill the CPU. If you hit a command that sets SoC voltage and pass 0 as an argument, this will set VID to 1.55V, which the SoC might not handle.

The formula is Voltage = 1.550V - VID * 0.00625 mV. So with a VID = 0, you have the maximum possible Voltage.

Ryzen Master exits with a message that this APU I have is not supported. But it responds to the old addresses for RavenRidge.

irusanov commented 4 years ago

I'm not able to set a higher frequency unless manually override from bios (fixed frequency). Whetever I set it always stays at the fused 3.5GHz when on auto. Haven't tested the GFX yet. Can't change PState0 either.

OneB1t commented 4 years ago

interesting that you can overclock from bios for me its not possible even that i flashed B350 BIOS to A320 and im unable to set different multiplyer :-( it always boot @3,5ghz

irusanov commented 4 years ago

I'm testing on a X370 chipset (Crosshair VI Hero). I also have a B350 spare board (Asrock B350 K4) and will try soon. The CH6 does not have VGA output, so I will have to test the GPU on the Asrock board. Will see if it can overclock it from bios. It made it even more confusing than before :/ I don't know why Pstate0 read 3400MHz, while it boosts to 3.5GHz. Pstate1 is 2200, Pstate2 is 1600.

OneB1t commented 4 years ago

Its really weird how athlon 2xx is locked.. anyway in the meantime i found that mpv is able to run h.265@4K without dropped frames so now my focus is more on decreasing power usage :-)

irusanov commented 4 years ago

There should be a way to override this, since it's possible from bios, but I'm not sure it could be done runtime. I'm not able to switch to OC mode (manual) while in windows.

irusanov commented 4 years ago

It seems RavenRidge responds to P-States only. To get above turbo frequency, you need to change P-State0 DID to something lower than what is detected as stock. Then you can set a higher frequency. That is the only way I could overclock it (except forcing OC mode from bios, but I have a X370 and B350 boards). It really makes a difference at 4GHz compared to stock 3.5GHz. It's much more slower than the 3900X I have :)

gxcreator commented 3 years ago

@irusanov So, your method was to use ZenStates to set lower DID and higher FID?