1 /*========================== begin_copyright_notice ============================ 2 3 Copyright (C) 2019-2021 Intel Corporation 4 5 SPDX-License-Identifier: MIT 6 7 ============================= end_copyright_notice ===========================*/ 8 9 #ifndef __IGFXFMID_H__ 10 #define __IGFXFMID_H__ 11 12 typedef enum { 13 IGFX_UNKNOWN = 0, 14 IGFX_BROADWELL = 16, 15 IGFX_CHERRYVIEW, 16 IGFX_SKYLAKE, 17 IGFX_KABYLAKE, 18 IGFX_COFFEELAKE, 19 IGFX_WILLOWVIEW, 20 IGFX_BROXTON, 21 IGFX_GEMINILAKE, 22 IGFX_CANNONLAKE, 23 IGFX_ICELAKE, 24 IGFX_ICELAKE_LP, 25 IGFX_LAKEFIELD, 26 IGFX_JASPERLAKE, 27 IGFX_ELKHARTLAKE = IGFX_JASPERLAKE, 28 IGFX_TIGERLAKE_LP, 29 IGFX_ROCKETLAKE, 30 IGFX_ALDERLAKE_S, 31 IGFX_ALDERLAKE_P, 32 IGFX_DG1 = 1210, 33 IGFX_XE_HP_SDV = 1250, 34 IGFX_DG2 = 1270, 35 IGFX_PVC = 1271, 36 IGFX_MAX_PRODUCT, 37 38 39 IGFX_GENNEXT = 0x7ffffffe, 40 PRODUCT_FAMILY_FORCE_ULONG = 0x7fffffff 41 } PRODUCT_FAMILY; 42 43 typedef enum { 44 PCH_UNKNOWN = 0, 45 PCH_IBX, // Ibexpeak 46 PCH_CPT, // Cougarpoint, 47 PCH_CPTR, // Cougarpoint Refresh, 48 PCH_PPT, // Panther Point 49 PCH_LPT, // Lynx Point 50 PCH_LPTR, // Lynx Point Refresh 51 PCH_WPT, // Wildcat point 52 PCH_SPT, // Sunrise point 53 PCH_KBP, // Kabylake PCH 54 PCH_CNP_LP, // Cannonlake LP PCH 55 PCH_CNP_H, // Cannonlake Halo PCH 56 PCH_ICP_LP, // ICL LP PCH 57 PCH_ICP_N, // ICL N PCH 58 PCH_ICP_HP, // ICL HP PCH 59 PCH_LKF, // LKF PCH 60 PCH_TGL_LP, // TGL LP PCH 61 PCH_PRODUCT_FAMILY_FORCE_ULONG = 0x7fffffff 62 } PCH_PRODUCT_FAMILY; 63 64 typedef enum { 65 IGFX_UNKNOWN_CORE = 0, 66 IGFX_GEN3_CORE = 1, // Gen3 Family 67 IGFX_GEN3_5_CORE = 2, // Gen3.5 Family 68 IGFX_GEN4_CORE = 3, // Gen4 Family 69 IGFX_GEN4_5_CORE = 4, // Gen4.5 Family 70 IGFX_GEN5_CORE = 5, // Gen5 Family 71 IGFX_GEN5_5_CORE = 6, // Gen5.5 Family 72 IGFX_GEN5_75_CORE = 7, // Gen5.75 Family 73 IGFX_GEN6_CORE = 8, // Gen6 Family 74 IGFX_GEN7_CORE = 9, // Gen7 Family 75 IGFX_GEN7_5_CORE = 10, // Gen7.5 Family 76 IGFX_GEN8_CORE = 11, // Gen8 Family 77 IGFX_GEN9_CORE = 12, // Gen9 Family 78 IGFX_GEN10_CORE = 13, // Gen10 Family 79 IGFX_GEN10LP_CORE = 14, // Gen10 LP Family 80 IGFX_GEN11_CORE = 15, // Gen11 Family 81 IGFX_GEN11LP_CORE = 16, // Gen11 LP Family 82 IGFX_GEN12_CORE = 17, // Gen12 Family 83 IGFX_GEN12LP_CORE = 18, // Gen12 LP Family 84 IGFX_XE_HP_CORE = 0x0c05, // XeHP Family 85 IGFX_XE_HPG_CORE = 0x0c07, // XE_HPG Family 86 IGFX_XE_HPC_CORE = 0x0c08, // XE_HPC Family 87 IGFX_MAX_CORE, // Max Family, for lookup table 88 89 IGFX_GENNEXT_CORE = 0x7ffffffe, //GenNext 90 GFXCORE_FAMILY_FORCE_ULONG = 0x7fffffff 91 } GFXCORE_FAMILY; 92 93 typedef enum { 94 IGFX_SKU_NONE = 0, 95 IGFX_SKU_ULX = 1, 96 IGFX_SKU_ULT = 2, 97 IGFX_SKU_T = 3, 98 IGFX_SKU_ALL = 0xff 99 } PLATFORM_SKU; 100 101 typedef enum __GTTYPE 102 { 103 GTTYPE_GT1 = 0x0, 104 GTTYPE_GT2, 105 GTTYPE_GT2_FUSED_TO_GT1, 106 GTTYPE_GT2_FUSED_TO_GT1_6, //IVB 107 GTTYPE_GTL, // HSW 108 GTTYPE_GTM, // HSW 109 GTTYPE_GTH, // HSW 110 GTTYPE_GT1_5,//HSW 111 GTTYPE_GT1_75,//HSW 112 GTTYPE_GT3,//BDW 113 GTTYPE_GT4,//BDW 114 GTTYPE_GT0,//BDW 115 GTTYPE_GTA,// BXT 116 GTTYPE_GTC,// BXT 117 GTTYPE_GTX, // BXT 118 GTTYPE_GT2_5,//CNL 119 GTTYPE_GT3_5,//SKL 120 GTTYPE_GT0_5,//CNL 121 GTTYPE_UNDEFINED,//Always at the end. 122 }GTTYPE, *PGTTYPE; 123 124 ///////////////////////////////////////////////////////////////// 125 // 126 // Platform types which are used during Sku/Wa initialization. 127 // 128 #ifndef _COMMON_PPA 129 typedef enum { 130 PLATFORM_NONE = 0x00, 131 PLATFORM_DESKTOP = 0x01, 132 PLATFORM_MOBILE = 0x02, 133 PLATFORM_TABLET = 0X03, 134 PLATFORM_ALL = 0xff, // flag used for applying any feature/WA for All platform types 135 } PLATFORM_TYPE; 136 #endif 137 typedef struct PLATFORM_STR { 138 PRODUCT_FAMILY eProductFamily; 139 PCH_PRODUCT_FAMILY ePCHProductFamily; 140 GFXCORE_FAMILY eDisplayCoreFamily; 141 GFXCORE_FAMILY eRenderCoreFamily; 142 #ifndef _COMMON_PPA 143 PLATFORM_TYPE ePlatformType; 144 #endif 145 146 unsigned short usDeviceID; 147 unsigned short usRevId; 148 unsigned short usDeviceID_PCH; 149 unsigned short usRevId_PCH; 150 // GT Type 151 // Note: Is valid only till Gen9. From Gen10 SKUs are not identified by any GT flags. 'GT_SYSTEM_INFO' should be used instead. 152 GTTYPE eGTType; 153 } PLATFORM; 154 155 // add enums at the end 156 typedef enum __SKUIDTYPE 157 { 158 SKU_FULL_TYPE = 0x0, 159 SKU_VALUE_TYPE, 160 SKU_PLUS_FULL_TYPE, 161 SKU_PLUS_VALUE_TYPE, 162 SKU_T_TYPE, 163 SKU_PLUS_T_TYPE, 164 SKU_P_TYPE, 165 SKU_PLUS_P_TYPE, 166 SKU_SMALL_TYPE, 167 SKU_LIGHT_TYPE, 168 SKU_N_TYPE 169 }SKUIDTYPE, *PSKUIDTYPE; 170 171 typedef enum __CPUTYPE 172 { 173 CPU_UNDEFINED = 0x0, 174 CPU_CORE_I3, 175 CPU_CORE_I5, 176 CPU_CORE_I7, 177 CPU_PENTIUM, 178 CPU_CELERON, 179 CPU_CORE, 180 CPU_VPRO, 181 CPU_SUPER_SKU, 182 CPU_ATOM, 183 CPU_CORE1, 184 CPU_CORE2, 185 CPU_WS, 186 CPU_SERVER, 187 CPU_CORE_I5_I7, 188 CPU_COREX1_4, 189 CPU_ULX_PENTIUM, 190 CPU_MB_WORKSTATION, 191 CPU_DT_WORKSTATION, 192 CPU_M3, 193 CPU_M5, 194 CPU_M7, 195 CPU_MEDIA_SERVER //Added for KBL 196 }CPUTYPE, *PCPUTYPE; 197 198 // the code below convert platform real revision number to pre-defined revision number, the revision will be set as follow 199 // REVISION_A0 - this will include all incarnations for A stepping in all packages types A = {A0} 200 // REVISION_A1 - this will include all incarnations for A stepping in all packages types A = {A1} 201 // REVISION_A3 - this will include all incarnations for A stepping in all packages types A = {A3,...,A7} 202 // REVISION_B - this will include all incarnations for B stepping in all packages types B = {B0,B1,..,B7} 203 // REVISION_C - this will include all incarnations for C stepping in all packages types C = {C0,C1,..,C7} 204 // REVISION_D - this will include all incarnations for C stepping in all packages types C = {D0,D1} 205 // REVISION_K - this will include all incarnations for K stepping in all packages types K = {K0,K1,..,K7} 206 typedef enum __REVID 207 { 208 REVISION_A0 = 0, 209 REVISION_A1, //1 210 REVISION_A3,//2 211 REVISION_B,//3 212 REVISION_C,//4 213 REVISION_D,//5 214 REVISION_K//6 215 }REVID, *PREVID; 216 217 typedef enum __NATIVEGTTYPE 218 { 219 NATIVEGTTYPE_HSW_UNDEFINED = 0x00, 220 NATIVEGTTYPE_HSW_GT1 = 0x01, 221 NATIVEGTTYPE_HSW_GT2 = 0x02, 222 NATIVEGTTYPE_HSW_GT3 = 0x03, 223 }NATIVEGTTYPE; 224 225 // Following macros return true/false depending on the current PCH family 226 #define PCH_IS_PRODUCT(p, r) ( (p).ePCHProductFamily == r ) 227 #define PCH_GET_CURRENT_PRODUCT(p) ( (p).ePCHProductFamily ) 228 229 // These macros return true/false depending on current product/core family. 230 #define GFX_IS_PRODUCT(p, r) ( (p).eProductFamily == r ) 231 #define GFX_IS_DISPLAYCORE(p, d) ( (p).eDisplayCoreFamily == d ) 232 #define GFX_IS_RENDERCORE(p, r) ( (p).eRenderCoreFamily == r ) 233 // These macros return the current product/core family enum. 234 // Relational compares (</>) should not be done when using GFX_GET_CURRENT_PRODUCT 235 // macro. There are no relationships between the PRODUCT_FAMILY enum values. 236 #define GFX_GET_CURRENT_PRODUCT(p) ( (p).eProductFamily ) 237 #define GFX_GET_CURRENT_DISPLAYCORE(p) ( (p).eDisplayCoreFamily ) 238 #define GFX_GET_CURRENT_RENDERCORE(p) ( (p).eRenderCoreFamily ) 239 #define GFX_IS_DISCRETE_FAMILY(p) ( ( GFX_GET_CURRENT_PRODUCT(p) == IGFX_DG1 ) || \ 240 ( GFX_GET_CURRENT_PRODUCT(p) == IGFX_DG2 ) || \ 241 ( GFX_GET_CURRENT_PRODUCT(p) == IGFX_XE_HP_SDV ) ) 242 // These macros return true/false depending on the current render family. 243 #define GFX_IS_NAPA_RENDER_FAMILY(p) ( ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN3_CORE ) || \ 244 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN3_5_CORE ) ) 245 246 #define GFX_IS_GEN_RENDER_FAMILY(p) ( ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN4_CORE ) || \ 247 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN4_5_CORE ) || \ 248 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN5_CORE ) || \ 249 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN5_5_CORE ) || \ 250 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN5_75_CORE ) || \ 251 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN6_CORE ) || \ 252 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN7_CORE ) || \ 253 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN7_5_CORE ) || \ 254 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN8_CORE ) || \ 255 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN9_CORE ) || \ 256 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN10_CORE ) || \ 257 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN11_CORE ) || \ 258 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN12_CORE ) || \ 259 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_XE_HP_CORE ) || \ 260 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GENNEXT_CORE ) ) 261 262 #define GFX_IS_GEN_5_OR_LATER(p) ( ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN5_CORE ) || \ 263 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN5_5_CORE ) || \ 264 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN5_75_CORE ) || \ 265 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN6_CORE ) || \ 266 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN7_CORE ) || \ 267 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN7_5_CORE ) || \ 268 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN8_CORE ) || \ 269 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN9_CORE ) || \ 270 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN10_CORE ) || \ 271 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN11_CORE ) || \ 272 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN12_CORE ) || \ 273 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_XE_HP_CORE ) || \ 274 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GENNEXT_CORE ) ) 275 276 #define GFX_IS_GEN_5_75_OR_LATER(p) ( ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN5_75_CORE ) || \ 277 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN6_CORE ) || \ 278 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN7_CORE ) || \ 279 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN7_5_CORE ) || \ 280 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN8_CORE ) || \ 281 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN9_CORE ) || \ 282 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN10_CORE ) || \ 283 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN11_CORE ) || \ 284 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN12_CORE ) || \ 285 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_XE_HP_CORE ) || \ 286 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GENNEXT_CORE ) ) 287 288 #define GFX_IS_GEN_6_OR_LATER(p) ( ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN6_CORE ) || \ 289 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN7_CORE ) || \ 290 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN7_5_CORE ) || \ 291 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN8_CORE ) || \ 292 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN9_CORE ) || \ 293 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN10_CORE ) || \ 294 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN11_CORE ) || \ 295 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN12_CORE ) || \ 296 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_XE_HP_CORE ) || \ 297 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GENNEXT_CORE ) ) 298 299 #define GFX_IS_GEN_7_OR_LATER(p) ( ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN7_CORE ) || \ 300 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN7_5_CORE ) || \ 301 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN8_CORE ) || \ 302 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN9_CORE ) || \ 303 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN10_CORE ) || \ 304 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN11_CORE ) || \ 305 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN12_CORE ) || \ 306 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_XE_HP_CORE ) || \ 307 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GENNEXT_CORE ) ) 308 309 #define GFX_IS_GEN_7_5_OR_LATER(p) ( ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN7_5_CORE ) || \ 310 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN8_CORE ) || \ 311 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN9_CORE ) || \ 312 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN10_CORE ) || \ 313 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN11_CORE ) || \ 314 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN12_CORE ) || \ 315 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_XE_HP_CORE ) || \ 316 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GENNEXT_CORE ) ) 317 318 #define GFX_IS_GEN_8_OR_LATER(p) ( ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN8_CORE ) || \ 319 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN9_CORE ) || \ 320 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN10_CORE ) || \ 321 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN11_CORE ) || \ 322 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN12_CORE ) || \ 323 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_XE_HP_CORE ) || \ 324 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GENNEXT_CORE ) ) 325 326 #define GFX_IS_GEN_8_CHV_OR_LATER(p) ( ( GFX_GET_CURRENT_PRODUCT(p) == IGFX_CHERRYVIEW ) || \ 327 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN9_CORE ) || \ 328 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN10_CORE ) || \ 329 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN11_CORE ) || \ 330 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN12_CORE ) || \ 331 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_XE_HP_CORE ) || \ 332 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GENNEXT_CORE ) ) 333 334 #define GFX_IS_GEN_9_OR_LATER(p) ( ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN9_CORE ) || \ 335 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN10_CORE ) || \ 336 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN11_CORE ) || \ 337 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN12_CORE ) || \ 338 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_XE_HP_CORE ) || \ 339 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GENNEXT_CORE ) ) 340 341 #define GFX_IS_GEN_10_OR_LATER(p) (( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN10_CORE ) || \ 342 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN11_CORE ) || \ 343 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN12_CORE ) || \ 344 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_XE_HP_CORE ) || \ 345 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GENNEXT_CORE ) ) 346 347 #define GFX_IS_GEN_11_OR_LATER(p) (( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN11_CORE ) || \ 348 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GEN12_CORE ) || \ 349 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_XE_HP_CORE ) || \ 350 ( GFX_GET_CURRENT_RENDERCORE(p) == IGFX_GENNEXT_CORE ) ) 351 352 #define GFX_IS_GEN_12_OR_LATER(p) (( GFX_GET_CURRENT_RENDERCORE(p) >= IGFX_GEN12_CORE )) 353 354 #define GFX_IS_ATOM_PRODUCT_FAMILY(p) ( GFX_IS_PRODUCT(p, IGFX_VALLEYVIEW) || \ 355 GFX_IS_PRODUCT(p, IGFX_CHERRYVIEW) || \ 356 GFX_IS_PRODUCT(p, IGFX_BROXTON) ) 357 358 /////////////////////////////////////////////////////////////////// 359 // 360 // macros for comparing Graphics family and products 361 // 362 /////////////////////////////////////////////////////////////////// 363 #define GFX_IS_FAMILY_EQUAL_OR_ABOVE(family1, family2) ((family1)>=(family2) ? TRUE : FALSE) 364 #define GFX_IS_FAMILY_EQUAL_OR_BELOW(family1, family2) ((family1)<=(family2) ? TRUE : FALSE) 365 #define GFX_IS_FAMILY_BELOW(family1, family2) ((family1)<(family2) ? TRUE : FALSE) 366 #define GFX_IS_PRODUCT_EQUAL_OR_ABOVE(product1, product2) ((product1)>=(product2) ? TRUE : FALSE) 367 #define GFX_IS_PRODUCT_EQUAL_OR_BELOW(product1, product2) ((product1)<=(product2) ? TRUE : FALSE) 368 #define GFX_IS_PRODUCT_BELOW(product1, product2) ((product1) <(product2) ? TRUE : FALSE) 369 370 //Feature ID: Graphics PRD PC11.0 - Brookdale-G Support 371 //Description: Move device and vendor ID's to igfxfmid.h. 372 // Add #include "igfxfmid.h". 373 //Other Files Modified: dispconf.c, kcconfig.c, kchmisc.c, kchsys.c, 374 // driver.h, igfxfmid.h, imdefs.h, kchialm.h, kchname.h, softbios.h, 375 // swbios.h, vddcomm.h, vidmini.h 376 377 #define INTEL_VENDOR_ID 0x8086 // Intel Corporation 378 379 //Device IDs 380 #define UNKNOWN_DEVICE_ID 0xFFFF // Unknown device 381 382 //CHV device ids 383 #define ICHV_MOBL_DEVICE_F0_ID 0x22B0 // CHV TABLET i.e CHT 384 #define ICHV_PLUS_MOBL_DEVICE_F0_ID 0x22B1 // Essential i.e Braswell 385 #define ICHV_DESK_DEVICE_F0_ID 0x22B2 // Reserved 386 #define ICHV_PLUS_DESK_DEVICE_F0_ID 0x22B3 // Reserved 387 388 //BDW device ids 389 #define IBDW_GT0_DESK_DEVICE_F0_ID 0x0BD0 390 #define IBDW_GT1_DESK_DEVICE_F0_ID 0x0BD1 391 #define IBDW_GT2_DESK_DEVICE_F0_ID 0x0BD2 392 #define IBDW_GT3_DESK_DEVICE_F0_ID 0x0BD3 393 #define IBDW_GT4_DESK_DEVICE_F0_ID 0x0BD4 394 395 #define IBDW_GT1_HALO_MOBL_DEVICE_F0_ID 0x1602 396 #define IBDW_GT1_ULT_MOBL_DEVICE_F0_ID 0x1606 397 #define IBDW_GT1_RSVD_DEVICE_F0_ID 0x160B 398 #define IBDW_GT1_SERV_DEVICE_F0_ID 0x160A 399 #define IBDW_GT1_WRK_DEVICE_F0_ID 0x160D 400 #define IBDW_GT1_ULX_DEVICE_F0_ID 0x160E 401 #define IBDW_GT2_HALO_MOBL_DEVICE_F0_ID 0x1612 402 #define IBDW_GT2_ULT_MOBL_DEVICE_F0_ID 0x1616 403 #define IBDW_GT2_RSVD_DEVICE_F0_ID 0x161B 404 #define IBDW_GT2_SERV_DEVICE_F0_ID 0x161A 405 #define IBDW_GT2_WRK_DEVICE_F0_ID 0x161D 406 #define IBDW_GT2_ULX_DEVICE_F0_ID 0x161E 407 #define IBDW_GT3_HALO_MOBL_DEVICE_F0_ID 0x1622 408 #define IBDW_GT3_ULT_MOBL_DEVICE_F0_ID 0x1626 409 #define IBDW_GT3_ULT25W_MOBL_DEVICE_F0_ID 0x162B 410 #define IBDW_GT3_SERV_DEVICE_F0_ID 0x162A 411 #define IBDW_GT3_WRK_DEVICE_F0_ID 0x162D 412 #define IBDW_GT3_ULX_DEVICE_F0_ID 0x162E 413 #define IBDW_RSVD_MRKT_DEVICE_F0_ID 0x1632 414 #define IBDW_RSVD_ULT_MOBL_DEVICE_F0_ID 0x1636 415 #define IBDW_RSVD_HALO_MOBL_DEVICE_F0_ID 0x163B 416 #define IBDW_RSVD_SERV_DEVICE_F0_ID 0x163A 417 #define IBDW_RSVD_WRK_DEVICE_F0_ID 0x163D 418 #define IBDW_RSVD_ULX_DEVICE_F0_ID 0x163E 419 420 //skl placeholder 421 422 #define ISKL_GT4_DT_DEVICE_F0_ID 0x1932 423 #define ISKL_GT2_DT_DEVICE_F0_ID 0x1912 // Used on actual Silicon 424 425 #define ISKL_GT1_DT_DEVICE_F0_ID 0x1902 426 427 428 #define ISKL_GT2_ULT_DEVICE_F0_ID 0x1916 429 #define ISKL_GT2F_ULT_DEVICE_F0_ID 0x1921 430 #define ISKL_GT3e_ULT_DEVICE_F0_ID_540 0x1926 431 #define ISKL_GT3e_ULT_DEVICE_F0_ID_550 0x1927 432 433 #define ISKL_GT2_ULX_DEVICE_F0_ID 0x191E 434 #define ISKL_GT1_ULT_DEVICE_F0_ID 0x1906 435 #define ISKL_GT3_MEDIA_SERV_DEVICE_F0_ID 0x192D 436 #define ISKL_GT1_5_ULT_DEVICE_F0_ID 0x1913 437 438 #define ISKL_GT3_ULT_DEVICE_F0_ID 0x1923 439 440 #define ISKL_GT2_HALO_MOBL_DEVICE_F0_ID 0x191B 441 442 #define ISKL_GT4_HALO_MOBL_DEVICE_F0_ID 0x193B 443 #define ISKL_GT4_SERV_DEVICE_F0_ID 0x193A 444 #define ISKL_GT2_WRK_DEVICE_F0_ID 0x191D 445 #define ISKL_GT4_WRK_DEVICE_F0_ID 0x193D 446 447 448 #define ISKL_GT0_DESK_DEVICE_F0_ID 0x0900 449 #define ISKL_GT1_DESK_DEVICE_F0_ID 0x0901 450 #define ISKL_GT2_DESK_DEVICE_F0_ID 0x0902 451 #define ISKL_GT3_DESK_DEVICE_F0_ID 0x0903 452 #define ISKL_GT4_DESK_DEVICE_F0_ID 0x0904 453 #define ISKL_GT1_ULX_DEVICE_F0_ID 0x190E 454 //SKL strings to be be deleted in future 455 456 #define ISKL_GT1_HALO_MOBL_DEVICE_F0_ID 0x190B 457 #define ISKL_GT1_SERV_DEVICE_F0_ID 0x190A 458 #define ISKL_GT1_5_ULX_DEVICE_F0_ID 0x1915 459 #define ISKL_GT1_5_DT_DEVICE_F0_ID 0x1917 460 #define ISKL_GT2_SERV_DEVICE_F0_ID 0x191A 461 #define ISKL_LP_DEVICE_F0_ID 0x9905 462 #define ISKL_GT3_HALO_MOBL_DEVICE_F0_ID 0x192B 463 #define ISKL_GT3_SERV_DEVICE_F0_ID 0x192A 464 #define ISKL_GT0_MOBL_DEVICE_F0_ID 0xFFFF 465 466 // KabyLake Device ids 467 #define IKBL_GT1_ULT_DEVICE_F0_ID 0x5906 468 #define IKBL_GT1_5_ULT_DEVICE_F0_ID 0x5913 469 #define IKBL_GT2_ULT_DEVICE_F0_ID 0x5916 470 #define IKBL_GT2F_ULT_DEVICE_F0_ID 0x5921 471 #define IKBL_GT3_15W_ULT_DEVICE_F0_ID 0x5926 472 //#define IKBL_GT3E_ULT_DEVICE_F0_ID 0x5926 473 #define IKBL_GT1_ULX_DEVICE_F0_ID 0x590E 474 #define IKBL_GT1_5_ULX_DEVICE_F0_ID 0x5915 475 #define IKBL_GT2_ULX_DEVICE_F0_ID 0x591E 476 #define IKBL_GT1_DT_DEVICE_F0_ID 0x5902 477 #define IKBL_GT2_R_ULT_DEVICE_F0_ID 0x5917 478 #define IKBL_GT2_DT_DEVICE_F0_ID 0x5912 479 #define IKBL_GT1_HALO_DEVICE_F0_ID 0x590B 480 #define IKBL_GT1F_HALO_DEVICE_F0_ID 0x5908 481 #define IKBL_GT2_HALO_DEVICE_F0_ID 0x591B 482 #define IKBL_GT4_HALO_DEVICE_F0_ID 0x593B 483 #define IKBL_GT1_SERV_DEVICE_F0_ID 0x590A 484 #define IKBL_GT2_SERV_DEVICE_F0_ID 0x591A 485 #define IKBL_GT2_WRK_DEVICE_F0_ID 0x591D 486 #define IKBL_GT3_ULT_DEVICE_F0_ID 0x5923 487 #define IKBL_GT3_28W_ULT_DEVICE_F0_ID 0x5927 488 //keeping the below ids as its been used in linux . need to be removed once removed from linux files. 489 #define IKBL_GT4_DT_DEVICE_F0_ID 0x5932 490 #define IKBL_GT3_HALO_DEVICE_F0_ID 0x592B 491 #define IKBL_GT3_SERV_DEVICE_F0_ID 0x592A 492 #define IKBL_GT4_SERV_DEVICE_F0_ID 0x593A 493 #define IKBL_GT4_WRK_DEVICE_F0_ID 0x593D 494 495 //GLK Device ids 496 #define IGLK_GT2_ULT_18EU_DEVICE_F0_ID 0x3184 497 #define IGLK_GT2_ULT_12EU_DEVICE_F0_ID 0x3185 498 499 //BXT BIOS programmed Silicon ids. 500 #define IBXT_GT_3x6_DEVICE_ID 0x0A84 501 #define IBXT_PRO_3x6_DEVICE_ID 0x1A84 //18EU 502 #define IBXT_PRO_12EU_3x6_DEVICE_ID 0x1A85 //12 EU 503 #define IBXT_P_3x6_DEVICE_ID 0x5A84 //18EU APL 504 #define IBXT_P_12EU_3x6_DEVICE_ID 0x5A85 //12EU APL 505 506 // CNL Placeholder 507 // These device ID defs to be removed later on after UMD switches to GT_SYSTEM_INFO interface. 508 #define ICNL_GT0_DESK_DEVICE_F0_ID 0XDEAD // Not Valid - To be cleaned up. 509 #define ICNL_GT1_DESK_DEVICE_F0_ID 0x0A01 510 #define ICNL_GT2_DESK_DEVICE_F0_ID 0x0A02 511 #define ICNL_GT2_5_DESK_DEVICE_F0_ID 0x0A00 // Not POR - To be cleaned up. 512 #define ICNL_GT3_DESK_DEVICE_F0_ID 0x0A05 513 #define ICNL_GT4_DESK_DEVICE_F0_ID 0x0A07 514 515 // CNL Si device ids 516 #define ICNL_5x8_ULX_DEVICE_F0_ID 0x5A51 //GT2 517 #define ICNL_5x8_ULT_DEVICE_F0_ID 0x5A52 //GT2 518 #define ICNL_4x8_ULT_DEVICE_F0_ID 0x5A5A //GT1.5 519 #define ICNL_3x8_ULT_DEVICE_F0_ID 0x5A42 //GT1 520 #define ICNL_2x8_ULT_DEVICE_F0_ID 0x5A4A //GT0.5 521 #define ICNL_9x8_ULT_DEVICE_F0_ID 0x5A62 522 #define ICNL_9x8_SUPERSKU_DEVICE_F0_ID 0x5A60 523 #define ICNL_5x8_SUPERSKU_DEVICE_F0_ID 0x5A50 //GT2 524 #define ICNL_1x6_5x8_SUPERSKU_DEVICE_F0_ID 0x5A40 //GTx 525 #define ICNL_5x8_HALO_DEVICE_F0_ID 0x5A54 //GT2 526 #define ICNL_3x8_HALO_DEVICE_F0_ID 0x5A44 //GT1 527 #define ICNL_5x8_DESKTOP_DEVICE_F0_ID 0x5A55 528 #define ICNL_3x8_DESKTOP_DEVICE_F0_ID 0x5A45 529 #define ICNL_4x8_ULX_DEVICE_F0_ID 0x5A59 //GT1.5 530 #define ICNL_3x8_ULX_DEVICE_F0_ID 0x5A41 //GT1 531 #define ICNL_2x8_ULX_DEVICE_F0_ID 0x5A49 //GT0.5 532 #define ICNL_4x8_HALO_DEVICE_F0_ID 0x5A5C //GT1.5 533 534 #define ICFL_GT1_S61_DT_DEVICE_F0_ID 0x3E90 535 #define ICFL_GT1_S41_DT_DEVICE_F0_ID 0x3E93 536 #define ICFL_GT2_S62_DT_DEVICE_F0_ID 0x3E92 537 #define ICFL_GT2_HALO_DEVICE_F0_ID 0x3E9B 538 #define ICFL_GT2_SERV_DEVICE_F0_ID 0x3E96 539 #define ICFL_GT2_HALO_WS_DEVICE_F0_ID 0x3E94 540 #define ICFL_GT2_S42_DT_DEVICE_F0_ID 0x3E91 541 #define ICFL_GT3_ULT_15W_DEVICE_F0_ID 0x3EA6 542 #define ICFL_GT3_ULT_15W_42EU_DEVICE_F0_ID 0x3EA7 543 #define ICFL_GT3_ULT_28W_DEVICE_F0_ID 0x3EA8 544 #define ICFL_GT3_ULT_DEVICE_F0_ID 0x3EA5 545 #define ICFL_HALO_DEVICE_F0_ID 0x3E95 546 #define ICFL_GT2_WKS_DEVICE_P0_ID 0x9BC6 547 548 //GLV 549 #define IGLV_GT1_MOB_SIM_DEVICE_F0_ID 0xFF10 550 #define IGLV_GT1_MOB_DEVICE_F0_ID 0x3E04 551 552 //GEN11LP 553 #define IICL_LP_GT1_MOB_DEVICE_F0_ID 0xFF05 554 #define IICL_LP_1x8x8_SUPERSKU_DEVICE_F0_ID 0x8A50 555 #define IICL_LP_1x8x8_ULX_DEVICE_F0_ID 0x8A51 556 #define IICL_LP_1x6x8_ULX_DEVICE_F0_ID 0x8A5C 557 #define IICL_LP_1x4x8_ULX_DEVICE_F0_ID 0x8A5D 558 #define IICL_LP_1x8x8_ULT_DEVICE_F0_ID 0x8A52 559 #define IICL_LP_1x6x8_ULT_DEVICE_F0_ID 0x8A5A 560 #define IICL_LP_1x4x8_ULT_DEVICE_F0_ID 0x8A5B 561 #define IICL_LP_0x0x0_ULT_DEVICE_A0_ID 0x8A70 562 #define IICL_LP_1x1x8_ULT_DEVICE_A0_ID 0x8A71 563 #define IICL_LP_1x4x8_LOW_MEDIA_ULT_DEVICE_F0_ID 0x8A56 564 565 //TGL LP 566 #define IGEN12LP_GT1_MOB_DEVICE_F0_ID 0xFF20 567 #define ITGL_LP_1x6x16_UNKNOWN_SKU_F0_ID_5 0x9A49 568 #define ITGL_LP_1x6x16_ULT_15W_DEVICE_F0_ID 0x9A49 569 #define ITGL_LP_1x6x16_ULX_5_2W_DEVICE_F0_ID 0x9A40 570 #define ITGL_LP_1x6x16_ULT_12W_DEVICE_F0_ID 0x9A59 571 #define ITGL_LP_1x2x16_HALO_45W_DEVICE_F0_ID 0x9A60 572 #define ITGL_LP_1x2x16_DESK_65W_DEVICE_F0_ID 0x9A68 573 #define ITGL_LP_1x2x16_HALO_WS_45W_DEVICE_F0_ID 0x9A70 574 #define ITGL_LP_1x2x16_DESK_WS_65W_DEVICE_F0_ID 0x9A78 575 #define ITGL_LP_GT0_ULT_DEVICE_F0_ID 0x9A7F 576 577 #define DEV_ID_4905 0x4905 578 #define IRKL_1x2x16_GT1_ULT_SKU_DEVICE_F0_ID_0 0x4C80 // Obsolete, to be removed once removed from linux code base 579 #define IRKL_1x2x16_GT1_SUPER_SKU_DEVICE_F0_ID_1 0x4C8A // Obsolete, to be removed once removed from linux code base 580 #define IRKL_1X2X12_GT1_SUPER_SKU_DEVICE_F0_ID_2 0x4C8B // Obsolete, to be removed once removed from linux code base 581 #define IRKL_1X1X16_GT0P5_SUPER_SKU_DEVICE_F0_ID_3 0x4C8C // Obsolete, to be removed once removed from linux code base 582 #define IRKL_1X2X16_GT1_SUPER_SKU_DEVICE_F0_ID_4 0x4C90 // Obsolete, to be removed once removed from linux code base 583 #define IRKL_1X2X16_GT1_SUPER_SKU_DEVICE_F0_ID_5 0x4C9A // Obsolete, to be removed once removed from linux code base 584 #define IRKL_GT0_SKU_DEVICE_F0_ID 0x4C9F // Obsolete, to be removed once removed from linux code base 585 586 #define DEV_ID_4C80 0x4C80 587 #define DEV_ID_4C8A 0x4C8A 588 #define DEV_ID_4C8B 0x4C8B 589 #define DEV_ID_4C8C 0x4C8C 590 #define DEV_ID_4C90 0x4C90 591 #define DEV_ID_4C9A 0x4C9A 592 #define DEV_ID_4C9F 0x4C9F 593 //LKF 594 #define ILKF_1x8x8_DESK_DEVICE_F0_ID 0x9840 595 #define ILKF_GT0_DESK_DEVICE_A0_ID 0x9850 596 597 //EHL 598 #define IEHL_1x4x8_SUPERSKU_DEVICE_A0_ID 0x4500 599 #define IEHL_1x2x4_DEVICE_A0_ID 0x4541 600 #define IEHL_1x4x4_DEVICE_A0_ID 0x4551 601 #define IEHL_1x4x8_DEVICE_A0_ID 0x4571 602 #define IEHL_VAL_0x0x0_DEVICE_A0_ID 0x4569 603 604 //JSL 605 #define IJSL_1x4x8_DEVICE_A0_ID 0x4500 606 607 // ADL-S 608 #define IADLS_1X2X16_GT1_UNKNOWN_SKU_ID_0 0x4680 609 #define IADLS_1X2X16_GT1_UNKNOWN_SKU_ID_1 0x4681 610 #define IADLS_1X2X12_GT1_UNKNOWN_SKU_ID_2 0X4682 611 #define IADLS_1X1X16_GT0P5_UNKNOWN_SKU_ID_3 0x4683 612 #define IADLS_1X2X16_GT1_UNKNOWN_SKU_ID_4 0x4690 613 #define IADLS_1X2X16_GT1_UNKNOWN_SKU_ID_5 0x4691 614 #define IADLS_1X2X12_GT1_UNKNOWN_SKU_ID_6 0x4692 615 #define IADLS_1X1X16_GT1_UNKNOWN_SKU_ID_7 0x4693 616 #define IADLS_1X2X16_GT1_UNKNOWN_SKU_ID_8 0x4698 617 #define IADLS_1X2X16_GT1_UNKNOWN_SKU_ID_9 0x4699 618 619 620 #define IADLS_GT0_DEVICE_A0_ID 0x469F 621 #define DEV_ID_4600 0x4600 622 #define DEV_ID_461F 0x461F 623 624 // ADL-P 625 #define DEV_ID_46A0 0x46A0 626 #define DEV_ID_46A1 0x46A1 627 #define DEV_ID_46A2 0x46A2 628 #define DEV_ID_46A3 0x46A3 629 #define DEV_ID_46A6 0x46A6 630 #define DEV_ID_46A8 0x46A8 631 #define DEV_ID_46AA 0x46AA 632 #define DEV_ID_4626 0x4626 633 #define DEV_ID_4628 0x4628 634 #define DEV_ID_462A 0x462A 635 #define DEV_ID_46B0 0x46B0 636 #define DEV_ID_46B1 0x46B1 637 #define DEV_ID_46B2 0x46B2 638 #define DEV_ID_46B3 0x46B3 639 #define DEV_ID_46C0 0x46C0 640 #define DEV_ID_46C1 0x46C1 641 #define DEV_ID_46C2 0x46C2 642 #define DEV_ID_46C3 0x46C3 643 644 #endif 645