/** @file
Policy definition for Internal Graphics Config Block (PreMem)
Copyright (c) 2019 Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _GRAPHICS_PEI_PREMEM_CONFIG_H_
#define _GRAPHICS_PEI_PREMEM_CONFIG_H_
#pragma pack(push, 1)
#define GRAPHICS_PEI_PREMEM_CONFIG_REVISION 2
/**
This Configuration block is to configure GT related PreMem data/variables.\n
Revision 1:
- Initial version.
Revision 2:
- Added DeltaT12PowerCycleDelayPreMem.
**/
typedef struct {
CONFIG_BLOCK_HEADER Header; ///< Offset 0-27 Config Block Header
/**
Offset 28:0
Selection of the primary display device: 0=iGFX, 1=PEG, 2=PCIe Graphics on PCH, 3=AUTO, 4=Switchable Graphics\n
When AUTO mode selected, the priority of display devices is: PCIe Graphics on PCH > PEG > iGFX
**/
UINT32 PrimaryDisplay : 3;
/**
Offset 28:3
Intel Gfx Support. It controls enabling/disabling iGfx device.
When AUTO mode selected, iGFX will be turned off when external graphics detected.
If FALSE, all other polices can be ignored.
2 = AUTO;
0 = FALSE;
1 = TRUE.
**/
UINT32 InternalGraphics : 2;
/**
Offset 28:5
Pre-allocated memory for iGFX\n
0 = 0MB,1 or 247 = 32MB,\n
2 = 64MB,\n
240 = 4MB, 241 = 8MB,\n
242 = 12MB, 243 = 16MB,\n
244 = 20MB, 245 = 24MB,\n
246 = 28MB, 248 = 36MB,\n
249 = 40MB, 250 = 44MB,\n
251 = 48MB, 252 = 52MB,\n
253 = 56MB, 254 = 60MB,\n
Note: enlarging pre-allocated memory for iGFX may need to reduce MmioSize because of 4GB boundary limitation
**/
UINT32 IgdDvmt50PreAlloc : 8;
UINT32 PanelPowerEnable : 1; ///< Offset 28:13 :(Test) Control for enabling/disabling VDD force bit (Required only for early enabling of eDP panel): 0=FALSE, 1=TRUE
UINT32 ApertureSize : 7; ///< Offser 28:14 :Graphics aperture size (256MB is the recommended size as per BWG) : 0=128MB, 1=256MB, 3=512MB, 7=1024MB, 15=2048MB.
UINT32 GtPsmiSupport : 1; ///< Offser 28:21 :PSMI support On/Off: 0=FALSE, 1=TRUE
UINT32 PsmiRegionSize : 3; ///< Offser 28:22 :Psmi region size: 0=32MB, 1=288MB, 2=544MB, 3=800MB, 4=1056MB
UINT32 RsvdBits0 : 7; ///< Offser 28:25 :Reserved for future use
UINT32 GttMmAdr; ///< Offset 32 Temp Address of System Agent GTTMMADR : Default is 0xCF000000< / b>
UINT16 GttSize; ///< Offset 36 Selection of iGFX GTT Memory size: 1=2MB, 2=4MB, 3=8MB
UINT8 Rsvd1[2]; ///< Offset 38 Reserved for DWORD alignment
UINT32 GmAdr; ///< Offset 40 Temp Address of System Agent GMADR : Default is 0xD0000000< / b>
UINT16 DeltaT12PowerCycleDelayPreMem; ///< Offset 44 Power Cycle Delay required for eDP as per VESA standard.0 - 0 ms<\b>, 0xFFFF - Auto calculate to max 500 ms
UINT8 Reserved[2]; ///< Offset 46 Reserved for future use.
} GRAPHICS_PEI_PREMEM_CONFIG;
#pragma pack(pop)
#endif // _GRAPHICS_PEI_PREMEM_CONFIG_H_