/* * Copyright (c) 2018, Intel Corporation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __DEVCONFIG_H__ #define __DEVCONFIG_H__ #include #include #define LOCAL_I915_PARAM_HAS_HUC 42 #define TEST_COUT std::cout << "[ INFO ] " extern const char *g_platformName[]; struct DeviceConfig { uint64_t aperture_size; // DRM_IOCTL_I915_GEM_GET_APERTURE uint32_t DeviceId; // I915_PARAM_CHIPSET_ID uint32_t revision; // I915_PARAM_REVISION union { uint32_t flags; // Should put this before the struct, otherwise, it would be error in libdrm. struct { uint32_t has_exec2 :1; // I915_PARAM_HAS_EXECBUF2 uint32_t has_bsd :1; // I915_PARAM_HAS_BSD uint32_t has_blt :1; // I915_PARAM_HAS_BLT uint32_t has_relaxed_fencing :1; // I915_PARAM_HAS_RELAXED_FENCING uint32_t has_wait_timeout :1; // I915_PARAM_HAS_WAIT_TIMEOUT uint32_t has_llc :1; // I915_PARAM_HAS_LLC uint32_t has_vebox :1; // I915_PARAM_HAS_VEBOX uint32_t has_ext_mmap :1; // I915_PARAM_MMAP_VERSION uint32_t has_exec_softpin :1; // I915_PARAM_HAS_EXEC_SOFTPIN uint32_t has_exec_async :1; // I915_PARAM_HAS_EXEC_ASYNC uint32_t has_bsd2 :1; // I915_PARAM_HAS_BSD uint32_t has_huc :1; // I915_PARAM_HAS_HUC uint32_t reserved :20; }; }; int32_t num_fences_avail; // I915_PARAM_NUM_FENCES_AVAIL int32_t aliasing_ppgtt; // I915_PARAM_HAS_ALIASING_PPGTT int32_t subslice_total; // I915_PARAM_SUBSLICE_TOTAL int32_t eu_total; // I915_PARAM_EU_TOTAL uint64_t edram_reg; } const DeviceConfigTable[] = { #define DEVICECONFIG( aper, devId, rev, flags, fences,ppgtt,subslice, eu, edram_reg ) { aper, devId, rev, flags, fences,ppgtt,subslice, eu, edram_reg}, DEVICECONFIG( 4286468096, 0x191e, 0x7, 0x01ff, 32, 3, 3, 24, 0x0 ) // SKL DEVICECONFIG( 4267114496, 0x5a84, 0xb, 0x03df, 32, 3, 3, 18, 0x0 ) // BXT DEVICECONFIG( 4248690688, 0x1606, 0x9, 0x03ff, 32, 3, 2, 12, 0x0 ) // BDW DEVICECONFIG( 4259069952, 0x5a49, 0x3, 0x03ff, 32, 3, 2, 16, 0x0 ) // CNL DEVICECONFIG( 0, 0x0, 0x0, 0x0, 0, 0, 0, 0, 0x0 ) #undef DEVICECONFIG }; typedef struct DeviceConfig DeviceConfig_t; typedef enum { igfxSKLAKE = 0, igfxBROXTON = 1, igfxBROADWELL = 2, igfxCANNONLAKE = 3, igfx_MAX = 4, } Platform_t; extern const char *g_platformName[]; #endif // __DEVCONFIG_H__