ToDo:
マザーにCPUとクーラー本体取り付け後、ケースに入れる手順だが、 バックパネル裏に配置されているCPU12V 8pinコネクタの作業性がかなり悪い
CPU12V 8pinコネクタ周辺はVRMのヒートシンクに囲まれるので、天板が外れないケースの場合、手を入れるスペースが確保出来ない
マザー固定前に少しずらした状態でコネクタを接続して置くのが正解の模様、 天板が塞がっている場合、下側からのアプローチする形になるので、NH-U12Aだと排気側のファンを外しておくと作業しやすい
あと、ROG CROSSHAIR X670E GENEの場合、M-ATXのPCIe最上段スロット右側のネジ穴がロックリリース機構がレイアウトされて潰れているので、ベースから受け座を外しておくこと
とりあえず、拡張カード/ストレージ無しの状態にType-C alt mode→HDMIアダプタ経由のコンソールで起動試験実施
UEFI設定画面を確認して、メモリ回りのAMD EXPO設定を有効にしてから、memtest86開始
memtest86動作中のCPU温度(POST LED)とシステム電力(ワットメーター)は、50℃/150W ~ 60℃/190W
同一ケース・同一ファンの運用機より排気音が少しうるさいのだが、 どうもマザー上のファンコネクタだが、CPU関連とケースファン1系統以外はフルスピード固定の模様
4pinファンコネクタだがマニュアル上の名称がFS_FAN#なので、初期設定というより回転数制御自体が未実装の模様
必要なら負荷試験の様子を見ながら、排気側ケースファンにLNA追加して調整かなぁ…
フロント吸気系をCHA_FANPに、バック排気系をCPU_OPT(CPU_FAN連動)に配線変更
13.1-RELEASEのインストーラUSBだと、atkbdc0とuart0を認識したところで停止してしまう模様
あとで、13-STABLE/SNAPとか14-CURRENTを試してみよう…14-CURRENT 2022/09/30 n258315のmemstick版も同じ所で固まる
Ryzen 5950Xで動いているFreeBSD 13-STABLEのdmesgからの類推だと、その後はhwpstate周りなのでcpufreqドライバ周りの対応が必要?
動作テスト用のWindows10環境を構成して、OCCT11.0.12にてテスト実施
なんか、FP回りの動作が不穏
他のLinpack系テストツールでもエラーが出ており、Ryzen MasterでECOモードなどでクロック・電力制限をかけた状態でも再現している
MultipassなLinpackテストだと、passとFAILが両方あり、passのケースではresidual一定(計算が所定の誤差で再現している)だが、FAILのケースのresidualが一定していない(計算毎に結果がバラついてる)
電力不足を疑いCPU 12V 8pin x1を x2に増設したところ、JEDEC Normal/OCCT Linpack AMD64では出なくなった模様前回と違い開始1分では出ないが、10分過ぎた辺りから発生し始めた
当然だが、CPU 12Vライン改修直後はコールドスタートなので、コンポーネント温度が原因?
CPU温度に関しては開始直後に飽和しているで、それ以外のコンポーネントか?
電源電圧の不安定化であればVRM温度、CPU以外でベンチマークコードの実行結果に直接関わるのはものは、メモリーバス(バックプレーン)とDDR5メモリ本体(データ化けが起こっているのならば説明が付くが、memtestでかからないのはなぜ?アクセス頻度の違いで稼働温度が異なるのか?)
状況的にCPU向けの12Vラインが、FP負荷時の容量不足による不安定化してるぽぃが、マザーのマニュアルではCPU 12V 8pinの接続はx1 or x2と記述されており、TDP枠からの要求が記述されていないのでドキュメントのミスな気がする
マザーごと換装するケースでは、既設のCPU 12V 8pin x1を流用してハマる臭い(TDP105Wの 7700X/7600Xは問題ないのかも)
LinpackベンチでFAILが出ている状況とDIMM周りをブロアで吹いた状況でLinpackベンチがpassする状況(まだ積算時間が短い)を比較してみたが、 DIMM SPD Hub Temp.にて40℃未満はpass・45℃以上だとFAILしているように見える
検証用のファンを設置して長時間試験を企画中…
7950X/X670E GENEにFreeBSD 13-STABLEの試験環境をインストールしたので、 既設の本番環境と同一ソースツリーでbuildworld+buildkernelの時間を計測してみる
Arch | Zen4/TSMC 5nm | Zen3/TSMC 7nm | Zen2/TSMC 7nm | Zen+/TSMC 12nm |
CPU | Ryzen 7950X (16C) | Ryzen 5950X (16C) | Ryzen 3700X (8C) | Ryzen TR 2950X (16C) |
CLK | 4.5-5.7GHz | 3.4-4.9GHz | 3.6-4.4GHz | 3.5-4.4GHz |
MEM | DDR5-5200 32GBx2 | DDR4-3200 16GBx2 | DDR4-3200 16GBx2 | DDR4-2400 16GBx2 |
-j16 | 10:06.35 1490.1%/76℃/260W | 20:17.22 1216.2%/78℃ | N/A | 27:33.40 1304.7% |
-j12 | 12:44.97 1149.1% 75℃/235W | 22:37.59 1091.0%/76℃ | N/A | 32:39.57 1106.2% |
-j8 | 17:59.29 786.1%/68℃/185W | 29:36.20 782.7%/73℃ | 31:35.65 779.2% | 43:27.28 775.1% |
amorita branch r7688にて計測 (MAIN trunkと大幅に値が違うので比較する際には注意)
Arch | Zen4/TSMC 5nm | Zen3/TSMC 7nm | Zen2/TSMC 7nm | Zen+/TSMC 12nm |
CPU | Ryzen 7950X | Ryzen 5950X | Ryzen 3700X | Ryzen TR 2950X |
CLK | 4.5-5.7GHz | 3.4-4.9GHz | 3.6-4.4GHz | 3.5-4.4GHz |
Function | 0.608823 | 0.943251 | 1.073548 | 1.204148 |
Optics | 0.964649 | 1.299135 | 1.529004 | 1.826535 |
Tracking | 0.444471 | 0.588711 | 0.716498 | 0.541115 |
Matching | 0.063279 | 0.084467 | 0.101149 | 0.121333 |
Overall | 0.029833 | 0.043003 | 0.050005 | 0.054597 |
single threadベンチで、Zen3→Zen4で20~30%の向上はカタログ値通り
Ryzen 7950X全コア投入の buildworld+buildkernelをエンドレスで実行するストレステストを実施中
Ryzen Threadripper 2950Xの立ち上げ時には、CPU Errataでmulti thread loadをかけ続けるとハングしたりしたんだが、Zen4はどうなるかなぁ…
このストレステストが問題無く通れば、本番運用に向けた作業に移れる…
Ryzen 7950X
ASUS ROG X670E GENE
7950X 16並列のstable/13上でのbuildworld+buildkernelラップタイムのdev.cpu.0.freq依存性を調べてみる
dev.cpu.0.freq | buildworld+buildkernel | Tcpu/Power | Pidle |
4500 | 10:06.35 1490.1% | 76℃/260W | 79W |
3000 | 16:21.97 1486.3% | 47℃/100W | 64W |
公式情報が流れ始めているが、小型サーバー用途だとASRock B650M PG Riptide WiFiがスロット配置的に使いやすそうですねぇ…
PCIeスロット構成が上から x16 Gen4, x1 Gen3, x1 Gen3, x8 Gen4な並びで、x1スロット2個がエッジフリーかつ slot2/3付近にM.2が割り当てられて居ないので、x1帯域になるが x16カードが余裕を持って挿せる上に、Gen4な x8カードを2枚実装出来る (例えば、x8 Gen4な 100G/200G NIC + x8 SAS HBA)
さらに、DIMM4スロットに、M.2 x4 Gen5 + x4 Gen4入るのが小型鯖向けとしては○
さすがにB650なせいか内蔵2.5G NICがRealtekでUSB4が無いのだが…
ASUS ROG X670E GENEは早まったかも… いや、こっちはIntel 225だしUSB4も付いてるしUSB3ポート山盛りだ(w
連続buildworld+buildkernelによるストレステストは40時間越え確認
テストは一旦中断して、x1スロット化改造したMSI GT1030を接続した動作確認実施
を確認した
Xorgに関してはxorg.confで nvidiaドライバにBusIDオプションを付与しないとデバイスが見つからない
GT1030を使っている旧来のRyzen 5950X/X570M Pro4環境だとBusID無しで見つかるので、Ryzen 7950Xの内蔵GPUと併せてVGAデバイスが複数存在するのが原因と思われる
xorg.conf(5)にはBusIDパラメータは、PCI:bus@domain:device:functionと記述されているが、どうやらnvidia-driverの解釈は違うようで…
pciconf -lの出力がvgapci0@pci0:8:0:0ならBusIDにPCI:8:0:0を設定しないと認識しない
最初、BusID指定が効かなくてかなり悩んだ
残るデバイステストはConnectX-4 Lxの接続試験だが、運用機に装着した本番カードしか無いので、スケジュールを調整して動作確認したらそのまま現行運用機と入れ替えかなぁ…
AsrockのページにB650Mの正式仕様が出ていたが、残念ながら PCIe 1/4は、CPU側 x16 + チップセット側 x4な組み合わせなので、x8/x8では使えない模様
小型ストレージ鯖用途だど、PCIe4の x4スロットに10G/25G NICを挿して、PCIe1 x16スロットはSAD/NVMe HBAを挿す構成ですかねぇ…
Gen4なので帯域はx4で78Gbpsなはずなので、ギリギリ25Gbps ethernet x2だ通るので、そこそこおもしろい代物になるはず
25G ethernetで遊ぶ前提だと、Gen4世代のカードが必要なのでMellanox ConnectX-6 LxとかIntel XV710あたりが最低ラインに…
AsrockのB650Mマザーだと、PCIe2/3の x1スロットがエッジフリーかつM.2で邪魔されない構成なので、1スロット版の軽めのx16 VGAカードが追加出来るのが他のメーカーに対するメリット(鯖用コンソールだとマザー側のDP/HDMIで充分だが…)
他のメーカーだとx16 + x4構成で間がM.2で埋まっている or x1もあるけどエッジフリーで無い or x1のすぐ右側がM.2で埋まっているレイアウトが多い模様
Asrockのサイトから拾ったマニュアルのブロック図を読んでみたが、PCIE4(x4)とM.2 Gen5(x4)がCPU側から生えている
チップセット横のM.2 Gen4(x4)は、チップセット側から生えている
どうやら、PCIE4はThunderboltカードを挿すことを想定してCPU直結にしている模様なので、PCIE1, PCIE4, M.2 Gen5は干渉せずにフル帯域出る模様…
とりあえず、作業メモ
# gpart add -t freebsd-swap -b 2048 -s 64g -l swap0 nvd# # gpart add -t freebsd-swap -s 64g -l swap1 nvd# # gpart add -t freebsd-zfs -l ztmp nvd# # zpool create -O atime=off -O compression=lz4 -O mountpoint=none ztmp /dev/gpt/ztmp # zfs create -o canmount=off -o mountpoint=/usr ztmp/usr # zfs create ztmp/usr/obj
2022/10/11付けでV0705(AGESA 1.0.0.3 patch A)が出ている
週末の機材入れ替え前に、更新・テストですかねぇ更新実施、OCCT/Linpack Extreme等でテストしているが、数時間で摘発できる不具合は無い模様
攻略自体は、10/12に甲甲甲甲乙乙で完走
E5-2甲輸送5割ぐらい進めた時点で残り時間がヤバくなって戦車諦めて乙へ落とした Orz
E4-2甲 輸送堀で着任…
これで、今回のイベントは堀を含めて終了
Ryzen 5950X機からストレージを引き継いで、運用系に投入開始
実装メモリが DDR4-3200 16GBx2から DDR5-5200 32GBx2に増えているので、 Webブラウザがぱくぱくメモリーを食い散らかしてもスワップしなくなるはず (以前は、16GBぐらいスワップしていた)
swapと/usr/obj用にNVMe M.2モジュールを載せているのだが、かなり早くなった模様(sequential readで測定)
System | NVMe | kB/t | tps | MB/sec | T[℃] |
5950X/X570 | WD SN750 | 256 | 4642 | 1162 | 47 |
7950X/X670E | WD SN850 | 256 | 19200 | 4810 | 39 |
というか、以前のシステムのSN750が全然カタログ値でてないぞ
バス的には5950X側のPCIe Gen4 x4につながっているはずなのだが、 レーン数の割り当て減ってる?それとも温度環境が悪くスロットリングされてる? (Asrock X570M Pro4のヒートシンク付きM.2スロットなのだがエアフローに問題あったか?)
UEFIからSecure Erase/SanitiseしてからSN750を再計測すると3000MB/secまで出た
SSD内部の記憶セルがフラグメントしていると性能が出ないのかなぁ…
あと、X570M Pro4実装時に温度が高かった件だが、同もM2_1のヒートシンクカバーがチップセットのヒートシンクと一体成形なので、端以外の熱結合が悪かった模様(サーマルパッドが端のネジそば以外伸びていない)
Antec P5に夢とロマン(16コア)を詰め込んだマシン達
Ryzen Threadripper 2950X + ASRock X399M Taichi
筐体の吸排気系は、吸気側 NF-A12x25 PWM x2、排気側 NF-A12x25 PWM x1
CPUクーラーは、最終的には Noctua NH-U12S-TR4-SP3の標準ファンを NF-A12x25 PWM x2に換装して、NH-U12S DX-3647相当に改修したものを使用
Noctuaの公式データだと、 ノーマル状態のNH-U12S-TR4-SP3は NSPR 129に対して、NH-U12S DX-3647は NSPR 157
実際、公称TDP 180WのRyzen TR 2950Xを冷やし際、 最初に導入した TR4対応水冷ヘッドでTDP250W対応を自称していた簡易水冷 ELC-LTTR240-TBPに対して、 我がNH-U12S-TR4-SP3改は、連続負荷状態でのTdie平衡温度 -10℃を叩き出している(240mm簡易水冷より冷えた&静かだった)
CPU挿入したらTR4ソケットの蓋がしまらないエラッタ品を掴んだのはいい思いで(解禁当日昼に購入、持ち帰り不具合発覚、当日夕方にショップに持ち込み初期不良と認定され交換対応)
マルチスレッド負荷でハングアップする系のCPUエラッタもあり、安定稼働するAGESAファームが出てくるまで実用に耐えなかった…(ファーム出た後は安定したのだが、検証作業を行う時間が取れなくて実戦投入が遅れた)
Ryzen 5950X + ASRock X570M Pro4
筐体吸排気は初号機を踏襲、CPUクーラーはNoctua NH-U12A
マザーはZen2時代から存在していたもの & NSPR 169に対してTDP 105Wなので大きなトラブルもなく簡単に仕上がった
ASRock X570M Pro4は、UEFIファームに入るところが微妙に不安定でじゃじゃ馬(ホットリスタートからUEFI画面に入るところで相応の確率で固まる、コールドスタート時はOKっぽぃ)なのですが、それ以外は問題なく動きます
同じX570マザーでもATXサイズの Gigabyte X570 AUROS PRO(Ryzen 3700X運用)にはそんな挙動は無いので、ファームのバグなのかなぁ…(癖が分かっていれば対処できるので致命的ではないけど…)
Ryzen 7950X + ASUS ROG X670E GENE
筐体吸排気は初号機を踏襲、CPUクーラーはいつものNoctua NH-U12A
マザーへの配線(CPU 12V 8pinx2)で苦労したのと、出荷状態の初期ファーム(グローバルの解禁日前日にβファームが出てる時点で察するべきだった)だとメモリI/O負荷をかけるとぼろぼろデータ化けする以外は初物にしては大きな問題なく立ち上がった
TDP 170W(PPT 230W)だけど、数値計算用なので SMT offで16コアの並列FP負荷を想定したLinpackによる負荷試験だと平衡状態で Tctl~95℃・PPT 80%・TDC 100%まで回った実績あり (Ryzen Masterで見る限り、4.9~5.1GHz辺りが出ているようなので満足)
マルチコアのメモリテスト負荷だと、PPT 80%にも届かずにTDC100%までいくので、DDR5インターフェースが電気食べてる?
メモリ構成は、AMD EXPOなDDR5-5200 OCメモリなのでその影響もあるかも?
本番環境投入前の各種ベンチマークから、手元の実用負荷だと1号機とほぼ同等の電力枠で、シングルスレッドの数値計算で2倍、並列コンパイル負荷でほぼ3倍の性能が出ている(Zen+/12nm → Zen4/5nmなので電力効率が全然違うのは当然なのだが…)
packages build cluster上でもビルドできない模様だが、手元の環境だと
で、直接の原因は/usr/include/sys/systm.h(/usr/src/sys/sys/systm.h)の変更で pauseマクロだったものを関数ポインタを拾えるようにstatic inline関数に置き換えた結果、/usr/include/unistd.hの int pause(void) APIと定義衝突している
aq_hw.c @ L35の#include<unistd.h>を外せば、コンパイル自体は出来るが、生成されたコードは未検証
あとで、コンパイル可能な環境で、アセンブラ出力が変わるか調べてみるか?cc -sで吐き出すaq_hw.cのアセンブラコードは、unistd.hインクルードの有無で変わらない模様
unistd.hのインクルードを外す修正で問題なく動作することを確認した
当方では、net/aquantia-atlantic-kmod/Makefile.localに以下のコードを置いて対処した
post-patch: @${REINPLACE_CMD} -e 's|^\(#include <unistd.h>.*\)|//\1|' ${WRKSRC}/aq_hw.c
13.1-STABLEでの注意点は、1301508から1301509の間にABI変更があり、1301508環境でビルドしたモジュールを1301509なカーネルに読み込むと、aq0を認識する所までは問題ない進むが、通信を開始するとpanicする
この状態になってしまうと、コンソールでloader menuにアクセスする必要があるので、リモート運用だと注意が必要
更新手順としては次のようなパターンが考えられる。
特に後者の手順(別途、ビルド環境が必要だが)だとリモート更新できるが、失敗するとコンソールに走るハメになる
遠隔地の場合はZFS-BEを活用してpanicからの再起動時に旧環境から起動するように仕込むなどの準備が必要
現時点の汎用B650 M-ATXマザーの決定版と思しきASRock B650M PG Riptide WiFi販売日が2022/10/28と正式発表された
https://ascii.jp/elem/000/004/109/4109995/
11月初旬までのRyzen 7000シリーズとASRockマザーの同時購入割引キャンペーンの対象商品に掲載されていたので、それまでに販売が始まるとは思っていたが少し遅めですねぇ…
まあ、今週だとZ790マザーのローンチとかぶるから後回しになったのだと思うが…
Ryzen 7950X/ROG X670E GENE導入まで主力だった Ryzen 5950X/ASRock X570M Pro4を 玉突き入れ替え向けに試験していたのだが、 X570M Pro4は普通のPCIe NICでは WoLできない模様
他の機材で、WoL実績ありのAQ107 NICを挿しても S5だとHubとリンクアップしない Orz
UEFIファーム側の電源制御周りの設定を確認・調整したがダメぽぃ (ネットで調べると、動かない系の報告事例がちらほらと…)
10G NICからWoLでWindows機兼サブ計算機として運用中の Ryzen 3700X/X570 AUROS PROを置き換えるつもりだったのだが、 PCIe NICからWoL出来てるX570 AUROS PRO(ATX)を継続使用することになりそう…
更に、その後の使い回しをする際に M-ATXだと 詰め込める筐体の選択肢が広がるのでX570M Pro4使いたかったのですがねぇ…
aq driverは、iflibフレームワークで動いているので、デフォルトのTX/RX queueの数は接続バス上のプロセッサのコア数になっている
Ryzen 3700X(8C)からRyzen 5950X(16C)への換装で、 queueが 8個から 16個に増えたら通信障害が多発
症状は、TCPはすごく遅い(多分再送多発っぽぃ)とか、外向きのpingは問題ない(ように見える)が、外部からのping着信に答えないなど
どうも、TX/RX queueが増えてもハードウェア的にハンドル出来ていない模様…
本来は、aq driver側でNICがサポート可能な最大 queue数を iflibフレームワークに伝えるべきなのだろう
当座のワークアラウンドは、iflibフレームワークのtuning knobで TX/RX queueを動作実績のある数まで絞る(例えば、8 queue)
dev.aq.0.iflib.override_nrxqs=8 dev.aq.0.iflib.override_ntxqs=8
sysctl(1)でも書き込める変数なのだが、iflib(4)に書かれている通り、参照されるのはドライバ初期時なので、/boot/loader.confに記述するか aq driverをロードする前にkenv(8)で設定するのが正解(ロード前は、sysctlノードはまだ生えていないぞ!)
netioによるTCP接続ベンチマークで、X550-T2とかだと普通に10Gbpsまで伸びるGen3 x4バス接続で、3~4Gbpsまでしか出ないのが難なのだが、現時点でWoL出来る10G PCIe NIC Cardってこれしか見つけていない Orz
2.5Gだと、I225とかRealtek 8125辺りはオンボード実装でWoLサポートしているので、WoLできるPCIe Cardがあるかも知れんが、速度的にはAQC107ほんの少し速い罠 (NBASE-T対応10Gスイッチなので、素直に性能が出る5GBASE-TなWoL PCIe NIC出てきたら考えるかも)
いや、一応複数ストリームなら 9Gbps越えしてくるから、rsync複数立てとかだと性能が出るのだが、Tbyte級のファイルをNFS越に流し込むとかのケースで性能が頭打ちに (X550とかだともう少し素直に性能が伸びる)
状況的には、aq driver - userland間のコンテキストスイッチコストや転送遅延もしくは、RX/TX queue 1本辺りの処理帯域でリミットがかかっているのだろうが…
RX/TX queueを 1個にして試したけど、single TX/RX queueでも複数ストリームなら 9Gbps越えてくるので、aq driver - userland間の転送帯域で限界が来てるぽぃ
メインの5950X機を置き換えた7950X機だが、稼働も順調で旧式化した Ryzen TR 2950X機に対して圧倒的な性能・電力効率が確認されたので、 Ryzen TR 2950X + ASRock X399M Taichiを置き換えを決意
本日、調達したのは…
ストレージは、現行のTR 2950X機から引き継ぎ、ケース・クーラーは5950X機を解体して空いたAntec P5・Noctua NH-U12Aを流用
B650マザーなので、ROG X670E GENEと比べるとかなり安いのもあるが、各種キャンペーンによる割引が13,750円あるのが大きい
DDR5メモリに関しては、Intelも新製品投入してきている関係か、32GBx2のセットは品薄ぎみ (16GBx2はそれなりに在庫している模様)
JEDEC NativeなDDR5-5600が市場投入されていない現状、Ryzen 7000定格のDDR5-5200はAMD EXPOなOC品だが、品薄で現物がないので、AMD EXPOなDDR5-5600 OCメモリを選択せざるを得なかった
NVMe M.2 SSDは、どの店も9/30と比べると値上がり気味、おそらく在庫が入れ替わった時点で円安なレートで入ってきた品に変わっている模様
ASRock B650M PGのファームの癖などは、動かして見ないと分からないが、現時点で発売・発表済みのAM5 M-ATXマザーの中では、PCIeスロット構成が一番遊べそうなマザーです 構成は、上から
他のM-ATXマザーに対する優位性は、第2/3スロットのエッジフリーPCIe x1の回りにM.2スロットやChipsetヒートシンクなどx4/x8/x16カードの挿入を邪魔するものが何一つ無い点
代わりに、M.2スロット周りは、CPU直結・ヒートシンク付きのGen5 x4とChipset接続・ヒートシンク無しのGen4 x4で、妥協することになりますが、 拡張カードで色々遊ぶには比較的バランスの良い構成です
個人的には、CPUの x16を x8/x8にばらせる構成にして、Gen4 x16(x16 or x8)/Gen3 x1/Gen4 x16(x0 or x8)/Gen4 x4なM-ATXマザーがあると一番おもしろそうなのですがねぇ(x8/x8にばらした所に25G NIC + 12G/24G SAS HBAを差し込むのが面白そう)
Host Bus BridgeのPCI DeviceIDとCPU ModelIDを追加すると、一様それっぽい値が読めるようになった
--- sys/dev/amdsmn/amdsmn.c.orig +++ sys/dev/amdsmn/amdsmn.c @@ -61,6 +61,7 @@ __FBSDID("$FreeBSD$"); #define PCI_DEVICE_ID_AMD_17H_M10H_ROOT 0x15d0 #define PCI_DEVICE_ID_AMD_17H_M30H_ROOT 0x1480 /* Also M70H, F19H M00H/M20H */ #define PCI_DEVICE_ID_AMD_17H_M60H_ROOT 0x1630 +#define PCI_DEVICE_ID_AMD_19H_M60H_ROOT 0x14d8 struct pciid; struct amdsmn_softc { @@ -104,6 +105,12 @@ static const struct pciid { .amdsmn_addr_reg = F17H_SMN_ADDR_REG, .amdsmn_data_reg = F17H_SMN_DATA_REG, }, + { + .amdsmn_vendorid = CPU_VENDOR_AMD, + .amdsmn_deviceid = PCI_DEVICE_ID_AMD_19H_M60H_ROOT, + .amdsmn_addr_reg = F17H_SMN_ADDR_REG, + .amdsmn_data_reg = F17H_SMN_DATA_REG, + }, }; /*
--- sys/dev/amdtemp/amdtemp.c.orig +++ sys/dev/amdtemp/amdtemp.c @@ -111,6 +111,7 @@ struct amdtemp_softc { #define DEVICEID_AMD_HOSTB17H_M10H_ROOT 0x15d0 #define DEVICEID_AMD_HOSTB17H_M30H_ROOT 0x1480 /* Also M70H, F19H M00H/M20H */ #define DEVICEID_AMD_HOSTB17H_M60H_ROOT 0x1630 +#define DEVICEID_AMD_HOSTB19H_M60H_ROOT 0x14d8 static const struct amdtemp_product { uint16_t amdtemp_vendorid; @@ -135,6 +136,7 @@ static const struct amdtemp_product { { VENDORID_AMD, DEVICEID_AMD_HOSTB17H_M10H_ROOT, false }, { VENDORID_AMD, DEVICEID_AMD_HOSTB17H_M30H_ROOT, false }, { VENDORID_AMD, DEVICEID_AMD_HOSTB17H_M60H_ROOT, false }, + { VENDORID_AMD, DEVICEID_AMD_HOSTB19H_M60H_ROOT, false }, }; /* @@ -845,6 +847,7 @@ amdtemp_probe_ccd_sensors19h(device_t dev, uint32_t model) switch (model) { case 0x00 ... 0x0f: /* Zen3 EPYC "Milan" */ case 0x20 ... 0x2f: /* Zen3 Ryzen "Vermeer" */ + case 0x60 ... 0x6f: /* Zen4 Ryzen "Raphael" */ maxreg = 8; _Static_assert((int)NUM_CCDS >= 8, ""); break;
Linuxのk10temp driver側の変更を流し読みしたが、Ryzen 7000系の温度換算式はRyzen 5000とオフセットが違うみたいだ…(読み違え 2022/11/02修正)CCD毎のTdieの格納位置がRyzen 5000(AMDTEMP_17H_CCD_TMP_BASE)とRyzen 7000で異なる。(Tctlの格納位置AMDTEMP_17H_CUR_TMPは同じ模様)
https://www.coelacanth-dream.com/posts/2022/07/10/fam19h-60h-70h/
カテゴリー: Admin | Emacs | EPICS | Fortran | FreeBSD | GCC | hgsubversion | IPv6 | KEKB | LHC | Lisp | LLVM | MADX | Ryzen | SAD | samba | tDiary | unix | WWW | YaSAI | お仕事 | イベント | 出張 | 宴会 | 数学 | 艦これ | 買いもの | 追記 | 雑記