SSブログ

Ryzenのsmu関連 [PC]

さて、色々分かったことがあったのでテスト用のツールに手を入れていたのですが、ちょっと問題が・・・・。
CPUを1600を2600に変更したPCでツールを実行したところsmuが読めないではないですか・・・。
2600はZen+なんで3700Uと同じパターンで読めると思ってたんですが読めず・・・、ZneStatesのソース的にはZne+はZenと同じなのでそれで読めるかと思えば読めず、詰みました(わらい)。

#以下の理由でプログラムの公開は中止します
# 原因と思われる事象を特定できたこと。
# 2000シリーズで実行すると以降のsmuアクセスに支障が出る可能性があること。
確認用のプログラムを作ってみたので、興味ある方は実行した結果をコメントして頂けるとたすかります。

私が今現在実行可能な環境で実行した結果は以下の通りです。
ProcessorName: AMD Ryzen 5 3600 6-Core Processor
Familly: 17 Model: 71
send test message
DBG: res: 1 status: -1 timeout: 999
ReadMSU: res:1 Msg: 0x1 arg0:0x0 arg1:0x0 arg2:0x0
DBG: res: 1 status: -1 timeout: 999
ReadMSU: res:1 Msg: 0x1 arg0:0xFFFFFFFF arg1:0xFFFFFFFF arg2:0xFFFFFFFF
DBG: res: 1 status: 1 timeout: 998
ReadMSU: res:1 Msg: 0x1 arg0:0x2 arg1:0x0 arg2:0x0
send GetSmuVersion message
DBG: res: 1 status: -1 timeout: 999
ReadMSU: res:1 Msg: 0x2 arg0:0x0 arg1:0x0 arg2:0x0
DBG: res: 1 status: -1 timeout: 999
ReadMSU: res:1 Msg: 0x2 arg0:0xFFFFFFFF arg1:0xFFFFFFFF arg2:0xFFFFFFFF
DBG: res: 1 status: 1 timeout: 999
ReadMSU: res:1 Msg: 0x2 arg0:0x2E2800 arg1:0x0 arg2:0x0

ProcessorName: AMD Ryzen 7 3700U with Radeon Vega Mobile Gfx
Familly: 17 Model: 18
send test message
DBG: res: 1 status: 1 timeout: 928
ReadMSU: res:1 Msg: 0x1 arg0:0x0 arg1:0x0 arg2:0x0
DBG: res: 1 status: 1 timeout: 998
ReadMSU: res:1 Msg: 0x1 arg0:0x2 arg1:0x0 arg2:0x0
DBG: res: 1 status: 0 timeout: 0
ReadMSU: res:1 Msg: 0x1 arg0:0x1 arg1:0x0 arg2:0x0
send GetSmuVersion message
DBG: res: 1 status: 1 timeout: 998
ReadMSU: res:1 Msg: 0x2 arg0:0x0 arg1:0x0 arg2:0x0
DBG: res: 1 status: 1 timeout: 901
ReadMSU: res:1 Msg: 0x2 arg0:0x41E3A00 arg1:0x0 arg2:0x0
DBG: res: 1 status: 0 timeout: 0
ReadMSU: res:1 Msg: 0x2 arg0:0x1 arg1:0x0 arg2:0x0

ProcessorName: AMD Ryzen 5 2600 Six-Core Processor
Familly: 17 Model: 8
send test message
DBG: res: 1 status: 0 timeout: 0
ReadMSU: res:1 Msg: 0x1 arg0:0x1 arg1:0x0 arg2:0x0
DBG: res: 1 status: 0 timeout: 0
ReadMSU: res:1 Msg: 0x1 arg0:0x0 arg1:0x0 arg2:0x0
DBG: res: 1 status: 0 timeout: 0
ReadMSU: res:1 Msg: 0x1 arg0:0x0 arg1:0x0 arg2:0x0
send GetSmuVersion message
DBG: res: 1 status: 0 timeout: 0
ReadMSU: res:1 Msg: 0x2 arg0:0x1 arg1:0x0 arg2:0x0
DBG: res: 1 status: 0 timeout: 0
ReadMSU: res:1 Msg: 0x2 arg0:0x0 arg1:0x0 arg2:0x0
DBG: res: 1 status: 0 timeout: 0
ReadMSU: res:1 Msg: 0x2 arg0:0x0 arg1:0x0 arg2:0x0

興味ある人もいるかもしれないので試したパターンのアドレスを書いておきましょう。
パターン1 1600はこのアドレスで読めていました
MSG 0x03B10528
RSP 0x03B10564
ARG0 0x03B10598
ARG1 0x03B1059C
ARG2 0x03B105A0

パターン2 3700Uはこのアドレスで読めます
MSG 0x03B10528
RSP 0x03B10564
ARG0 0x03B10998
ARG1 0x03B1099C
ARG2 0x03B109A0

パターン3 3600はこのアドレスで読めます
MSG 0x03B10530
RSP 0x03B1057C
ARG0 0x03B109C4
ARG1 0x03B109C8
ARG2 0x03B109CC


nice!(0)  コメント(2) 

nice! 0

コメント 2

irusanov

Hi,
Thanks for the research!
I also thought that Zen and Zen+ are the same, but I guess elmor didn't test it.

So it appears all generations have different SMU addresses.
I will have to buy a 2xxx CPU to test.

Google Translate:

Learn to pronounce
こんにちは、
研究をありがとう!
また、ZenとZen +は同じだと思いましたが、elmorはそれをテストしなかったと思います。

したがって、すべての世代が異なるSMUアドレスを持っているようです。
テストするには2xxx CPUを購入する必要があります。
by irusanov (2019-09-30 23:43) 

kim

コメントをありがとうございます。
2600に関しては、テスト方法に問題があったようでZenと同様のアドレスでアクセスできました。
私はBIOSのイメージからのアドレスの抽出も試みましたがその結果は以下をご覧ください。
https://hbkim.blog.ss-blog.jp/2019-09-27
また、最終的なアドレスは別の記事にしたので以下をご覧ください。
https://hbkim.blog.ss-blog.jp/2019-10-02

Google Translate:

Thank you for your comment.
As for 2600, it seems that there was a problem with the test method, and it was accessible at the same address as Zen.
I also tried to extract the address from the BIOS image.
https://hbkim.blog.ss-blog.jp/2019-09-27
Also, since the final address is a separate article, please see below.
https://hbkim.blog.ss-blog.jp/2019-10-02


by kim (2019-10-02 15:24) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。