1*35ffd701SAndroid Build Coastguard Worker /*============================================================================== 2*35ffd701SAndroid Build Coastguard Worker Copyright(c) 2017 Intel Corporation 3*35ffd701SAndroid Build Coastguard Worker 4*35ffd701SAndroid Build Coastguard Worker Permission is hereby granted, free of charge, to any person obtaining a 5*35ffd701SAndroid Build Coastguard Worker copy of this software and associated documentation files(the "Software"), 6*35ffd701SAndroid Build Coastguard Worker to deal in the Software without restriction, including without limitation 7*35ffd701SAndroid Build Coastguard Worker the rights to use, copy, modify, merge, publish, distribute, sublicense, 8*35ffd701SAndroid Build Coastguard Worker and / or sell copies of the Software, and to permit persons to whom the 9*35ffd701SAndroid Build Coastguard Worker Software is furnished to do so, subject to the following conditions: 10*35ffd701SAndroid Build Coastguard Worker 11*35ffd701SAndroid Build Coastguard Worker The above copyright notice and this permission notice shall be included 12*35ffd701SAndroid Build Coastguard Worker in all copies or substantial portions of the Software. 13*35ffd701SAndroid Build Coastguard Worker 14*35ffd701SAndroid Build Coastguard Worker THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 15*35ffd701SAndroid Build Coastguard Worker OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16*35ffd701SAndroid Build Coastguard Worker FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 17*35ffd701SAndroid Build Coastguard Worker THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 18*35ffd701SAndroid Build Coastguard Worker OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 19*35ffd701SAndroid Build Coastguard Worker ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 20*35ffd701SAndroid Build Coastguard Worker OTHER DEALINGS IN THE SOFTWARE. 21*35ffd701SAndroid Build Coastguard Worker ============================================================================*/ 22*35ffd701SAndroid Build Coastguard Worker 23*35ffd701SAndroid Build Coastguard Worker // This header file describes the GT system info data structure and associated 24*35ffd701SAndroid Build Coastguard Worker // types and constants. It is for use by both producers and consumers of GT 25*35ffd701SAndroid Build Coastguard Worker // system info on all OS. 26*35ffd701SAndroid Build Coastguard Worker 27*35ffd701SAndroid Build Coastguard Worker #ifndef __GT_SYS_INFO_H__ 28*35ffd701SAndroid Build Coastguard Worker #define __GT_SYS_INFO_H__ 29*35ffd701SAndroid Build Coastguard Worker 30*35ffd701SAndroid Build Coastguard Worker #include <stdbool.h> 31*35ffd701SAndroid Build Coastguard Worker #include <stdint.h> 32*35ffd701SAndroid Build Coastguard Worker 33*35ffd701SAndroid Build Coastguard Worker #pragma pack(push,1) 34*35ffd701SAndroid Build Coastguard Worker 35*35ffd701SAndroid Build Coastguard Worker // Maximums which bound all supported GT 36*35ffd701SAndroid Build Coastguard Worker #define GT_MAX_SLICE (8) 37*35ffd701SAndroid Build Coastguard Worker #define GT_MAX_SUBSLICE_PER_SLICE (8) 38*35ffd701SAndroid Build Coastguard Worker #define GT_MAX_SUBSLICE_PER_DSS (2) // Currently max value based on Gen12 39*35ffd701SAndroid Build Coastguard Worker #define GT_MAX_DUALSUBSLICE_PER_SLICE (6) // Currently max value based on Gen12LP 40*35ffd701SAndroid Build Coastguard Worker 41*35ffd701SAndroid Build Coastguard Worker typedef struct GT_SUBSLICE_INFO 42*35ffd701SAndroid Build Coastguard Worker { 43*35ffd701SAndroid Build Coastguard Worker bool Enabled; // determine if this SS is enabled. 44*35ffd701SAndroid Build Coastguard Worker uint32_t EuEnabledCount; // Total Count of EU enabled on this SubSlice 45*35ffd701SAndroid Build Coastguard Worker uint32_t EuEnabledMask; // Mask of EUs enabled on this SubSlice 46*35ffd701SAndroid Build Coastguard Worker } GT_SUBSLICE_INFO; 47*35ffd701SAndroid Build Coastguard Worker 48*35ffd701SAndroid Build Coastguard Worker typedef struct GT_DUALSUBSLICE_INFO 49*35ffd701SAndroid Build Coastguard Worker { 50*35ffd701SAndroid Build Coastguard Worker bool Enabled; // Bool to determine if this SS is enabled. 51*35ffd701SAndroid Build Coastguard Worker GT_SUBSLICE_INFO SubSlice[GT_MAX_SUBSLICE_PER_DSS]; // SS details that belong to this DualSubSlice. 52*35ffd701SAndroid Build Coastguard Worker } GT_DUALSUBSLICE_INFO; 53*35ffd701SAndroid Build Coastguard Worker 54*35ffd701SAndroid Build Coastguard Worker typedef struct GT_SLICE_INFO 55*35ffd701SAndroid Build Coastguard Worker { 56*35ffd701SAndroid Build Coastguard Worker bool Enabled; // determine if this slice is enabled. 57*35ffd701SAndroid Build Coastguard Worker GT_SUBSLICE_INFO SubSliceInfo[GT_MAX_SUBSLICE_PER_SLICE]; // SS details that belong to this slice. 58*35ffd701SAndroid Build Coastguard Worker GT_DUALSUBSLICE_INFO DSSInfo[GT_MAX_DUALSUBSLICE_PER_SLICE]; // DSS details that belong to this slice. 59*35ffd701SAndroid Build Coastguard Worker uint32_t SubSliceEnabledCount; // No. of SS enabled in this slice 60*35ffd701SAndroid Build Coastguard Worker uint32_t DualSubSliceEnabledCount; // No. of DSS enabled in this slice 61*35ffd701SAndroid Build Coastguard Worker } GT_SLICE_INFO; 62*35ffd701SAndroid Build Coastguard Worker 63*35ffd701SAndroid Build Coastguard Worker typedef struct GT_VEBOX_INFO 64*35ffd701SAndroid Build Coastguard Worker { 65*35ffd701SAndroid Build Coastguard Worker union VEBoxInstances 66*35ffd701SAndroid Build Coastguard Worker { 67*35ffd701SAndroid Build Coastguard Worker struct VEBitStruct 68*35ffd701SAndroid Build Coastguard Worker { 69*35ffd701SAndroid Build Coastguard Worker uint32_t VEBox0Enabled : 1; // To determine if VEBox0 is enabled 70*35ffd701SAndroid Build Coastguard Worker uint32_t VEBox1Enabled : 1; // To determine if VEBox1 is enabled 71*35ffd701SAndroid Build Coastguard Worker uint32_t VEBox2Enabled : 1; // To determine if VEBox2 is enabled 72*35ffd701SAndroid Build Coastguard Worker uint32_t VEBox3Enabled : 1; // To determine if VEBox3 is enabled 73*35ffd701SAndroid Build Coastguard Worker uint32_t Reserved : 28; // Reserved bits 74*35ffd701SAndroid Build Coastguard Worker } Bits; 75*35ffd701SAndroid Build Coastguard Worker 76*35ffd701SAndroid Build Coastguard Worker uint32_t VEBoxEnableMask; // Union for all VEBox instances. It can be used to know if any of the VEBOX is enabled. 77*35ffd701SAndroid Build Coastguard Worker 78*35ffd701SAndroid Build Coastguard Worker } Instances; 79*35ffd701SAndroid Build Coastguard Worker 80*35ffd701SAndroid Build Coastguard Worker union 81*35ffd701SAndroid Build Coastguard Worker { 82*35ffd701SAndroid Build Coastguard Worker struct 83*35ffd701SAndroid Build Coastguard Worker { 84*35ffd701SAndroid Build Coastguard Worker uint32_t VEBox0 : 1; // Set if VEBox0 supports SFC 85*35ffd701SAndroid Build Coastguard Worker uint32_t VEBox1 : 1; // Set if VEBox1 supports SFC 86*35ffd701SAndroid Build Coastguard Worker uint32_t VEBox2 : 1; // Set if VEBox2 supports SFC 87*35ffd701SAndroid Build Coastguard Worker uint32_t VEBox3 : 1; // Set if VEBox3 supports SFC 88*35ffd701SAndroid Build Coastguard Worker uint32_t Reserved : 28; // Reserved bits 89*35ffd701SAndroid Build Coastguard Worker }SfcSupportedBits; 90*35ffd701SAndroid Build Coastguard Worker 91*35ffd701SAndroid Build Coastguard Worker uint32_t Value; 92*35ffd701SAndroid Build Coastguard Worker 93*35ffd701SAndroid Build Coastguard Worker } SFCSupport; // VEBOX support of Scalar & Format Converter; 94*35ffd701SAndroid Build Coastguard Worker 95*35ffd701SAndroid Build Coastguard Worker uint32_t NumberOfVEBoxEnabled; // Number of bits set among bit 0-3 of VEBoxEnableMask; used on CNL 96*35ffd701SAndroid Build Coastguard Worker 97*35ffd701SAndroid Build Coastguard Worker bool IsValid; // flag to check if VEBoxInfo is valid. 98*35ffd701SAndroid Build Coastguard Worker 99*35ffd701SAndroid Build Coastguard Worker } GT_VEBOX_INFO; 100*35ffd701SAndroid Build Coastguard Worker 101*35ffd701SAndroid Build Coastguard Worker typedef struct GT_VDBOX_INFO 102*35ffd701SAndroid Build Coastguard Worker { 103*35ffd701SAndroid Build Coastguard Worker union VDBoxInstances 104*35ffd701SAndroid Build Coastguard Worker { 105*35ffd701SAndroid Build Coastguard Worker struct VDBitStruct 106*35ffd701SAndroid Build Coastguard Worker { 107*35ffd701SAndroid Build Coastguard Worker uint32_t VDBox0Enabled : 1; // To determine if VDBox0 is enabled 108*35ffd701SAndroid Build Coastguard Worker uint32_t VDBox1Enabled : 1; // To determine if VDBox1 is enabled 109*35ffd701SAndroid Build Coastguard Worker uint32_t VDBox2Enabled : 1; // To determine if VDBox2 is enabled 110*35ffd701SAndroid Build Coastguard Worker uint32_t VDBox3Enabled : 1; // To determine if VDBox3 is enabled 111*35ffd701SAndroid Build Coastguard Worker uint32_t VDBox4Enabled : 1; // To determine if VDBox4 is enabled 112*35ffd701SAndroid Build Coastguard Worker uint32_t VDBox5Enabled : 1; // To determine if VDBox5 is enabled 113*35ffd701SAndroid Build Coastguard Worker uint32_t VDBox6Enabled : 1; // To determine if VDBox6 is enabled 114*35ffd701SAndroid Build Coastguard Worker uint32_t VDBox7Enabled : 1; // To determine if VDBox7 is enabled 115*35ffd701SAndroid Build Coastguard Worker uint32_t Reserved : 24; // Reserved bits 116*35ffd701SAndroid Build Coastguard Worker } Bits; 117*35ffd701SAndroid Build Coastguard Worker 118*35ffd701SAndroid Build Coastguard Worker uint32_t VDBoxEnableMask; // Union for all VDBox instances. It can be used to know if any of the VDBOX is enabled. 119*35ffd701SAndroid Build Coastguard Worker 120*35ffd701SAndroid Build Coastguard Worker } Instances; 121*35ffd701SAndroid Build Coastguard Worker 122*35ffd701SAndroid Build Coastguard Worker union 123*35ffd701SAndroid Build Coastguard Worker { 124*35ffd701SAndroid Build Coastguard Worker struct 125*35ffd701SAndroid Build Coastguard Worker { 126*35ffd701SAndroid Build Coastguard Worker uint32_t VDBox0 : 1; // Set if VDBox0 supports SFC 127*35ffd701SAndroid Build Coastguard Worker uint32_t VDBox1 : 1; // Set if VDBox1 supports SFC 128*35ffd701SAndroid Build Coastguard Worker uint32_t VDBox2 : 1; // Set if VDBox2 supports SFC 129*35ffd701SAndroid Build Coastguard Worker uint32_t VDBox3 : 1; // Set if VDBox3 supports SFC 130*35ffd701SAndroid Build Coastguard Worker uint32_t VDBox4 : 1; // Set if VDBox4 supports SFC 131*35ffd701SAndroid Build Coastguard Worker uint32_t VDBox5 : 1; // Set if VDBox5 supports SFC 132*35ffd701SAndroid Build Coastguard Worker uint32_t VDBox6 : 1; // Set if VDBox6 supports SFC 133*35ffd701SAndroid Build Coastguard Worker uint32_t VDBox7 : 1; // Set if VDBox7 supports SFC 134*35ffd701SAndroid Build Coastguard Worker uint32_t Reserved : 24; // Reserved bits 135*35ffd701SAndroid Build Coastguard Worker }SfcSupportedBits; 136*35ffd701SAndroid Build Coastguard Worker 137*35ffd701SAndroid Build Coastguard Worker uint32_t Value; 138*35ffd701SAndroid Build Coastguard Worker 139*35ffd701SAndroid Build Coastguard Worker } SFCSupport; // VDBOX support of Scalar & Format Converter; 140*35ffd701SAndroid Build Coastguard Worker 141*35ffd701SAndroid Build Coastguard Worker uint32_t NumberOfVDBoxEnabled; // Number of bits set among bit 0-7 of VDBoxEnableMask; 142*35ffd701SAndroid Build Coastguard Worker 143*35ffd701SAndroid Build Coastguard Worker bool IsValid; // flag to check if VDBoxInfo is valid. 144*35ffd701SAndroid Build Coastguard Worker 145*35ffd701SAndroid Build Coastguard Worker } GT_VDBOX_INFO; 146*35ffd701SAndroid Build Coastguard Worker typedef struct GT_CCS_INFO 147*35ffd701SAndroid Build Coastguard Worker { 148*35ffd701SAndroid Build Coastguard Worker union CCSInstances 149*35ffd701SAndroid Build Coastguard Worker { 150*35ffd701SAndroid Build Coastguard Worker struct CCSBitStruct 151*35ffd701SAndroid Build Coastguard Worker { 152*35ffd701SAndroid Build Coastguard Worker uint32_t CCS0Enabled : 1; // To determine if CCS0 is enabled 153*35ffd701SAndroid Build Coastguard Worker uint32_t CCS1Enabled : 1; 154*35ffd701SAndroid Build Coastguard Worker uint32_t CCS2Enabled : 1; 155*35ffd701SAndroid Build Coastguard Worker uint32_t CCS3Enabled : 1; 156*35ffd701SAndroid Build Coastguard Worker uint32_t Reserved : 28; // Reserved bits 157*35ffd701SAndroid Build Coastguard Worker } Bits; 158*35ffd701SAndroid Build Coastguard Worker 159*35ffd701SAndroid Build Coastguard Worker uint32_t CCSEnableMask; // Union for all CCS instances. It can be used to know which CCS is enabled. 160*35ffd701SAndroid Build Coastguard Worker 161*35ffd701SAndroid Build Coastguard Worker } Instances; 162*35ffd701SAndroid Build Coastguard Worker 163*35ffd701SAndroid Build Coastguard Worker uint32_t NumberOfCCSEnabled; // Number of bits set among bit 0-3 of CCSEnableMask; 164*35ffd701SAndroid Build Coastguard Worker 165*35ffd701SAndroid Build Coastguard Worker bool IsValid; // flag to check if CCSInfo is valid. 166*35ffd701SAndroid Build Coastguard Worker 167*35ffd701SAndroid Build Coastguard Worker } GT_CCS_INFO; 168*35ffd701SAndroid Build Coastguard Worker 169*35ffd701SAndroid Build Coastguard Worker typedef struct GT_MULTI_TILE_ARCH_INFO 170*35ffd701SAndroid Build Coastguard Worker { 171*35ffd701SAndroid Build Coastguard Worker // Total Count of Tiles enabled 172*35ffd701SAndroid Build Coastguard Worker uint8_t TileCount; 173*35ffd701SAndroid Build Coastguard Worker 174*35ffd701SAndroid Build Coastguard Worker // Mask of all enabled Tiles 175*35ffd701SAndroid Build Coastguard Worker union 176*35ffd701SAndroid Build Coastguard Worker { 177*35ffd701SAndroid Build Coastguard Worker struct 178*35ffd701SAndroid Build Coastguard Worker { 179*35ffd701SAndroid Build Coastguard Worker uint8_t Tile0 : 1; 180*35ffd701SAndroid Build Coastguard Worker uint8_t Tile1 : 1; 181*35ffd701SAndroid Build Coastguard Worker uint8_t Tile2 : 1; 182*35ffd701SAndroid Build Coastguard Worker uint8_t Tile3 : 1; 183*35ffd701SAndroid Build Coastguard Worker uint8_t Reserved : 4; 184*35ffd701SAndroid Build Coastguard Worker }; 185*35ffd701SAndroid Build Coastguard Worker 186*35ffd701SAndroid Build Coastguard Worker uint8_t TileMask; 187*35ffd701SAndroid Build Coastguard Worker }; 188*35ffd701SAndroid Build Coastguard Worker 189*35ffd701SAndroid Build Coastguard Worker // flag to check if MultiTileArchInfo has valid data or not 190*35ffd701SAndroid Build Coastguard Worker bool IsValid; 191*35ffd701SAndroid Build Coastguard Worker 192*35ffd701SAndroid Build Coastguard Worker } GT_MULTI_TILE_ARCH_INFO; 193*35ffd701SAndroid Build Coastguard Worker 194*35ffd701SAndroid Build Coastguard Worker typedef struct GT_SQIDI_INFO 195*35ffd701SAndroid Build Coastguard Worker { 196*35ffd701SAndroid Build Coastguard Worker uint32_t NumberofSQIDI; // Total no. of enabled SQIDIs. 197*35ffd701SAndroid Build Coastguard Worker uint32_t NumberofDoorbellPerSQIDI; // Total no. of doorbells available per SQIDI unit 198*35ffd701SAndroid Build Coastguard Worker }GT_SQIDI_INFO; 199*35ffd701SAndroid Build Coastguard Worker 200*35ffd701SAndroid Build Coastguard Worker typedef union _GT_CACHE_TYPES 201*35ffd701SAndroid Build Coastguard Worker { 202*35ffd701SAndroid Build Coastguard Worker struct 203*35ffd701SAndroid Build Coastguard Worker { 204*35ffd701SAndroid Build Coastguard Worker uint32_t L3 : 1; 205*35ffd701SAndroid Build Coastguard Worker uint32_t LLC : 1; 206*35ffd701SAndroid Build Coastguard Worker uint32_t eDRAM : 1; 207*35ffd701SAndroid Build Coastguard Worker uint32_t Reserved : 29; 208*35ffd701SAndroid Build Coastguard Worker }; 209*35ffd701SAndroid Build Coastguard Worker 210*35ffd701SAndroid Build Coastguard Worker uint32_t CacheTypeMask; 211*35ffd701SAndroid Build Coastguard Worker 212*35ffd701SAndroid Build Coastguard Worker } GT_CACHE_TYPES; 213*35ffd701SAndroid Build Coastguard Worker 214*35ffd701SAndroid Build Coastguard Worker typedef struct GT_SYSTEM_INFO 215*35ffd701SAndroid Build Coastguard Worker { 216*35ffd701SAndroid Build Coastguard Worker // These fields should always hold valid values 217*35ffd701SAndroid Build Coastguard Worker uint32_t EUCount; // Total no. of enabled EUs 218*35ffd701SAndroid Build Coastguard Worker uint32_t ThreadCount; // total no of system threads available 219*35ffd701SAndroid Build Coastguard Worker uint32_t SliceCount; // Total no. of enabled slices 220*35ffd701SAndroid Build Coastguard Worker uint32_t SubSliceCount; // Total no. of enabled subslices 221*35ffd701SAndroid Build Coastguard Worker uint32_t DualSubSliceCount; // Total no. of enabled dualsubslices 222*35ffd701SAndroid Build Coastguard Worker uint64_t L3CacheSizeInKb; // Total L3 cache size in kilo bytes 223*35ffd701SAndroid Build Coastguard Worker uint64_t LLCCacheSizeInKb; // Total LLC cache size in kilo bytes 224*35ffd701SAndroid Build Coastguard Worker uint64_t EdramSizeInKb; // Total EDRAM size in kilo bytes 225*35ffd701SAndroid Build Coastguard Worker uint32_t L3BankCount; // Total L3 banks across all slices. This is not bank count per slice. 226*35ffd701SAndroid Build Coastguard Worker uint32_t MaxFillRate; // Fillrate with Alphablend (in Pix/Clk) 227*35ffd701SAndroid Build Coastguard Worker uint32_t EuCountPerPoolMax; // Max EU count per pool 228*35ffd701SAndroid Build Coastguard Worker uint32_t EuCountPerPoolMin; // Min EU count per pool 229*35ffd701SAndroid Build Coastguard Worker 230*35ffd701SAndroid Build Coastguard Worker uint32_t TotalVsThreads; // Total threads in VS 231*35ffd701SAndroid Build Coastguard Worker uint32_t TotalHsThreads; // Total threads in HS 232*35ffd701SAndroid Build Coastguard Worker uint32_t TotalDsThreads; // Total threads in DS 233*35ffd701SAndroid Build Coastguard Worker uint32_t TotalGsThreads; // Total threads in GS 234*35ffd701SAndroid Build Coastguard Worker uint32_t TotalPsThreadsWindowerRange; // Total threads in PS Windower Range 235*35ffd701SAndroid Build Coastguard Worker 236*35ffd701SAndroid Build Coastguard Worker uint32_t TotalVsThreads_Pocs; // Total threads in VS for POCS 237*35ffd701SAndroid Build Coastguard Worker 238*35ffd701SAndroid Build Coastguard Worker // Note: The CSR size requirement is not clear at this moment. Till then the driver will set 239*35ffd701SAndroid Build Coastguard Worker // the maximum size that should be sufficient for all platform SKUs. 240*35ffd701SAndroid Build Coastguard Worker uint32_t CsrSizeInMb; // Total size that driver needs to allocate for CSR. 241*35ffd701SAndroid Build Coastguard Worker 242*35ffd701SAndroid Build Coastguard Worker /*------------------------------------*/ 243*35ffd701SAndroid Build Coastguard Worker // Below fields are required for proper allocation of scratch/private space for threads execution. 244*35ffd701SAndroid Build Coastguard Worker // Threads scratch space has to be allocated based on native die config. So allocation has to be 245*35ffd701SAndroid Build Coastguard Worker // done even for unfused or non-enabled slices/subslices/EUs. Since H/W doesn't provide us a way to know 246*35ffd701SAndroid Build Coastguard Worker // about the native die config S/W will allocate based on max EU/S/SS. 247*35ffd701SAndroid Build Coastguard Worker uint32_t MaxEuPerSubSlice; // Max available EUs per sub-slice. 248*35ffd701SAndroid Build Coastguard Worker uint32_t MaxSlicesSupported; // Max slices this platfrom can have. 249*35ffd701SAndroid Build Coastguard Worker uint32_t MaxSubSlicesSupported; // Max total sub-slices this platform can have (not per slice) 250*35ffd701SAndroid Build Coastguard Worker uint32_t MaxDualSubSlicesSupported; // Max total dual sub-slices this platform can have (not per slice) 251*35ffd701SAndroid Build Coastguard Worker /*------------------------------------*/ 252*35ffd701SAndroid Build Coastguard Worker 253*35ffd701SAndroid Build Coastguard Worker // Flag to determine if hashing is enabled. If enabled then one of the L3 banks will be disabled. 254*35ffd701SAndroid Build Coastguard Worker // As a result 'L3BankCount' will be reduced by 1 bank during system info derivation routine. 255*35ffd701SAndroid Build Coastguard Worker // Note: Only expected only in CNL (limited SKUs). 256*35ffd701SAndroid Build Coastguard Worker bool IsL3HashModeEnabled; 257*35ffd701SAndroid Build Coastguard Worker 258*35ffd701SAndroid Build Coastguard Worker // VEBox/VDBox info 259*35ffd701SAndroid Build Coastguard Worker GT_VDBOX_INFO VDBoxInfo; // VDBoxInfo provides details(enabled/disabled) of all VDBox instances. 260*35ffd701SAndroid Build Coastguard Worker GT_VEBOX_INFO VEBoxInfo; // VEBoxInfo provides details(enabled/disabled) of all VEBox instances. 261*35ffd701SAndroid Build Coastguard Worker 262*35ffd701SAndroid Build Coastguard Worker // SliceInfo provides the detailed breakdown of the Slice/Subslice/EU configuration. It is useful 263*35ffd701SAndroid Build Coastguard Worker // for various WA that depend on the specific SSEU components enabled or disabled, but it is not 264*35ffd701SAndroid Build Coastguard Worker // considered critically important to driver function at this time and may not be validly populated 265*35ffd701SAndroid Build Coastguard Worker // on all platforms. IsDynamicallyPopulated indicates if SliceInfo has been validly populated. 266*35ffd701SAndroid Build Coastguard Worker // IsDynamicallyPopulated only applies to SliceInfo. 267*35ffd701SAndroid Build Coastguard Worker // TODO: Rename IsDynamicallyPopulated to something like SliceInfoIsValid to help clarify its 268*35ffd701SAndroid Build Coastguard Worker // purpose. At the moment we are constrained by USC not to make any changes to the GT System 269*35ffd701SAndroid Build Coastguard Worker // Info interface which require USC changes. USC currently references IsDynamicallyPopulated. 270*35ffd701SAndroid Build Coastguard Worker GT_SLICE_INFO SliceInfo[GT_MAX_SLICE]; 271*35ffd701SAndroid Build Coastguard Worker bool IsDynamicallyPopulated; 272*35ffd701SAndroid Build Coastguard Worker 273*35ffd701SAndroid Build Coastguard Worker //SqidiInfo provides the detailed information for number of SQIDIs supported in GT. 274*35ffd701SAndroid Build Coastguard Worker //It also provides total no. of doorbells available per SQIDI unit. 275*35ffd701SAndroid Build Coastguard Worker GT_SQIDI_INFO SqidiInfo; 276*35ffd701SAndroid Build Coastguard Worker 277*35ffd701SAndroid Build Coastguard Worker uint32_t ReservedCCSWays; // Reserved CCS ways provides value of reserved L3 ways for CCS when CCS is enabled. 278*35ffd701SAndroid Build Coastguard Worker // This is a hardcoded value as suggested by HW. No MMIO read is needed for same. 279*35ffd701SAndroid Build Coastguard Worker GT_CCS_INFO CCSInfo; // CCSInfo provides details(enabled/disabled) of all CCS instances. 280*35ffd701SAndroid Build Coastguard Worker GT_MULTI_TILE_ARCH_INFO MultiTileArchInfo; // MultiTileArchInfo provides details(enabled/disabled) of GT Tiles in case of Multi Tile Architecture SKUs 281*35ffd701SAndroid Build Coastguard Worker 282*35ffd701SAndroid Build Coastguard Worker uint32_t NumThreadsPerEu; // Number of threads per EU. 283*35ffd701SAndroid Build Coastguard Worker GT_CACHE_TYPES CacheTypes; // Types of caches available on system (L3/LLC/eDRAM). 284*35ffd701SAndroid Build Coastguard Worker uint32_t MaxVECS; // Max VECS instances. 285*35ffd701SAndroid Build Coastguard Worker uint32_t MemoryType; // GT_MEMORY_TYPES - type of memory supported in current platform 286*35ffd701SAndroid Build Coastguard Worker uint32_t SLMSizeInKb; // SLM Size 287*35ffd701SAndroid Build Coastguard Worker } GT_SYSTEM_INFO, *PGT_SYSTEM_INFO; 288*35ffd701SAndroid Build Coastguard Worker 289*35ffd701SAndroid Build Coastguard Worker #pragma pack(pop) 290*35ffd701SAndroid Build Coastguard Worker 291*35ffd701SAndroid Build Coastguard Worker #endif //__GT_SYS_INFO_H__ 292