/** @file
Policy definition for Internal Graphics Config Block (PostMem)
Copyright (c) 2019 Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _GRAPHICS_PEI_CONFIG_H_
#define _GRAPHICS_PEI_CONFIG_H_
#pragma pack(push, 1)
#define GRAPHICS_PEI_CONFIG_REVISION 4
#define DDI_DEVICE_NUMBER 4
//
// DDI defines
//
typedef enum {
DdiDisable = 0x00,
DdiDdcEnable = 0x01,
DdiTbtLsxEnable = 0x02,
} DDI_DDC_TBT_VAL;
typedef enum {
DdiHpdDisable = 0x00,
DdiHpdEnable = 0x01,
} DDI_HPD_VAL;
typedef enum {
DdiPortADisabled = 0x00,
DdiPortAEdp = 0x01,
DdiPortAMipiDsi = 0x02,
} DDI_PORTA_SETTINGS;
/**
This structure configures the Native GPIOs for DDI port per VBT settings.
**/
typedef struct {
UINT8 DdiPortEdp; /// The setting of eDP port, this settings must match VBT's settings. 0- Disable, 1- Enable
UINT8 DdiPortBHpd; /// The HPD setting of DDI Port B, this settings must match VBT's settings. 0- Disable, 1- Enable
UINT8 DdiPortCHpd; /// The HPD setting of DDI Port C, this settings must match VBT's settings. 0- Disable, 1- Enable
UINT8 DdiPortDHpd; /// The HPD setting of DDI Port D, this settings must match VBT's settings. 0- Disable, 1- Enable
UINT8 DdiPortFHpd; /// The HPD setting of DDI Port F, this settings must match VBT's settings. 0- Disable, 1- Enable
UINT8 DdiPortBDdc; /// The DDC setting of DDI Port B, this settings must match VBT's settings. 0- Disable, 1- Enable
UINT8 DdiPortCDdc; /// The DDC setting of DDI Port C, this settings must match VBT's settings. 0- Disable, 1- Enable
UINT8 DdiPortDDdc; /// The DDC setting of DDI Port D, this settings must match VBT's settings. 0- Disable, 1- Enable
UINT8 DdiPortFDdc; /// The DDC setting of DDI Port F, this settings must match VBT's settings. 0- Disable, 1- Enable
UINT8 Rsvd[3]; ///< Reserved for 4 bytes alignment
} DDI_CONFIGURATION;
/**
This configuration block is to configure IGD related variables used in PostMem PEI.
If Intel Gfx Device is not supported, all policies can be ignored.
Revision 1:
- Initial version.
Revision 2:
- Added SkipS3CdClockInit.
Revision 3:
- Added DeltaT12PowerCycleDelay, BltBufferAddress, BltBufferSize.
Revision 4:
- Deprecated DeltaT12PowerCycleDelay.
**/
typedef struct {
CONFIG_BLOCK_HEADER Header; ///< Offset 0-27 Config Block Header
UINT32 RenderStandby : 1; ///< Offset 28:0 :(Test) This field is used to enable or disable RC6 (Render Standby): 0=FALSE, 1=TRUE
UINT32 PmSupport : 1; ///< Offset 28:1 :(Test) IGD PM Support TRUE/FALSE: 0=FALSE, 1=TRUE
UINT32 PavpEnable : 1; ///< Offset 28:2 :IGD PAVP TRUE/FALSE: 0=FALSE, 1=TRUE
/**
Offset 28:3
CdClock Frequency select\n
CFL\n
0 = 337.5 Mhz, 1 = 450 Mhz,\n
2 = 540 Mhz, 3 = 675 Mhz,\n
**/
UINT32 CdClock : 3;
UINT32 PeiGraphicsPeimInit: 1; ///< Offset 28:6 : This policy is used to enable/disable Intel Gfx PEIM.0- Disable, 1- Enable
UINT32 CdynmaxClampEnable : 1; ///< Offset 28:7 : This policy is used to enable/disable CDynmax Clamping Feature (CCF) 1- Enable, 0- Disable
UINT32 GtFreqMax : 8; ///< Offset 28:8 : (Test) Max GT frequency limited by user in multiples of 50MHz: Default value which indicates normal frequency is 0xFF
UINT32 DisableTurboGt : 1; ///< Offset 28:9 : This policy is used to enable/disable DisableTurboGt 0- Disable, 1- Enable
UINT32 RsvdBits0 : 15; ///< Offser 28:15 :Reserved for future use
VOID* LogoPtr; ///< Offset 32 Address of Intel Gfx PEIM Logo to be displayed
UINT32 LogoSize; ///< Offset 36 Intel Gfx PEIM Logo Size
VOID* GraphicsConfigPtr; ///< Offset 40 Address of the Graphics Configuration Table
DDI_CONFIGURATION DdiConfiguration; ///< Offset 44 DDI configuration, need to match with VBT settings.
UINT32 SkipS3CdClockInit : 1; ///< Offset 56 SKip full CD clock initialization being done during S3 resume.0- Disable<\b>, 1- Enable
UINT32 ReservedBits : 31; ///< Offset 56: 1 : Reserved for future use.
UINT16 DeltaT12PowerCycleDelay; ///< Offset 60 @deprecated 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 62 Reserved for future use.
VOID* BltBufferAddress; ///< Offset 64 Address of Blt buffer for PEIM Logo use
UINT32 BltBufferSize; ///< Offset 68 The size for Blt Buffer, calculating by PixelWidth * PixelHeight * 4 bytes (the size of EFI_GRAPHICS_OUTPUT_BLT_PIXEL)
} GRAPHICS_PEI_CONFIG;
#pragma pack(pop)
#endif // _GRAPHICS_PEI_CONFIG_H_