| .. | .. | 
|---|
| 5 | 5 |  /* | 
|---|
| 6 | 6 |   * "Big Core" Processors (Branded as Core, Xeon, etc...) | 
|---|
| 7 | 7 |   * | 
|---|
| 8 |  | - * The "_X" parts are generally the EP and EX Xeons, or the  | 
|---|
| 9 |  | - * "Extreme" ones, like Broadwell-E, or Atom microserver.  | 
|---|
| 10 |  | - *  | 
|---|
| 11 | 8 |   * While adding a new CPUID for a new microarchitecture, add a new | 
|---|
| 12 | 9 |   * group to keep logically sorted out in chronological order. Within | 
|---|
| 13 | 10 |   * that group keep the CPUID for the variants sorted by model number. | 
|---|
 | 11 | + *  | 
|---|
 | 12 | + * The defined symbol names have the following form:  | 
|---|
 | 13 | + *	INTEL_FAM6{OPTFAMILY}_{MICROARCH}{OPTDIFF}  | 
|---|
 | 14 | + * where:  | 
|---|
 | 15 | + * OPTFAMILY	Describes the family of CPUs that this belongs to. Default  | 
|---|
 | 16 | + *		is assumed to be "_CORE" (and should be omitted). Other values  | 
|---|
 | 17 | + *		currently in use are _ATOM and _XEON_PHI  | 
|---|
 | 18 | + * MICROARCH	Is the code name for the micro-architecture for this core.  | 
|---|
 | 19 | + *		N.B. Not the platform name.  | 
|---|
 | 20 | + * OPTDIFF	If needed, a short string to differentiate by market segment.  | 
|---|
 | 21 | + *  | 
|---|
 | 22 | + *		Common OPTDIFFs:  | 
|---|
 | 23 | + *  | 
|---|
 | 24 | + *			- regular client parts  | 
|---|
 | 25 | + *		_L	- regular mobile parts  | 
|---|
 | 26 | + *		_G	- parts with extra graphics on  | 
|---|
 | 27 | + *		_X	- regular server parts  | 
|---|
 | 28 | + *		_D	- micro server parts  | 
|---|
 | 29 | + *  | 
|---|
 | 30 | + *		Historical OPTDIFFs:  | 
|---|
 | 31 | + *  | 
|---|
 | 32 | + *		_EP	- 2 socket server parts  | 
|---|
 | 33 | + *		_EX	- 4+ socket server parts  | 
|---|
 | 34 | + *  | 
|---|
 | 35 | + * The #define line may optionally include a comment including platform names.  | 
|---|
| 14 | 36 |   */ | 
|---|
 | 37 | +  | 
|---|
 | 38 | +/* Wildcard match for FAM6 so X86_MATCH_INTEL_FAM6_MODEL(ANY) works */  | 
|---|
 | 39 | +#define INTEL_FAM6_ANY			X86_MODEL_ANY  | 
|---|
| 15 | 40 |   | 
|---|
| 16 | 41 |  #define INTEL_FAM6_CORE_YONAH		0x0E | 
|---|
| 17 | 42 |   | 
|---|
| .. | .. | 
|---|
| 34 | 59 |  #define INTEL_FAM6_IVYBRIDGE		0x3A | 
|---|
| 35 | 60 |  #define INTEL_FAM6_IVYBRIDGE_X		0x3E | 
|---|
| 36 | 61 |   | 
|---|
| 37 |  | -#define INTEL_FAM6_HASWELL_CORE		0x3C  | 
|---|
 | 62 | +#define INTEL_FAM6_HASWELL		0x3C  | 
|---|
| 38 | 63 |  #define INTEL_FAM6_HASWELL_X		0x3F | 
|---|
| 39 |  | -#define INTEL_FAM6_HASWELL_ULT		0x45  | 
|---|
| 40 |  | -#define INTEL_FAM6_HASWELL_GT3E		0x46  | 
|---|
 | 64 | +#define INTEL_FAM6_HASWELL_L		0x45  | 
|---|
 | 65 | +#define INTEL_FAM6_HASWELL_G		0x46  | 
|---|
| 41 | 66 |   | 
|---|
| 42 |  | -#define INTEL_FAM6_BROADWELL_CORE	0x3D  | 
|---|
| 43 |  | -#define INTEL_FAM6_BROADWELL_GT3E	0x47  | 
|---|
 | 67 | +#define INTEL_FAM6_BROADWELL		0x3D  | 
|---|
 | 68 | +#define INTEL_FAM6_BROADWELL_G		0x47  | 
