compute-runtime/shared/test/common/mock_gdi/mock_gdi_gfx_partition.cpp

66 lines
3.3 KiB
C++

/*
* Copyright (C) 2019-2021 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "shared/source/helpers/constants.h"
#include "mock_gdi.h"
extern ADAPTER_INFO gAdapterInfo;
extern uint64_t gGpuAddressSpace;
void InitGfxPartition() {
if (gGpuAddressSpace >= maxNBitValue(48)) {
// Full-range SVM 48 bit
gAdapterInfo.GfxPartition.Standard.Base = 0x0000800400000000;
gAdapterInfo.GfxPartition.Standard.Limit = 0x0000b801ffffffff;
gAdapterInfo.GfxPartition.Standard64KB.Base = 0x0000b80200000000;
gAdapterInfo.GfxPartition.Standard64KB.Limit = 0x0000efffffffffff;
gAdapterInfo.GfxPartition.SVM.Base = 0;
gAdapterInfo.GfxPartition.SVM.Limit = MemoryConstants::maxSvmAddress;
gAdapterInfo.GfxPartition.Heap32[0].Base = 0x0000800000000000;
gAdapterInfo.GfxPartition.Heap32[0].Limit = 0x00008000ffffefff;
gAdapterInfo.GfxPartition.Heap32[1].Base = 0x0000800100000000;
gAdapterInfo.GfxPartition.Heap32[1].Limit = 0x00008001ffffefff;
gAdapterInfo.GfxPartition.Heap32[2].Base = 0x0000800200000000;
gAdapterInfo.GfxPartition.Heap32[2].Limit = 0x00008002ffffefff;
gAdapterInfo.GfxPartition.Heap32[3].Base = 0x0000800300000000;
gAdapterInfo.GfxPartition.Heap32[3].Limit = 0x00008003ffffefff;
} else if (gGpuAddressSpace == maxNBitValue(47)) {
// Full-range SVM 47 bit
gAdapterInfo.GfxPartition.Standard.Base = 0x000001c98a320000;
gAdapterInfo.GfxPartition.Standard.Limit = 0x000005c98a31ffff;
gAdapterInfo.GfxPartition.Standard64KB.Base = 0x000005ce00000000;
gAdapterInfo.GfxPartition.Standard64KB.Limit = 0x000009cdffffffff;
gAdapterInfo.GfxPartition.SVM.Base = 0;
gAdapterInfo.GfxPartition.SVM.Limit = MemoryConstants::maxSvmAddress;
gAdapterInfo.GfxPartition.Heap32[0].Base = 0x000005ca00000000;
gAdapterInfo.GfxPartition.Heap32[0].Limit = 0x000005caffffefff;
gAdapterInfo.GfxPartition.Heap32[1].Base = 0x000005cb00000000;
gAdapterInfo.GfxPartition.Heap32[1].Limit = 0x000005cbffffefff;
gAdapterInfo.GfxPartition.Heap32[2].Base = 0x000005cc00000000;
gAdapterInfo.GfxPartition.Heap32[2].Limit = 0x000005ccffffefff;
gAdapterInfo.GfxPartition.Heap32[3].Base = 0x000005cd00000000;
gAdapterInfo.GfxPartition.Heap32[3].Limit = 0x000005cdffffefff;
} else {
// Limited range
gAdapterInfo.GfxPartition.Standard.Base = 0x0000000100000000;
gAdapterInfo.GfxPartition.Standard.Limit = 0x0000000FFFFFFFFF;
gAdapterInfo.GfxPartition.Standard64KB.Base = 0x0000000100000000;
gAdapterInfo.GfxPartition.Standard64KB.Limit = 0x0000000FFFFFFFFF;
gAdapterInfo.GfxPartition.SVM.Base = 0x0;
gAdapterInfo.GfxPartition.SVM.Limit = 0x0;
gAdapterInfo.GfxPartition.Heap32[0].Base = 0x00001000;
gAdapterInfo.GfxPartition.Heap32[0].Limit = 0xFFFFEFFF;
gAdapterInfo.GfxPartition.Heap32[1].Base = 0x00001000;
gAdapterInfo.GfxPartition.Heap32[1].Limit = 0xFFFFEFFF;
gAdapterInfo.GfxPartition.Heap32[2].Base = 0x00001000;
gAdapterInfo.GfxPartition.Heap32[2].Limit = 0xFFFFEFFF;
gAdapterInfo.GfxPartition.Heap32[3].Base = 0x00001000;
gAdapterInfo.GfxPartition.Heap32[3].Limit = 0xFFFFEFFF;
}
}