/* SPDX-License-Identifier: GPL-2.0 */ 
 | 
#ifndef _ASM_X86_INTEL_FAMILY_H 
 | 
#define _ASM_X86_INTEL_FAMILY_H 
 | 
  
 | 
/* 
 | 
 * "Big Core" Processors (Branded as Core, Xeon, etc...) 
 | 
 * 
 | 
 * While adding a new CPUID for a new microarchitecture, add a new 
 | 
 * group to keep logically sorted out in chronological order. Within 
 | 
 * that group keep the CPUID for the variants sorted by model number. 
 | 
 * 
 | 
 * The defined symbol names have the following form: 
 | 
 *    INTEL_FAM6{OPTFAMILY}_{MICROARCH}{OPTDIFF} 
 | 
 * where: 
 | 
 * OPTFAMILY    Describes the family of CPUs that this belongs to. Default 
 | 
 *        is assumed to be "_CORE" (and should be omitted). Other values 
 | 
 *        currently in use are _ATOM and _XEON_PHI 
 | 
 * MICROARCH    Is the code name for the micro-architecture for this core. 
 | 
 *        N.B. Not the platform name. 
 | 
 * 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. 
 | 
 */ 
 | 
  
 | 
/* Wildcard match for FAM6 so X86_MATCH_INTEL_FAM6_MODEL(ANY) works */ 
 | 
#define INTEL_FAM6_ANY            X86_MODEL_ANY 
 | 
  
 | 
#define INTEL_FAM6_CORE_YONAH        0x0E 
 | 
  
 | 
#define INTEL_FAM6_CORE2_MEROM        0x0F 
 | 
#define INTEL_FAM6_CORE2_MEROM_L    0x16 
 | 
#define INTEL_FAM6_CORE2_PENRYN        0x17 
 | 
#define INTEL_FAM6_CORE2_DUNNINGTON    0x1D 
 | 
  
 | 
#define INTEL_FAM6_NEHALEM        0x1E 
 | 
#define INTEL_FAM6_NEHALEM_G        0x1F /* Auburndale / Havendale */ 
 | 
#define INTEL_FAM6_NEHALEM_EP        0x1A 
 | 
#define INTEL_FAM6_NEHALEM_EX        0x2E 
 | 
  
 | 
#define INTEL_FAM6_WESTMERE        0x25 
 | 
#define INTEL_FAM6_WESTMERE_EP        0x2C 
 | 
#define INTEL_FAM6_WESTMERE_EX        0x2F 
 | 
  
 | 
#define INTEL_FAM6_SANDYBRIDGE        0x2A 
 | 
#define INTEL_FAM6_SANDYBRIDGE_X    0x2D 
 | 
#define INTEL_FAM6_IVYBRIDGE        0x3A 
 | 
#define INTEL_FAM6_IVYBRIDGE_X        0x3E 
 | 
  
 | 
#define INTEL_FAM6_HASWELL        0x3C 
 | 
#define INTEL_FAM6_HASWELL_X        0x3F 
 | 
#define INTEL_FAM6_HASWELL_L        0x45 
 | 
#define INTEL_FAM6_HASWELL_G        0x46 
 | 
  
 | 
#define INTEL_FAM6_BROADWELL        0x3D 
 | 
#define INTEL_FAM6_BROADWELL_G        0x47 
 | 
#define INTEL_FAM6_BROADWELL_X        0x4F 
 | 
#define INTEL_FAM6_BROADWELL_D        0x56 
 | 
  
 | 
#define INTEL_FAM6_SKYLAKE_L        0x4E 
 | 
#define INTEL_FAM6_SKYLAKE        0x5E 
 | 
#define INTEL_FAM6_SKYLAKE_X        0x55 
 | 
#define INTEL_FAM6_KABYLAKE_L        0x8E 
 | 
#define INTEL_FAM6_KABYLAKE        0x9E 
 | 
  
 | 
#define INTEL_FAM6_CANNONLAKE_L        0x66 
 | 
  
 | 
#define INTEL_FAM6_ICELAKE_X        0x6A 
 | 
#define INTEL_FAM6_ICELAKE_D        0x6C 
 | 
#define INTEL_FAM6_ICELAKE        0x7D 
 | 
#define INTEL_FAM6_ICELAKE_L        0x7E 
 | 
