18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci#ifndef _ASM_X86_INTEL_FAMILY_H
38c2ecf20Sopenharmony_ci#define _ASM_X86_INTEL_FAMILY_H
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci/*
68c2ecf20Sopenharmony_ci * "Big Core" Processors (Branded as Core, Xeon, etc...)
78c2ecf20Sopenharmony_ci *
88c2ecf20Sopenharmony_ci * While adding a new CPUID for a new microarchitecture, add a new
98c2ecf20Sopenharmony_ci * group to keep logically sorted out in chronological order. Within
108c2ecf20Sopenharmony_ci * that group keep the CPUID for the variants sorted by model number.
118c2ecf20Sopenharmony_ci *
128c2ecf20Sopenharmony_ci * The defined symbol names have the following form:
138c2ecf20Sopenharmony_ci *	INTEL_FAM6{OPTFAMILY}_{MICROARCH}{OPTDIFF}
148c2ecf20Sopenharmony_ci * where:
158c2ecf20Sopenharmony_ci * OPTFAMILY	Describes the family of CPUs that this belongs to. Default
168c2ecf20Sopenharmony_ci *		is assumed to be "_CORE" (and should be omitted). Other values
178c2ecf20Sopenharmony_ci *		currently in use are _ATOM and _XEON_PHI
188c2ecf20Sopenharmony_ci * MICROARCH	Is the code name for the micro-architecture for this core.
198c2ecf20Sopenharmony_ci *		N.B. Not the platform name.
208c2ecf20Sopenharmony_ci * OPTDIFF	If needed, a short string to differentiate by market segment.
218c2ecf20Sopenharmony_ci *
228c2ecf20Sopenharmony_ci *		Common OPTDIFFs:
238c2ecf20Sopenharmony_ci *
248c2ecf20Sopenharmony_ci *			- regular client parts
258c2ecf20Sopenharmony_ci *		_L	- regular mobile parts
268c2ecf20Sopenharmony_ci *		_G	- parts with extra graphics on
278c2ecf20Sopenharmony_ci *		_X	- regular server parts
288c2ecf20Sopenharmony_ci *		_D	- micro server parts
298c2ecf20Sopenharmony_ci *
308c2ecf20Sopenharmony_ci *		Historical OPTDIFFs:
318c2ecf20Sopenharmony_ci *
328c2ecf20Sopenharmony_ci *		_EP	- 2 socket server parts
338c2ecf20Sopenharmony_ci *		_EX	- 4+ socket server parts
348c2ecf20Sopenharmony_ci *
358c2ecf20Sopenharmony_ci * The #define line may optionally include a comment including platform names.
368c2ecf20Sopenharmony_ci */
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci/* Wildcard match for FAM6 so X86_MATCH_INTEL_FAM6_MODEL(ANY) works */
398c2ecf20Sopenharmony_ci#define INTEL_FAM6_ANY			X86_MODEL_ANY
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci#define INTEL_FAM6_CORE_YONAH		0x0E
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci#define INTEL_FAM6_CORE2_MEROM		0x0F
448c2ecf20Sopenharmony_ci#define INTEL_FAM6_CORE2_MEROM_L	0x16
458c2ecf20Sopenharmony_ci#define INTEL_FAM6_CORE2_PENRYN		0x17
468c2ecf20Sopenharmony_ci#define INTEL_FAM6_CORE2_DUNNINGTON	0x1D
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ci#define INTEL_FAM6_NEHALEM		0x1E
498c2ecf20Sopenharmony_ci#define INTEL_FAM6_NEHALEM_G		0x1F /* Auburndale / Havendale */
508c2ecf20Sopenharmony_ci#define INTEL_FAM6_NEHALEM_EP		0x1A
518c2ecf20Sopenharmony_ci#define INTEL_FAM6_NEHALEM_EX		0x2E
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ci#define INTEL_FAM6_WESTMERE		0x25
548c2ecf20Sopenharmony_ci#define INTEL_FAM6_WESTMERE_EP		0x2C
558c2ecf20Sopenharmony_ci#define INTEL_FAM6_WESTMERE_EX		0x2F
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_ci#define INTEL_FAM6_SANDYBRIDGE		0x2A
588c2ecf20Sopenharmony_ci#define INTEL_FAM6_SANDYBRIDGE_X	0x2D
598c2ecf20Sopenharmony_ci#define INTEL_FAM6_IVYBRIDGE		0x3A
608c2ecf20Sopenharmony_ci#define INTEL_FAM6_IVYBRIDGE_X		0x3E
618c2ecf20Sopenharmony_ci
628c2ecf20Sopenharmony_ci#define INTEL_FAM6_HASWELL		0x3C
638c2ecf20Sopenharmony_ci#define INTEL_FAM6_HASWELL_X		0x3F
648c2ecf20Sopenharmony_ci#define INTEL_FAM6_HASWELL_L		0x45
658c2ecf20Sopenharmony_ci#define INTEL_FAM6_HASWELL_G		0x46
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_ci#define INTEL_FAM6_BROADWELL		0x3D
688c2ecf20Sopenharmony_ci#define INTEL_FAM6_BROADWELL_G		0x47
698c2ecf20Sopenharmony_ci#define INTEL_FAM6_BROADWELL_X		0x4F
708c2ecf20Sopenharmony_ci#define INTEL_FAM6_BROADWELL_D		0x56
718c2ecf20Sopenharmony_ci
728c2ecf20Sopenharmony_ci#define INTEL_FAM6_SKYLAKE_L		0x4E
738c2ecf20Sopenharmony_ci#define INTEL_FAM6_SKYLAKE		0x5E
748c2ecf20Sopenharmony_ci#define INTEL_FAM6_SKYLAKE_X		0x55
758c2ecf20Sopenharmony_ci#define INTEL_FAM6_KABYLAKE_L		0x8E
768c2ecf20Sopenharmony_ci#define INTEL_FAM6_KABYLAKE		0x9E
778c2ecf20Sopenharmony_ci
788c2ecf20Sopenharmony_ci#define INTEL_FAM6_CANNONLAKE_L		0x66
798c2ecf20Sopenharmony_ci
808c2ecf20Sopenharmony_ci#define INTEL_FAM6_ICELAKE_X		0x6A
818c2ecf20Sopenharmony_ci#define INTEL_FAM6_ICELAKE_D		0x6C
828c2ecf20Sopenharmony_ci#define INTEL_FAM6_ICELAKE		0x7D
838c2ecf20Sopenharmony_ci#define INTEL_FAM6_ICELAKE_L		0x7E
848c2ecf20Sopenharmony_ci#define INTEL_FAM6_ICELAKE_NNPI		0x9D
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_ci#define INTEL_FAM6_TIGERLAKE_L		0x8C
878c2ecf20Sopenharmony_ci#define INTEL_FAM6_TIGERLAKE		0x8D
888c2ecf20Sopenharmony_ci
898c2ecf20Sopenharmony_ci#define INTEL_FAM6_COMETLAKE		0xA5
908c2ecf20Sopenharmony_ci#define INTEL_FAM6_COMETLAKE_L		0xA6
918c2ecf20Sopenharmony_ci
928c2ecf20Sopenharmony_ci#define INTEL_FAM6_ROCKETLAKE		0xA7
938c2ecf20Sopenharmony_ci
948c2ecf20Sopenharmony_ci#define INTEL_FAM6_SAPPHIRERAPIDS_X	0x8F
958c2ecf20Sopenharmony_ci
968c2ecf20Sopenharmony_ci/* Hybrid Core/Atom Processors */
978c2ecf20Sopenharmony_ci
988c2ecf20Sopenharmony_ci#define	INTEL_FAM6_LAKEFIELD		0x8A
998c2ecf20Sopenharmony_ci#define INTEL_FAM6_ALDERLAKE		0x97
1008c2ecf20Sopenharmony_ci#define INTEL_FAM6_ALDERLAKE_L		0x9A
1018c2ecf20Sopenharmony_ci#define INTEL_FAM6_ALDERLAKE_N		0xBE
1028c2ecf20Sopenharmony_ci
1038c2ecf20Sopenharmony_ci#define INTEL_FAM6_RAPTORLAKE		0xB7
1048c2ecf20Sopenharmony_ci#define INTEL_FAM6_RAPTORLAKE_P		0xBA
1058c2ecf20Sopenharmony_ci#define INTEL_FAM6_RAPTORLAKE_S		0xBF
1068c2ecf20Sopenharmony_ci
1078c2ecf20Sopenharmony_ci#define INTEL_FAM6_RAPTORLAKE		0xB7
1088c2ecf20Sopenharmony_ci
1098c2ecf20Sopenharmony_ci/* "Small Core" Processors (Atom) */
1108c2ecf20Sopenharmony_ci
1118c2ecf20Sopenharmony_ci#define INTEL_FAM6_ATOM_BONNELL		0x1C /* Diamondville, Pineview */
1128c2ecf20Sopenharmony_ci#define INTEL_FAM6_ATOM_BONNELL_MID	0x26 /* Silverthorne, Lincroft */
1138c2ecf20Sopenharmony_ci
1148c2ecf20Sopenharmony_ci#define INTEL_FAM6_ATOM_SALTWELL	0x36 /* Cedarview */
1158c2ecf20Sopenharmony_ci#define INTEL_FAM6_ATOM_SALTWELL_MID	0x27 /* Penwell */
1168c2ecf20Sopenharmony_ci#define INTEL_FAM6_ATOM_SALTWELL_TABLET	0x35 /* Cloverview */
1178c2ecf20Sopenharmony_ci
1188c2ecf20Sopenharmony_ci#define INTEL_FAM6_ATOM_SILVERMONT	0x37 /* Bay Trail, Valleyview */
1198c2ecf20Sopenharmony_ci#define INTEL_FAM6_ATOM_SILVERMONT_D	0x4D /* Avaton, Rangely */
1208c2ecf20Sopenharmony_ci#define INTEL_FAM6_ATOM_SILVERMONT_MID	0x4A /* Merriefield */
1218c2ecf20Sopenharmony_ci
1228c2ecf20Sopenharmony_ci#define INTEL_FAM6_ATOM_AIRMONT		0x4C /* Cherry Trail, Braswell */
1238c2ecf20Sopenharmony_ci#define INTEL_FAM6_ATOM_AIRMONT_MID	0x5A /* Moorefield */
1248c2ecf20Sopenharmony_ci#define INTEL_FAM6_ATOM_AIRMONT_NP	0x75 /* Lightning Mountain */
1258c2ecf20Sopenharmony_ci
1268c2ecf20Sopenharmony_ci#define INTEL_FAM6_ATOM_GOLDMONT	0x5C /* Apollo Lake */
1278c2ecf20Sopenharmony_ci#define INTEL_FAM6_ATOM_GOLDMONT_D	0x5F /* Denverton */
1288c2ecf20Sopenharmony_ci
1298c2ecf20Sopenharmony_ci/* Note: the micro-architecture is "Goldmont Plus" */
1308c2ecf20Sopenharmony_ci#define INTEL_FAM6_ATOM_GOLDMONT_PLUS	0x7A /* Gemini Lake */
1318c2ecf20Sopenharmony_ci
1328c2ecf20Sopenharmony_ci#define INTEL_FAM6_ATOM_TREMONT_D	0x86 /* Jacobsville */
1338c2ecf20Sopenharmony_ci#define INTEL_FAM6_ATOM_TREMONT		0x96 /* Elkhart Lake */
1348c2ecf20Sopenharmony_ci#define INTEL_FAM6_ATOM_TREMONT_L	0x9C /* Jasper Lake */
1358c2ecf20Sopenharmony_ci
1368c2ecf20Sopenharmony_ci/* Xeon Phi */
1378c2ecf20Sopenharmony_ci
1388c2ecf20Sopenharmony_ci#define INTEL_FAM6_XEON_PHI_KNL		0x57 /* Knights Landing */
1398c2ecf20Sopenharmony_ci#define INTEL_FAM6_XEON_PHI_KNM		0x85 /* Knights Mill */
1408c2ecf20Sopenharmony_ci
1418c2ecf20Sopenharmony_ci/* Family 5 */
1428c2ecf20Sopenharmony_ci#define INTEL_FAM5_QUARK_X1000		0x09 /* Quark X1000 SoC */
1438c2ecf20Sopenharmony_ci
1448c2ecf20Sopenharmony_ci#endif /* _ASM_X86_INTEL_FAMILY_H */
145