Coelacanth's Dream

既に 2つの DeviceID が用意されている Yellow Carp APU ファミリー

Yellow Carp APU の Device (PCI) ID は、 AMD GPUドライバーへの最初のパッチでは追加されなかったが、先日 amd-gfxメーリングリストにて DeviceID を追加するパッチが公開された。
追加された Yellow Carp APU の DeviceID は 0x164D0x1681 の 2つとなる。

 +	/* Yellow Carp */
 +	{0x1002, 0x164D, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_YELLOW_CARP|AMD_IS_APU},
 +	{0x1002, 0x1681, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_YELLOW_CARP|AMD_IS_APU},
 +

パッチでは、2つでそれぞれ異なる external_rev_id を持つことが示されている。
external_rev_id は APU/GPU のシリコンに割り当てられる ID であり、 8-bit の範囲 (0x00-0xFF) から一部を取る。また、external_rev_id は APU/GPU のファミリー内で識別するための ID となる。

 -		adev->external_rev_id = adev->rev_id + 0x01;
 +		if (adev->pdev->device == 0x1681)
 +			adev->external_rev_id = adev->rev_id + 0x19;
 +		else
 +			adev->external_rev_id = adev->rev_id + 0x01;

異なる external_rev_id から、今回のパッチは Yellow Carp と同様の GPUコア部、各種 IP (マルチメディアエンジン、ディスプレイエンジン/コントローラー) を搭載した APU が存在する可能性を示している。
Yellow Carp の DeviceID として追加されているが、これは APU/GPU の DeviceID が記述されている amdgpu_drv.c では GPU部、各種 IP が基本同じとなる APU をまとめて管理しており、その関係と思われる。
Raven には Raven, Raven2, PicassoRenoir には Renoir, Lucienne, Cezanne (Green Sardine), Barcelo がそれぞれ属する。

 	/* Renoir */
 	{0x1002, 0x15E7, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RENOIR|AMD_IS_APU},
 	{0x1002, 0x1636, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RENOIR|AMD_IS_APU},
 	{0x1002, 0x1638, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RENOIR|AMD_IS_APU},
 	{0x1002, 0x164C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RENOIR|AMD_IS_APU},

ディスプレイエンジン/コントローラー部のバージョンを識別するのに使われる部分を記述した dal_asci_id.h は、Yellow Carp に A0ステッピングと B0ステッピングが存在し、それぞれ異なる ID を持つとしているが、
今回のパッチで追加された DeviceId: 0x1681external_rev_id 範囲から外れるため、やはり Yellow Carp と同様の GPUコア部を搭載した異なる APU が存在し、既にサポートを追加する用意が進められていると考えられる。
コードネームも Yellow Carp とは異なるものになるだろう。

 #define FAMILY_YELLOW_CARP                     146
	
 #define YELLOW_CARP_A0 0x01
 #define YELLOW_CARP_B0 0x02		// TODO: DCN31 - update with correct B0 ID
 #define YELLOW_CARP_UNKNOWN 0xFF
	
 #ifndef ASICREV_IS_YELLOW_CARP
 #define ASICREV_IS_YELLOW_CARP(eChipRev) ((eChipRev >= YELLOW_CARP_A0) && (eChipRev < YELLOW_CARP_UNKNOWN))
 #endif

最近の AMD APU では、Raven からプロセスを改良した PicassoRaven に存在したバグを修正し、規模を小さくして同じプロセスで製造される Raven2
Renoir と同じ構成、同じ製造プロセスだが電源管理機能を改良した LucienneRenoir から CPUアーキテクチャを一世代進んだものを採用した Cezanne (Green Sardine) など、ある APU からの派生パターンが増えていることもあり、DeviceID: 0x1681Yellow Carp とどこが異なるのかは現時点では全く予想できないが、だからこそパッチ、公式発表を待つことは楽しいのだと思う。

参考リンク