Coelacanth's Dream

ALDERLAKE_L と Alder Lake-P/M

先日 2021/01/21、Linux Kernel に ALDERLAEK_L / Alder Lake mobile の x86_model を追加するパッチが投稿された。
このことで自分が言いたいのは、Alder Lake-L なるものが存在し、Alder Lake-S/P/M に並ぶバリアントとなる、訳ではないだろうということだ。

    #define	INTEL_FAM6_LAKEFIELD		0x8A
    #define INTEL_FAM6_ALDERLAKE		0x97
   +#define INTEL_FAM6_ALDERLAKE_L		0x9A
   
    /* "Small Core" Processors (Atom) */

ALDERLAKE_L と Alder Lake-P/M

intel-family.h

まず今回、パッチの投稿先であるファイル intel-family.h は、Intelプロセッサの x86_model をまとめたヘッダファイルであり、
そのファイルを先頭部分に記述されたコメントによると、末尾の _L, _X, _D 等はマーケットセグメントにおける担当を示すものであることが分かる。

    * OPTDIFF	If needed, a short string to differentiate by market segment.
    *
    *		Common OPTDIFFs:
    *
    *			- regular client parts
    *		_L	- regular mobile parts
    *		_G	- parts with extra graphics on
    *		_X	- regular server parts
    *		_D	- micro server parts
    *
    *		Historical OPTDIFFs:
    *
    *		_EP	- 2 socket server parts
    *		_EX	- 4+ socket server parts
    *
    * The #define line may optionally include a comment including platform names.
    */

そのため、そもそもパッチのコメントにも書かれているが 追加された ALDERLAKE_L はモバイル向け Alder Lake となり、その x86_model は 0x9A (154) ということになる。

そして、Alder Lake-S/P/M の x86_model については、Coreboot へのパッチから既に判明しており、
Alder Lake-SFamily: 0x6, Model: 0x97Alder Lake-P/MFamily: 0x6, Model: 0x9A とされる。
それらは Coreboot のファイルに記述された CPUID が読み取れ、以下の場合は左から 16進数であることを示す 0x の後に続いて、Extended ModelExtended FamilyFamilyModel といった風に並び、そして末尾が Stepping を意味する。1
Alder Lake-P を搭載する Chromebookボード 「Brya」、そして Alder Lake-M | Coelacanth’s Dream

   #define CPUID_ALDERLAKE_S_A0	0x90670
   #define CPUID_ALDERLAKE_P_A0	0x906a0
   #define CPUID_ALDERLAKE_M_A0	0x906a1

ALDERLAKE_LAlder Lake-P/M の x86_model は一致する。
まとめると、マーケットセグメントとして ALDERLAKE_L [Model: 0x9A (154)] があり、それに Alder Lake-P/M 2種があたる、という解釈が最も自然と思われる。

それだけのお話。
それとついでに言えば、モバイル向け Alder Lake の x86_model が 0x9A (154) であることは、2020/11/25 に Linux向け電力管理ツールである PowerTOP に投稿されたパッチ、プルリクエストから確認されていた。2
それを投稿した Gayatri Kammela (ユーザー名: gkammela) 氏は Intel のソフトウェアエンジニアであり、Linux Kernel 周りを担当している。