#define INTEL_FAM6_ICELAKE_NNPI        0x9D 
 | 
  
 | 
#define INTEL_FAM6_TIGERLAKE_L        0x8C 
 | 
#define INTEL_FAM6_TIGERLAKE        0x8D 
 | 
  
 | 
#define INTEL_FAM6_COMETLAKE        0xA5 
 | 
#define INTEL_FAM6_COMETLAKE_L        0xA6 
 | 
  
 | 
#define INTEL_FAM6_ROCKETLAKE        0xA7 
 | 
  
 | 
#define INTEL_FAM6_SAPPHIRERAPIDS_X    0x8F 
 | 
  
 | 
/* Hybrid Core/Atom Processors */ 
 | 
  
 | 
#define    INTEL_FAM6_LAKEFIELD        0x8A 
 | 
#define INTEL_FAM6_ALDERLAKE        0x97 
 | 
#define INTEL_FAM6_ALDERLAKE_L        0x9A 
 | 
#define INTEL_FAM6_ALDERLAKE_N        0xBE 
 | 
  
 | 
#define INTEL_FAM6_RAPTORLAKE        0xB7 
 | 
#define INTEL_FAM6_RAPTORLAKE_P        0xBA 
 | 
#define INTEL_FAM6_RAPTORLAKE_S        0xBF 
 | 
  
 | 
#define INTEL_FAM6_RAPTORLAKE        0xB7 
 | 
  
 | 
/* "Small Core" Processors (Atom) */ 
 | 
  
 | 
#define INTEL_FAM6_ATOM_BONNELL        0x1C /* Diamondville, Pineview */ 
 | 
#define INTEL_FAM6_ATOM_BONNELL_MID    0x26 /* Silverthorne, Lincroft */ 
 | 
  
 | 
#define INTEL_FAM6_ATOM_SALTWELL    0x36 /* Cedarview */ 
 | 
#define INTEL_FAM6_ATOM_SALTWELL_MID    0x27 /* Penwell */ 
 | 
#define INTEL_FAM6_ATOM_SALTWELL_TABLET    0x35 /* Cloverview */ 
 | 
  
 | 
#define INTEL_FAM6_ATOM_SILVERMONT    0x37 /* Bay Trail, Valleyview */ 
 | 
#define INTEL_FAM6_ATOM_SILVERMONT_D    0x4D /* Avaton, Rangely */ 
 | 
#define INTEL_FAM6_ATOM_SILVERMONT_MID    0x4A /* Merriefield */ 
 | 
  
 | 
#define INTEL_FAM6_ATOM_AIRMONT        0x4C /* Cherry Trail, Braswell */ 
 | 
#define INTEL_FAM6_ATOM_AIRMONT_MID    0x5A /* Moorefield */ 
 | 
#define INTEL_FAM6_ATOM_AIRMONT_NP    0x75 /* Lightning Mountain */ 
 | 
  
 | 
#define INTEL_FAM6_ATOM_GOLDMONT    0x5C /* Apollo Lake */ 
 | 
#define INTEL_FAM6_ATOM_GOLDMONT_D    0x5F /* Denverton */ 
 | 
  
 | 
/* Note: the micro-architecture is "Goldmont Plus" */ 
 | 
#define INTEL_FAM6_ATOM_GOLDMONT_PLUS    0x7A /* Gemini Lake */ 
 | 
  
 | 
#define INTEL_FAM6_ATOM_TREMONT_D    0x86 /* Jacobsville */ 
 | 
#define INTEL_FAM6_ATOM_TREMONT        0x96 /* Elkhart Lake */ 
 | 
#define INTEL_FAM6_ATOM_TREMONT_L    0x9C /* Jasper Lake */ 
 | 
  
 | 
/* Xeon Phi */ 
 | 
  
 | 
#define INTEL_FAM6_XEON_PHI_KNL        0x57 /* Knights Landing */ 
 | 
#define INTEL_FAM6_XEON_PHI_KNM        0x85 /* Knights Mill */ 
 | 
  
 | 
/* Family 5 */ 
 | 
#define INTEL_FAM5_QUARK_X1000        0x09 /* Quark X1000 SoC */ 
 | 
  
 | 
#endif /* _ASM_X86_INTEL_FAMILY_H */ 
 |