.. | .. |
---|
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 */ |
---|