|---|
| 44 | 69 |  #define INTEL_FAM6_BROADWELL_X		0x4F | 
|---|
| 45 |  | -#define INTEL_FAM6_BROADWELL_XEON_D	0x56  | 
|---|
 | 70 | +#define INTEL_FAM6_BROADWELL_D		0x56  | 
|---|
| 46 | 71 |   | 
|---|
| 47 |  | -#define INTEL_FAM6_SKYLAKE_MOBILE	0x4E  | 
|---|
| 48 |  | -#define INTEL_FAM6_SKYLAKE_DESKTOP	0x5E  | 
|---|
 | 72 | +#define INTEL_FAM6_SKYLAKE_L		0x4E  | 
|---|
 | 73 | +#define INTEL_FAM6_SKYLAKE		0x5E  | 
|---|
| 49 | 74 |  #define INTEL_FAM6_SKYLAKE_X		0x55 | 
|---|
| 50 |  | -#define INTEL_FAM6_KABYLAKE_MOBILE	0x8E  | 
|---|
| 51 |  | -#define INTEL_FAM6_KABYLAKE_DESKTOP	0x9E  | 
|---|
 | 75 | +#define INTEL_FAM6_KABYLAKE_L		0x8E  | 
|---|
 | 76 | +#define INTEL_FAM6_KABYLAKE		0x9E  | 
|---|
| 52 | 77 |   | 
|---|
| 53 |  | -#define INTEL_FAM6_CANNONLAKE_MOBILE	0x66  | 
|---|
 | 78 | +#define INTEL_FAM6_CANNONLAKE_L		0x66  | 
|---|
| 54 | 79 |   | 
|---|
| 55 | 80 |  #define INTEL_FAM6_ICELAKE_X		0x6A | 
|---|
| 56 |  | -#define INTEL_FAM6_ICELAKE_XEON_D	0x6C  | 
|---|
| 57 |  | -#define INTEL_FAM6_ICELAKE_DESKTOP	0x7D  | 
|---|
| 58 |  | -#define INTEL_FAM6_ICELAKE_MOBILE	0x7E  | 
|---|
 | 81 | +#define INTEL_FAM6_ICELAKE_D		0x6C  | 
|---|
 | 82 | +#define INTEL_FAM6_ICELAKE		0x7D  | 
|---|
 | 83 | +#define INTEL_FAM6_ICELAKE_L		0x7E  | 
|---|
| 59 | 84 |  #define INTEL_FAM6_ICELAKE_NNPI		0x9D | 
|---|
| 60 | 85 |   | 
|---|
| 61 | 86 |  #define INTEL_FAM6_TIGERLAKE_L		0x8C | 
|---|
| .. | .. | 
|---|
| 63 | 88 |   | 
|---|
| 64 | 89 |  #define INTEL_FAM6_COMETLAKE		0xA5 | 
|---|
| 65 | 90 |  #define INTEL_FAM6_COMETLAKE_L		0xA6 | 
|---|
 | 91 | +  | 
|---|
 | 92 | +#define INTEL_FAM6_ROCKETLAKE		0xA7  | 
|---|
 | 93 | +  | 
|---|
 | 94 | +#define INTEL_FAM6_SAPPHIRERAPIDS_X	0x8F  | 
|---|
 | 95 | +  | 
|---|
 | 96 | +/* Hybrid Core/Atom Processors */  | 
|---|
 | 97 | +  | 
|---|
 | 98 | +#define	INTEL_FAM6_LAKEFIELD		0x8A  | 
|---|
 | 99 | +#define INTEL_FAM6_ALDERLAKE		0x97  | 
|---|
 | 100 | +#define INTEL_FAM6_ALDERLAKE_L		0x9A  | 
|---|
 | 101 | +#define INTEL_FAM6_ALDERLAKE_N		0xBE  | 
|---|
 | 102 | +  | 
|---|
 | 103 | +#define INTEL_FAM6_RAPTORLAKE		0xB7  | 
|---|
 | 104 | +#define INTEL_FAM6_RAPTORLAKE_P		0xBA  | 
|---|
 | 105 | +#define INTEL_FAM6_RAPTORLAKE_S		0xBF  | 
|---|
 | 106 | +  | 
|---|
 | 107 | +#define INTEL_FAM6_RAPTORLAKE		0xB7  | 
