Coelacanth's Dream

AMD Pollock の x86_Model は "0x20"

以前、ややこしいややこしいと書いた Zen APU に関して、Raven2 (Pollock)のx86_Model が 20h となることがわかった。

参考: soc/amd: Update macro name for IOMMU on AMD Family 17h (I17c78200) · Gerrit Code Review

インデックス

x86_Model

現在主流の x86-64プロセッサはその判別に Family ID と Model を用いられる。
基本的に、Family ID は ベースとなるアーキテクチャを、Model はより詳細なプロセッサの種類を表す。
例で言えば、Ryzen 5 2600 は Family ID: "0x17"、Model: "0x8" となっており、この値は Linux Kernelの温度センサーに関するコードでは Zen+ と判別され、1GCCでは znver1 と判別される。2

そして、Linux Kernelの温度センサーに関するコードを読むと、以下のように記述されている。

  case 0x1:	/* Zen */
  case 0x8:	/* Zen+ */
  case 0x11:	/* Zen APU */
  case 0x18:	/* Zen+ APU */

引用元: https://github.com/torvalds/linux/blob/b02c6857389da66b09e447103bdb247ccd182456/drivers/hwmon/k10temp.c#L587

これに従えば、"0x18"Zen+ APUPicassoとなるが、
Zen APU であるRaven2までも x86_Model が "0x18" となっており、それによって Zen+ APU /Picasso と判別されてしまう――というのを前回記事にした。
いかに Zen APU は複雑か | Coelacanth’s Dream

Pollock の x86_Model は “0x20”

そういうことで Raven2 の影が薄いことを勝手に憂いていたが、先日投稿された ChromiumOSのリポジトリにおける Coreboot へのパッチで、Pollockの x86_Model が "0x20" であることがわかった。

参考: soc/amd: Update macro name for IOMMU on AMD Family 17h (I17c78200) · Gerrit Code Review

コミットメッセージでは FP5ソケット"0x18" としているが、これはChromebookに採用される FP5ソケット 搭載のAPUが Raven 以降の PicassoRaven2 (Dali) のみであるからと思われる。
そして、FT5ソケット"0x20" としているが、それに搭載するAPUは Raven2 (Pollock) だけとなっている。3
少なくとも Raven2 (Pollock) は、12nm Zen+ APU /Picasso ではなく、14nm Zen APU /Raven2 (Pollock) としっかり判別されるはずだ。

気がかり

気がかりなのは、CPU-Z4といったハードウェアの情報を表示するソフトウェアでFT5ソケット Raven2 (Pollock) を見た時、コードネームの項目に表示されるのは Raven2 となるか Pollock となるかだ。
個人的には、PollockRaven2 のリビジョンの1つというものであるため、Raven2 と表示してほしい。

それと、Raven2 (Dali)は恐らく Picasso と判別されるままだろう。
Chromebookには Raven2 (Dali) ベースの Ryzen 3 3250CAthlon Silver 3050CAthlon Gold 3150C も採用されるが、これらは数字セグメント的に FP5ソケット に搭載される可能性が高い。5
そしてコミットメッセージから x86_Model は "0x18" となるはずだ。

つまり、AM4ソケットFP5ソケット に搭載される Raven2Raven2 (Dali)Picasso と判別され続け、
FT5ソケット に搭載される Raven2 (Pollock) は正しくそのままに判別される。

やっぱりややこしいままな気も。