1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431
|
/*========================== begin_copyright_notice ============================
Copyright (C) 2019-2021 Intel Corporation
SPDX-License-Identifier: MIT
============================= end_copyright_notice ===========================*/
#ifndef __SKU_WA_H__
#define __SKU_WA_H__
#if (_DEBUG || _RELEASE_INTERNAL)
#define GLOBAL_WAFTR_ENABLED 1
#endif
#ifdef _USC_
#include "usc.h"
#define SKU_FEATURE_TABLE SUscSkuFeatureTable
#define PSKU_FEATURE_TABLE SUscSkuFeatureTable*
#else
#include "Driver_Model.h"
#if defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wpedantic"
#elif defined(__GNUC__)
#pragma GCC diagnostic push
#if __GNUC__ >= 6
#pragma GCC diagnostic ignored "-Wpedantic"
#else
#pragma GCC diagnostic ignored "-pedantic"
#endif
#endif
typedef struct _SKU_FEATURE_TABLE
{
struct
{
unsigned int FtrDesktop : 1;
unsigned int FtrMultiFunc : 1;
unsigned int FtrGttBar : 1;
unsigned int FtrGmadrBar : 1;
unsigned int FtrMmioBar : 1;
unsigned int FtrDioBar : 1;
unsigned int FtrPrimaryVga : 1;
unsigned int FtrBandwidthLimit : 1;
unsigned int FtrCoreClkLimit : 1;
unsigned int Ftr36BitPhysAddress : 1;
unsigned int FtrVTdEnabled : 1;
unsigned int FtrPgtblEnableSupported : 1;
unsigned int FtrVERing : 1;
unsigned int FtrBlitterRing : 1;
unsigned int FtrMFXRing : 1;
unsigned int FtrVcs2 : 1;
unsigned int Ftr3dRing : 1;
unsigned int FtrPics : 1;
unsigned int FtrGtBigDie : 1;
unsigned int FtrGtMediumDie : 1;
unsigned int FtrGtSmallDie : 1;
unsigned int FtrGT1 : 1;
unsigned int FtrNativeGT1 : 1;
unsigned int FtrGT1_5 : 1;
unsigned int FtrGT1_75 : 1;
unsigned int FtrGT1_6 : 1;
unsigned int FtrGT2 : 1;
unsigned int FtrNativeGT2 : 1;
unsigned int FtrGT2_5 : 1;
unsigned int FtrGT3 : 1;
unsigned int FtrNativeGT3 : 1;
unsigned int FtrGT4 : 1;
unsigned int FtrPureGT1 : 1;
unsigned int FtrGTEuRowSelectLower : 1;
unsigned int FtrGTEuRowSelectUpper : 1;
unsigned int FtrGT4plus2 : 1;
unsigned int FtrGT4plus1 : 1;
unsigned int FtrGT2plus2 : 1;
unsigned int FtrGT2plus1 : 1;
unsigned int FtrEmbeddedPlatformEnabled : 1;
unsigned int FtrULT : 1;
unsigned int FtrIVBK0Platform : 1;
unsigned int FtrIVBM0M1Platform : 1;
unsigned int FtrIVBL0Platform : 1;
unsigned int FtrIVBL1Platform : 1;
unsigned int FtrIVBN0Platform : 1;
unsigned int FtrIVBE0E1Platform : 1;
unsigned int FtrIVBE2Platform : 1;
unsigned int FtrInternalSSC : 1;
unsigned int FtrUseMuxedSSCAsRef : 1;
unsigned int FtrChannelSwizzlingXOREnabled : 1;
unsigned int FtrULX : 1;
unsigned int FtrPipeCDisabled : 1;
unsigned int FtrPipeDDisabled : 1;
unsigned int FtrNumOfPipes : 3;
unsigned int FtrGTA : 1;
unsigned int FtrGTC : 1;
unsigned int FtrGTX : 1;
unsigned int Ftr5Slice : 1;
unsigned int FtrLLCMLCNotSupported : 1;
unsigned int FtrGfxClientSubmission : 1;
unsigned int FtrLCIA : 1;
unsigned int FtrPinning : 1;
unsigned int FtrHalo : 1;
unsigned int FtrDt : 1;
unsigned int FtrResourceStreamer : 1;
unsigned int FtrShaderDoubleSupportDisabled : 1;
unsigned int FtrHwSemaphore : 1;
unsigned int FtrCCSRing : 1;
unsigned int FtrSuperSku : 1;
};
struct
{
unsigned int FtrPooledEuEnabled : 1;
};
struct
{
unsigned int FtrMultiPipe : 1;
unsigned int Ftr3Pipes : 1;
unsigned int FtrInternalLvds : 1;
unsigned int FtrCrtOnPipeB : 1;
unsigned int FtrSerialDvo : 1;
unsigned int FtrSDVOHDMI : 1;
unsigned int FtrDualView : 1;
unsigned int FtrWirelessDisplayNndi : 1;
unsigned int FtreDPonPortD : 1;
unsigned int FtreDPonPortC : 1;
unsigned int FtreDPonPortB : 1;
unsigned int FtrWirelessDisplay_2_1 : 1;
unsigned int FtrDisplayDisabled : 1;
unsigned int FtrSGTPVSKUStrapPresent : 1;
unsigned int FtrS0ixSKU : 1;
unsigned int FtrS0ixSRByGunit : 1;
unsigned int FtrGfxS0ixCapable : 1;
unsigned int FtrConnectedStandby : 1;
unsigned int FtrSKU4KDisplay : 1;
unsigned int FtrSupportModesGreaterThan3840Horizontal : 1;
unsigned int FtrCollageSupport : 1;
unsigned int FtrLPEAudio : 1;
unsigned int FtrHDMIPixelMax225Mhz : 1;
unsigned int FtrDPMaxRes25x16_60 : 1;
unsigned int FtrCRTNotSupported : 1;
unsigned int FtrMipi : 1;
unsigned int FtrCommandModeMIPI : 1;
unsigned int FtrAllowDC9WithMIPIDSR : 1;
unsigned int FtrDualMipi : 1;
unsigned int FtrSF1_0 : 1;
unsigned int FtrMPOSupport : 1;
unsigned int FtrDisableMPOMultiDisplayConfig : 1;
unsigned int FtrFractional48Hz : 1;
unsigned int FtrCHVBxSku : 1;
unsigned int FtrSplitScreenMPO : 1;
unsigned int FtrInvertRotation : 1;
unsigned int FtrPortraitLFP : 1;
unsigned int FtrGunitOffset : 1;
unsigned int FtrHWScalingNotSupported : 1;
unsigned int FtrDynamicCDClkOnlyForSDInternal : 1;
unsigned int FtrDDI4 : 1;
unsigned int FtrEnableUnderRun : 1;
unsigned int FtrEnable10bitRGBMPO : 1;
unsigned int FtrSAGVNotifyPCode : 1;
unsigned int FtrCoG : 1;
unsigned int FtreDPVDSC : 1;
unsigned int FtrPeriodicFrameNotification : 1;
unsigned int FtrDPVDSC : 1;
};
struct
{
unsigned int FtrCapGttMapAddr : 1;
unsigned int FtrOverlay : 1;
unsigned int FtrOverlayMmioFlip : 1;
unsigned int FtrFullOverlayDownscale : 1;
unsigned int FtrFixedGfxMem64MbMax : 1;
unsigned int FtrTotalGfxMem256MbMax : 1;
unsigned int FtrAsyncMMIOFlipSupport : 1;
unsigned int FtrMediaReset : 1;
unsigned int FtrParallelEngine : 1;
unsigned int FtrEnableCloneOverlay : 1;
unsigned int FtrEnableCollageOverlay : 1;
unsigned int FtrGpGpuMidBatchPreempt : 1;
unsigned int FtrGpGpuThreadGroupLevelPreempt : 1;
unsigned int FtrGpGpuMidThreadLevelPreempt : 1;
unsigned int Ftr3dMidBatchPreempt : 1;
unsigned int Ftr3dObjectLevelPreempt : 1;
unsigned int FtrMediaMidBatchPreempt : 1;
unsigned int FtrMediaThreadGroupLevelPreempt : 1;
unsigned int FtrMediaMidThreadLevelPreempt : 1;
unsigned int FtrPerCtxtPreemptionGranularityControl : 1;
unsigned int FtrDisableWDDMPreempt : 1;
unsigned int FtrBigPage : 1;
unsigned int FtrPPGTT : 1;
unsigned int FtrIA32eGfxPTEs : 1;
unsigned int FtrPml4Support : 1;
unsigned int FtrPml3OnHwPml4Support : 1;
unsigned int FtrSVM : 1;
unsigned int FtrTileMappedResource : 1;
unsigned int FtrTranslationTable : 1;
unsigned int FtrUserModeTranslationTable : 1;
unsigned int FtrNullPages : 1;
unsigned int FtrL3IACoherency : 1;
unsigned int FtrMIUpdateGTTCanUpdatePPGTT : 1;
unsigned int FtrReportCombinedDVMSSVM : 1;
unsigned int FtrRemoteFx : 1;
unsigned int FtrDriverManagedL3ParityErrors : 1;
unsigned int FtrL3HangOnParityError : 1;
unsigned int FtrEDram : 1;
unsigned int FtrLLCBypass : 1;
unsigned int FtrCrystalwell : 1;
unsigned int FtrCentralCachePolicy : 1;
unsigned int FtrIoMmu : 1;
unsigned int FtrDriverControlledIoMmu : 1;
unsigned int FtrIoMmuPageFaulting : 1;
unsigned int FtrDmaBufferMemSpaceSplitting : 1;
unsigned int FtrSecurePPGTTUpdate : 1;
unsigned int FtrPigms : 1;
unsigned int FtrWddm2GpuMmu : 1;
unsigned int FtrWddm2Svm : 1;
unsigned int FtrStandardMipTailFormat : 1;
unsigned int FtrDisplayColorEnhancement : 1;
unsigned int FtrWddm2_1_64kbPages : 1;
unsigned int FtrGttCacheInvalidation : 1;
unsigned int FtrMemorySeg : 1;
unsigned int FtrCacheCoherentMemSeg : 1;
unsigned int FtrDynamicDisplayAliasing : 1;
unsigned int FtrLinearCCS : 1;
unsigned int FtrKMDTestSupportFromRegKey : 1;
unsigned int FtrKmdDaf : 1;
unsigned int FtrDisableOverlayRotation : 1;
unsigned int FtrUnmapPagingReservedGTTSeg : 1;
unsigned int FtrKmdNotifyUmd : 1;
unsigned int FtrDeferredWaitForEventOnAsyncFlip : 1;
unsigned int FtrPerfModeSdiWrite : 1;
unsigned int FtrUse3DEngineforLateralBlts : 1;
unsigned int FtrPreemptTestMode : 1;
unsigned int FtrGuCWriteCombineEnable : 1;
unsigned int FtrGuCInternalMsgChannelEnable : 1;
unsigned int FtrSubSliceIzHashing : 1;
unsigned int FtrFrameBufferLLC : 1;
unsigned int FtrGpuMmuPageFault : 1;
unsigned int FtrOSManagedAllocations : 1;
unsigned int FtrCsResponseEventOptimization : 1;
unsigned int FtrRuntimeLogBuffer : 1;
unsigned int FtrLocalMemory : 1;
};
struct
{
unsigned int FtrHwBin : 1;
unsigned int Ftr8BitPalette : 1;
unsigned int FtrPixelShader : 1;
unsigned int FtrPixelShader30 : 1;
unsigned int FtrBWGConsumerTextures : 1;
unsigned int FtrMultiRenderTarget : 1;
unsigned int FtrHWTnL : 1;
unsigned int FtrOcclusionQuery : 1;
unsigned int FtrOcclusionQueryOGL : 1;
unsigned int FtrAutoGenMipMap : 1;
unsigned int FtrWorkstation : 1;
unsigned int FtrEtcFormats : 1;
unsigned int FtrAstcLdr2D : 1;
unsigned int FtrAstcHdr2D : 1;
unsigned int FtrAstc3D : 1;
unsigned int FtrUmdThreadingShim : 1;
unsigned int FtrBoundingBoxOptOGL : 1;
unsigned int FtrResourceStreamerEnabled : 1;
unsigned int FtrHiZSamplerDisabled : 1;
};
struct
{
unsigned int FtrWin7 : 1;
unsigned int FtrWin8 : 1;
unsigned int FtrWddm1_3 : 1;
unsigned int FtrWddm2_0 : 1;
unsigned int FtrWddm2_1 : 1;
unsigned int FtrWddm2_2 : 1;
unsigned int FtrWddm2_3 : 1;
unsigned int FtrWddm2_4 : 1;
unsigned int FtrWddm2_5 : 1;
};
struct
{
unsigned int FtrKmSecurityParser : 1;
};
struct
{
unsigned int FtrOsManagedHwContext : 1;
};
struct
{
unsigned int FtrVgt : 1;
};
struct
{
unsigned int FtrOGLTexelOffsetPrecisionFix : 1;
};
struct
{
unsigned int FtrEnableMissingAlpaFormatFilter : 1;
unsigned int FtrEnablePlanarYUVFilteringFix : 1;
};
struct
{
unsigned int FtrGtPsmi : 1;
};
} SKU_FEATURE_TABLE, *PSKU_FEATURE_TABLE;
#if defined(__clang__)
#pragma clang diagnostic pop
#elif defined(__GNUC__)
#pragma GCC diagnostic pop
#endif
#endif
enum WA_BUG_TYPE
{
WA_BUG_TYPE_UNKNOWN = 0,
WA_BUG_TYPE_CORRUPTION = 1,
WA_BUG_TYPE_HANG = 2,
WA_BUG_TYPE_PERF = 4,
WA_BUG_TYPE_FUNCTIONAL = 8,
WA_BUG_TYPE_SPEC = 16,
WA_BUG_TYPE_FAIL = 32
};
#define WA_BUG_PERF_IMPACT(f) f
#define WA_BUG_PERF_IMPACT_UNKNOWN -1
enum WA_COMPONENT
{
WA_COMPONENT_UNKNOWN = 0,
WA_COMPONENT_KMD = 0x1,
WA_COMPONENT_MINIPORT = 0x2,
WA_COMPONENT_GMM = 0x4,
WA_COMPONENT_D3D = 0x8,
WA_COMPONENT_OGL = 0x10,
WA_COMPONENT_SOFTBIOS = 0x20,
WA_COMPONENT_PWRCONS = 0x40,
WA_COMPONENT_MEDIA = 0x80,
WA_COMPONENT_OCL = 0x100,
};
typedef struct _WA_TABLE
{
#define WA_DECLARE( wa, wa_comment, wa_bugType, wa_impact, wa_component) unsigned int wa : 1;
#include "sku_wa_defs.h"
#undef WA_DECLARE
} WA_TABLE, *PWA_TABLE;
#ifdef _USC_
/*****************************************************************************\
STRUCT:
HW_STATUS
Description:
holds WA info for compiler
\*****************************************************************************/
struct HW_STATUS
{
SKU_FEATURE_TABLE SkuTable;
WA_TABLE WaTable;
SKU_FEATURE_TABLE* pSkuTable;
WA_TABLE* pWaTable;
};
#endif
#if (defined(__MINIPORT) || defined(__KCH) || defined(__SOFTBIOS) || defined(__GRM) || defined(__PWRCONS))
#if LHDM || LINUX
#define GFX_IS_SKU(s, f) ((s)->SkuTable.f)
#define GFX_IS_WA(s, w) ((s)->WaTable.w)
#define GFX_WRITE_WA(x, y, z) ((x)->WaTable.y = z)
#define GFX_WRITE_SKU(x, y, z) ((x)->SkuTable.y = z)
#else
#define GFX_IS_SKU(h, f) (((PHW_DEVICE_EXTENSION)(h))->pHWStatusPage->pSkuTable->f)
#define GFX_IS_WA(h, w) (((PHW_DEVICE_EXTENSION)(h))->pHWStatusPage->pWaTable->w)
#define GFX_WRITE_WA(x, y, z) (((HW_DEVICE_EXTENSION *)(x))->pHWStatusPage->pWaTable->y = z)
#define GFX_WRITE_SKU(x, y, z) (((HW_DEVICE_EXTENSION *)(x))->pHWStatusPage->pSkuTable->y = z)
#endif
#else
#if XPDM
#define GFX_IS_SKU(s, f) ((s)->pSkuTable->f)
#define GFX_IS_WA(s, w) ((s)->pWaTable->w)
#else
#define GFX_IS_SKU(s, f) ((s)->SkuTable.f)
#define GFX_IS_WA(s, w) ((s)->WaTable.w)
#endif
#endif
#define GRAPHICS_IS_SKU(s, f) ((s)->f)
#define GRAPHICS_IS_WA(s, w) ((s)->w)
#endif
|