1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 2970442c5SDave Hansen #ifndef _ASM_X86_INTEL_FAMILY_H 3970442c5SDave Hansen #define _ASM_X86_INTEL_FAMILY_H 4970442c5SDave Hansen 5970442c5SDave Hansen /* 6970442c5SDave Hansen * "Big Core" Processors (Branded as Core, Xeon, etc...) 7970442c5SDave Hansen * 8970442c5SDave Hansen * The "_X" parts are generally the EP and EX Xeons, or the 900ae831dSKan Liang * "Extreme" ones, like Broadwell-E, or Atom microserver. 10970442c5SDave Hansen * 11850eb9fbSRajneesh Bhardwaj * While adding a new CPUID for a new microarchitecture, add a new 12850eb9fbSRajneesh Bhardwaj * group to keep logically sorted out in chronological order. Within 13850eb9fbSRajneesh Bhardwaj * that group keep the CPUID for the variants sorted by model number. 14970442c5SDave Hansen */ 15970442c5SDave Hansen 16970442c5SDave Hansen #define INTEL_FAM6_CORE_YONAH 0x0E 17c238f234SAndy Shevchenko 18970442c5SDave Hansen #define INTEL_FAM6_CORE2_MEROM 0x0F 19970442c5SDave Hansen #define INTEL_FAM6_CORE2_MEROM_L 0x16 20970442c5SDave Hansen #define INTEL_FAM6_CORE2_PENRYN 0x17 21970442c5SDave Hansen #define INTEL_FAM6_CORE2_DUNNINGTON 0x1D 22970442c5SDave Hansen 23970442c5SDave Hansen #define INTEL_FAM6_NEHALEM 0x1E 244b3b234fSDave Hansen #define INTEL_FAM6_NEHALEM_G 0x1F /* Auburndale / Havendale */ 25970442c5SDave Hansen #define INTEL_FAM6_NEHALEM_EP 0x1A 26970442c5SDave Hansen #define INTEL_FAM6_NEHALEM_EX 0x2E 27c238f234SAndy Shevchenko 28970442c5SDave Hansen #define INTEL_FAM6_WESTMERE 0x25 29970442c5SDave Hansen #define INTEL_FAM6_WESTMERE_EP 0x2C 30970442c5SDave Hansen #define INTEL_FAM6_WESTMERE_EX 0x2F 31970442c5SDave Hansen 32970442c5SDave Hansen #define INTEL_FAM6_SANDYBRIDGE 0x2A 33970442c5SDave Hansen #define INTEL_FAM6_SANDYBRIDGE_X 0x2D 34970442c5SDave Hansen #define INTEL_FAM6_IVYBRIDGE 0x3A 35970442c5SDave Hansen #define INTEL_FAM6_IVYBRIDGE_X 0x3E 36970442c5SDave Hansen 37970442c5SDave Hansen #define INTEL_FAM6_HASWELL_CORE 0x3C 38970442c5SDave Hansen #define INTEL_FAM6_HASWELL_X 0x3F 39970442c5SDave Hansen #define INTEL_FAM6_HASWELL_ULT 0x45 40970442c5SDave Hansen #define INTEL_FAM6_HASWELL_GT3E 0x46 41970442c5SDave Hansen 42970442c5SDave Hansen #define INTEL_FAM6_BROADWELL_CORE 0x3D 43970442c5SDave Hansen #define INTEL_FAM6_BROADWELL_GT3E 0x47 44970442c5SDave Hansen #define INTEL_FAM6_BROADWELL_X 0x4F 45c238f234SAndy Shevchenko #define INTEL_FAM6_BROADWELL_XEON_D 0x56 46970442c5SDave Hansen 47970442c5SDave Hansen #define INTEL_FAM6_SKYLAKE_MOBILE 0x4E 48970442c5SDave Hansen #define INTEL_FAM6_SKYLAKE_DESKTOP 0x5E 49970442c5SDave Hansen #define INTEL_FAM6_SKYLAKE_X 0x55 50970442c5SDave Hansen #define INTEL_FAM6_KABYLAKE_MOBILE 0x8E 51970442c5SDave Hansen #define INTEL_FAM6_KABYLAKE_DESKTOP 0x9E 52970442c5SDave Hansen 53850eb9fbSRajneesh Bhardwaj #define INTEL_FAM6_CANNONLAKE_MOBILE 0x66 54850eb9fbSRajneesh Bhardwaj 558cd8f0ceSRajneesh Bhardwaj #define INTEL_FAM6_ICELAKE_MOBILE 0x7E 56e32d045cSRajneesh Bhardwaj #define INTEL_FAM6_ICELAKE_NNPI 0x9D 578cd8f0ceSRajneesh Bhardwaj 58970442c5SDave Hansen /* "Small Core" Processors (Atom) */ 59970442c5SDave Hansen 60f2c4db1bSPeter Zijlstra #define INTEL_FAM6_ATOM_BONNELL 0x1C /* Diamondville, Pineview */ 61f2c4db1bSPeter Zijlstra #define INTEL_FAM6_ATOM_BONNELL_MID 0x26 /* Silverthorne, Lincroft */ 62f2c4db1bSPeter Zijlstra 63f2c4db1bSPeter Zijlstra #define INTEL_FAM6_ATOM_SALTWELL 0x36 /* Cedarview */ 64f2c4db1bSPeter Zijlstra #define INTEL_FAM6_ATOM_SALTWELL_MID 0x27 /* Penwell */ 65f2c4db1bSPeter Zijlstra #define INTEL_FAM6_ATOM_SALTWELL_TABLET 0x35 /* Cloverview */ 66f2c4db1bSPeter Zijlstra 67f2c4db1bSPeter Zijlstra #define INTEL_FAM6_ATOM_SILVERMONT 0x37 /* Bay Trail, Valleyview */ 68f2c4db1bSPeter Zijlstra #define INTEL_FAM6_ATOM_SILVERMONT_X 0x4D /* Avaton, Rangely */ 69f2c4db1bSPeter Zijlstra #define INTEL_FAM6_ATOM_SILVERMONT_MID 0x4A /* Merriefield */ 70f2c4db1bSPeter Zijlstra 71f2c4db1bSPeter Zijlstra #define INTEL_FAM6_ATOM_AIRMONT 0x4C /* Cherry Trail, Braswell */ 72f2c4db1bSPeter Zijlstra #define INTEL_FAM6_ATOM_AIRMONT_MID 0x5A /* Moorefield */ 73f2c4db1bSPeter Zijlstra 74f2c4db1bSPeter Zijlstra #define INTEL_FAM6_ATOM_GOLDMONT 0x5C /* Apollo Lake */ 75f2c4db1bSPeter Zijlstra #define INTEL_FAM6_ATOM_GOLDMONT_X 0x5F /* Denverton */ 76f2c4db1bSPeter Zijlstra #define INTEL_FAM6_ATOM_GOLDMONT_PLUS 0x7A /* Gemini Lake */ 770a05fa67SAndy Shevchenko 7800ae831dSKan Liang #define INTEL_FAM6_ATOM_TREMONT_X 0x86 /* Jacobsville */ 79970442c5SDave Hansen 80970442c5SDave Hansen /* Xeon Phi */ 81970442c5SDave Hansen 82970442c5SDave Hansen #define INTEL_FAM6_XEON_PHI_KNL 0x57 /* Knights Landing */ 830047f598SPiotr Luc #define INTEL_FAM6_XEON_PHI_KNM 0x85 /* Knights Mill */ 84970442c5SDave Hansen 85e2ce67b2SAndy Shevchenko /* Useful macros */ 86e2ce67b2SAndy Shevchenko #define INTEL_CPU_FAM_ANY(_family, _model, _driver_data) \ 87e2ce67b2SAndy Shevchenko { \ 88e2ce67b2SAndy Shevchenko .vendor = X86_VENDOR_INTEL, \ 89e2ce67b2SAndy Shevchenko .family = _family, \ 90e2ce67b2SAndy Shevchenko .model = _model, \ 91e2ce67b2SAndy Shevchenko .feature = X86_FEATURE_ANY, \ 92e2ce67b2SAndy Shevchenko .driver_data = (kernel_ulong_t)&_driver_data \ 93e2ce67b2SAndy Shevchenko } 94e2ce67b2SAndy Shevchenko 95e2ce67b2SAndy Shevchenko #define INTEL_CPU_FAM6(_model, _driver_data) \ 96e2ce67b2SAndy Shevchenko INTEL_CPU_FAM_ANY(6, INTEL_FAM6_##_model, _driver_data) 97e2ce67b2SAndy Shevchenko 98970442c5SDave Hansen #endif /* _ASM_X86_INTEL_FAMILY_H */ 99