|---|
| 66 | 108 |   | 
|---|
| 67 | 109 |  /* "Small Core" Processors (Atom) */ | 
|---|
| 68 | 110 |   | 
|---|
| .. | .. | 
|---|
| 74 | 116 |  #define INTEL_FAM6_ATOM_SALTWELL_TABLET	0x35 /* Cloverview */ | 
|---|
| 75 | 117 |   | 
|---|
| 76 | 118 |  #define INTEL_FAM6_ATOM_SILVERMONT	0x37 /* Bay Trail, Valleyview */ | 
|---|
| 77 |  | -#define INTEL_FAM6_ATOM_SILVERMONT_X	0x4D /* Avaton, Rangely */  | 
|---|
 | 119 | +#define INTEL_FAM6_ATOM_SILVERMONT_D	0x4D /* Avaton, Rangely */  | 
|---|
| 78 | 120 |  #define INTEL_FAM6_ATOM_SILVERMONT_MID	0x4A /* Merriefield */ | 
|---|
| 79 | 121 |   | 
|---|
| 80 | 122 |  #define INTEL_FAM6_ATOM_AIRMONT		0x4C /* Cherry Trail, Braswell */ | 
|---|
| 81 | 123 |  #define INTEL_FAM6_ATOM_AIRMONT_MID	0x5A /* Moorefield */ | 
|---|
 | 124 | +#define INTEL_FAM6_ATOM_AIRMONT_NP	0x75 /* Lightning Mountain */  | 
|---|
| 82 | 125 |   | 
|---|
| 83 | 126 |  #define INTEL_FAM6_ATOM_GOLDMONT	0x5C /* Apollo Lake */ | 
|---|
| 84 |  | -#define INTEL_FAM6_ATOM_GOLDMONT_X	0x5F /* Denverton */  | 
|---|
 | 127 | +#define INTEL_FAM6_ATOM_GOLDMONT_D	0x5F /* Denverton */  | 
|---|
 | 128 | +  | 
|---|
 | 129 | +/* Note: the micro-architecture is "Goldmont Plus" */  | 
|---|
| 85 | 130 |  #define INTEL_FAM6_ATOM_GOLDMONT_PLUS	0x7A /* Gemini Lake */ | 
|---|
| 86 |  | -#define INTEL_FAM6_ATOM_TREMONT_X	0x86 /* Jacobsville */  | 
|---|
 | 131 | +  | 
|---|
 | 132 | +#define INTEL_FAM6_ATOM_TREMONT_D	0x86 /* Jacobsville */  | 
|---|
 | 133 | +#define INTEL_FAM6_ATOM_TREMONT		0x96 /* Elkhart Lake */  | 
|---|
 | 134 | +#define INTEL_FAM6_ATOM_TREMONT_L	0x9C /* Jasper Lake */  | 
|---|
| 87 | 135 |   | 
|---|
| 88 | 136 |  /* Xeon Phi */ | 
|---|
| 89 | 137 |   | 
|---|
| 90 | 138 |  #define INTEL_FAM6_XEON_PHI_KNL		0x57 /* Knights Landing */ | 
|---|
| 91 | 139 |  #define INTEL_FAM6_XEON_PHI_KNM		0x85 /* Knights Mill */ | 
|---|
| 92 | 140 |   | 
|---|
| 93 |  | -/* Useful macros */  | 
|---|
| 94 |  | -#define INTEL_CPU_FAM_ANY(_family, _model, _driver_data)	\  | 
|---|
| 95 |  | -{								\  | 
|---|
| 96 |  | -	.vendor		= X86_VENDOR_INTEL,			\  | 
|---|
| 97 |  | -	.family		= _family,				\  | 
|---|
| 98 |  | -	.model		= _model,				\  | 
|---|
| 99 |  | -	.feature	= X86_FEATURE_ANY,			\  | 
|---|
| 100 |  | -	.driver_data	= (kernel_ulong_t)&_driver_data		\  | 
|---|
| 101 |  | -}  | 
|---|
| 102 |  | -  | 
|---|
| 103 |  | -#define INTEL_CPU_FAM6(_model, _driver_data)			\  | 
|---|
| 104 |  | -	INTEL_CPU_FAM_ANY(6, INTEL_FAM6_##_model, _driver_data)  | 
|---|
 | 141 | +/* Family 5 */  | 
|---|
 | 142 | +#define INTEL_FAM5_QUARK_X1000		0x09 /* Quark X1000 SoC */  | 
|---|
| 105 | 143 |   | 
|---|
| 106 | 144 |  #endif /* _ASM_X86_INTEL_FAMILY_H */ | 
|---|