https://svn.code.sf.net/p/edk2/code/trunk/edk2/, which are for MinnowBoard MAX open source project. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: David Wei <david.wei@intel.com> Reviewed-by: Mike Wu <mike.wu@intel.com> Reviewed-by: Hot Tian <hot.tian@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16599 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			111 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
 | 
						|
/*++
 | 
						|
 | 
						|
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_
 |