| /*++ | |
| Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved | |
| This program and the accompanying materials are licensed and made available under | |
| the terms and conditions of the BSD License that accompanies this distribution. | |
| The full text of the license may be found at | |
| http://opensource.org/licenses/bsd-license.php. | |
| THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
| WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
| Module Name: | |
| VlvPolicy.h | |
| Abstract: | |
| Interface definition details between ValleyView MRC and platform drivers during PEI phase. | |
| --*/ | |
| #ifndef _VLV_POLICY_PPI_H_ | |
| #define _VLV_POLICY_PPI_H_ | |
| // | |
| // MRC Policy provided by platform for PEI phase {7D84B2C2-22A1-4372-B12C-EBB232D3A6A3} | |
| // | |
| #define VLV_POLICY_PPI_GUID \ | |
| { \ | |
| 0x7D84B2C2, 0x22A1, 0x4372, 0xB1, 0x2C, 0xEB, 0xB2, 0x32, 0xD3, 0xA6, 0xA3 \ | |
| } | |
| // | |
| // Extern the GUID for protocol users. | |
| // | |
| extern EFI_GUID gVlvPolicyPpiGuid; | |
| // | |
| // PPI revision number | |
| // Any backwards compatible changes to this PPI will result in an update in the revision number | |
| // Major changes will require publication of a new PPI | |
| // | |
| #define MRC_PLATFORM_POLICY_PPI_REVISION 1 | |
| #ifndef MAX_SOCKETS | |
| #define MAX_SOCKETS 4 | |
| #endif | |
| #define S3_TIMING_DATA_LEN 9 | |
| #define S3_READ_TRAINING_DATA_LEN 16 | |
| #define S3_WRITE_TRAINING_DATA_LEN 12 | |
| #ifndef S3_RESTORE_DATA_LEN | |
| #define S3_RESTORE_DATA_LEN (S3_TIMING_DATA_LEN + S3_READ_TRAINING_DATA_LEN + S3_WRITE_TRAINING_DATA_LEN) | |
| #endif // S3_RESTORE_DATA_LEN | |
| #pragma pack(1) | |
| // | |
| // MRC Platform Data Structure | |
| // | |
| typedef struct { | |
| UINT8 SpdAddressTable[MAX_SOCKETS]; | |
| UINT8 TSonDimmSmbusAddress[MAX_SOCKETS]; | |
| UINT16 SmbusBar; | |
| UINT32 IchRcba; | |
| UINT32 WdbBaseAddress; // Write Data Buffer area (WC caching mode) | |
| UINT32 WdbRegionSize; | |
| UINT32 SmBusAddress; | |
| UINT8 UserBd; | |
| UINT8 PlatformType; | |
| UINT8 FastBoot; | |
| UINT8 DynSR; | |
| } VLV_PLATFORM_DATA; | |
| typedef struct { | |
| UINT16 MmioSize; | |
| UINT16 GttSize; | |
| UINT8 IgdDvmt50PreAlloc; | |
| UINT8 PrimaryDisplay; | |
| UINT8 PAVPMode; | |
| UINT8 ApertureSize; | |
| } GT_CONFIGURATION; | |
| typedef struct { | |
| UINT8 EccSupport; | |
| UINT16 DdrFreqLimit; | |
| UINT8 MaxTolud; | |
| } MEMORY_CONFIGURATION; | |
| // | |
| // MRC Platform Policiy PPI | |
| // | |
| typedef struct _VLV_POLICY_PPI { | |
| UINT8 Revision; | |
| VLV_PLATFORM_DATA PlatformData; | |
| GT_CONFIGURATION GtConfig; | |
| MEMORY_CONFIGURATION MemConfig; | |
| VOID *S3DataPtr; // was called MRC_PARAMS_SAVE_RESTORE | |
| UINT8 ISPEn; //ISP (IUNIT) Device Enabled | |
| UINT8 ISPPciDevConfig; //ISP (IUNIT) Device Config: 0->B0/D2/F0 for Window OS, 1->B0D3/F0 for Linux OS | |
| } VLV_POLICY_PPI; | |
| #pragma pack() | |
| #endif // _VLV_POLICY_PPI_H_ |