summaryrefslogtreecommitdiff
path: root/Include/PPI/NBPPI.h
diff options
context:
space:
mode:
Diffstat (limited to 'Include/PPI/NBPPI.h')
-rw-r--r--Include/PPI/NBPPI.h395
1 files changed, 395 insertions, 0 deletions
diff --git a/Include/PPI/NBPPI.h b/Include/PPI/NBPPI.h
new file mode 100644
index 0000000..1ba73bc
--- /dev/null
+++ b/Include/PPI/NBPPI.h
@@ -0,0 +1,395 @@
+//*************************************************************************
+//*************************************************************************
+//** **
+//** (C)Copyright 1985-2011, American Megatrends, Inc. **
+//** **
+//** All Rights Reserved. **
+//** **
+//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
+//** **
+//** Phone: (770)-246-8600 **
+//** **
+//*************************************************************************
+//*************************************************************************
+
+//*************************************************************************
+// $Header: /Alaska/BIN/Chipset/Intel/NorthBridge/Haswell/Intel SystemAgent NB Chipset/NB PPI/NBPPI.h 6 4/08/13 8:13a Ireneyang $
+//
+// $Revision: 6 $
+//
+// $Date: 4/08/13 8:13a $
+//*************************************************************************
+// Revision History
+// ----------------
+// $Log: /Alaska/BIN/Chipset/Intel/NorthBridge/Haswell/Intel SystemAgent NB Chipset/NB PPI/NBPPI.h $
+//
+// 6 4/08/13 8:13a Ireneyang
+// Update SA RC to 1.4.0.0.
+//
+// 5 4/08/13 7:22a Ireneyang
+// Update SA RC to 1.4.0.0.
+//
+// 4 4/01/13 11:49p Ireneyang
+// [TAG] None
+// [Severity] Improvement
+// [Description] Reduce boot time through PEG.
+// [Files] NB.mak; NBDxe.c; NBPEI.c; NBPPI.h; Sa.asl;
+// PcieComplex.c; GraphicsInit.c; PciExpressInit.c;
+//
+// 3 12/03/12 5:53a Jeffch
+// [TAG] None
+// [Category] Improvement
+// [Description] optimize DetectNonComplaint function.
+// [Description] NBPEI.c, NBPPI.h, NBDxe.c
+//
+// 2 6/14/12 4:29a Yurenlai
+// [TAG] None
+// [Category] Improvement
+// [Description] Add Notify BeforeMrc and AfterMrc.
+// [Description] NBPEI.c, NBPPI.h, MemoryInit.c
+//
+// 1 2/08/12 4:35a Yurenlai
+// Intel Haswell/NB eChipset initially releases.
+//
+//*************************************************************************
+//<AMI_FHDR_START>
+//
+// Name: NBPPI.h
+//
+// Description: This header file contains the PPI definition for the NB.
+//
+//<AMI_FHDR_END>
+//*************************************************************************
+
+#ifndef FILE_PEI_NBINIT_POLICY_PPI_H_
+#define FILE_PEI_NBINIT_POLICY_PPI_H_
+
+#include "HOB.h"
+
+// {9CE4D938-9C87-41d0-9E55-34923FAF8B4F}
+#define AMI_PEI_NBINIT_POLICY_PPI_GUID \
+ {0x9ce4d938, 0x9c87, 0x41d0, 0x9e, 0x55, 0x34, 0x92, 0x3f, 0xaf, 0x8b, 0x4f}
+
+// {E813E116-C099-4D21-9c34-A552D5E9A5D0}
+#define AMI_PEI_MRC_DEFAULT_GUID \
+ {0xe813e116, 0xc099, 0x4d21, 0x9c, 0x34, 0xa5, 0x52, 0xd5, 0xe9, 0xa5, 0xd0}
+
+// {71A8917B-0891-4E27-8A73-A9B334840393}
+#define AMI_PEI_BEFORE_MRC_GUID \
+ {0x71a8917b, 0x891, 0x4e27, 0x8a, 0x73, 0xa9, 0xb3, 0x34, 0x84, 0x3, 0x93}
+
+// {64C96700-6B4C-480C-A3E1-B8BDE8F602B2}
+#define AMI_PEI_AFTER_MRC_GUID \
+ {0x64c96700, 0x6b4c, 0x480c, 0xa3, 0xe1, 0xb8, 0xbd, 0xe8, 0xf6, 0x2, 0xb2}
+
+// {633194BE-1697-11E1-B5F0-2CB24824019B}
+#define AMI_PEI_END_OF_MRC_GUID \
+ {0x633194be, 0x1697, 0x11e1, 0xb5, 0xf0, 0x2c, 0xb2, 0x48, 0x24, 0x01, 0x9b}
+
+// {9F58E424-B96B-45A5-ADDC-D2FE394A99D9}
+#define AMI_PEI_END_MEMORY_DETECT_GUID \
+ {0x9f58e424, 0xb96b, 0x45a5, 0xad, 0xdc, 0xd2, 0xfe, 0x39, 0x4a, 0x99, 0xd9}
+
+// {584CC99F-4BE8-43d1-A45A-933DC39479FC}
+#define AMI_PEI_SET_NB_SUBID_PPI_GUID \
+ {0x584cc99f, 0x4be8, 0x43d1, 0xa4, 0x5a, 0x93, 0x3d, 0xc3, 0x94, 0x79, 0xfc}
+
+// {1F0F049E-3A68-4c97-865A-BC5EED7920E7}
+#define AMI_PEI_NB_CPU_ONLY_RESET_PPI_GUID \
+ {0x1f0f049e, 0x3a68, 0x4c97, 0x86, 0x5a, 0xbc, 0x5e, 0xed, 0x79, 0x20, 0xe7}
+
+// {584CC99F-4BE8-43d1-A45A-933DC39479FC}
+#define AMI_PEI_NB_CUSTOM_PPI_GUID \
+ {0x584cc99f, 0x4be8, 0x43d1, 0xa4, 0x5a, 0x93, 0x3d, 0xc3, 0x94, 0x79, 0xfc}
+
+//-MrcErrorInfo Example
+#ifndef GUID_VARIABLE_DECLARATION
+#define GUID_VARIABLE_DECLARATION(Variable, Guid) extern EFI_GUID Variable
+#endif
+//-MrcErrorInfo Example end
+GUID_VARIABLE_DECLARATION(gAmiPeiNBCustomPpiGuid, AMI_PEI_NB_CUSTOM_PPI_GUID);
+
+#define PEI_MEMORY_RANGE_OPTION_ROM UINT32
+
+#define PEI_MR_OPTION_ROM_ALL 0xFFFFFFFF
+#define PEI_MR_OPTION_ROM_NONE 0x00000000
+#define PEI_MR_OPTION_ROM_C0000_16K 0x00000001
+#define PEI_MR_OPTION_ROM_C4000_16K 0x00000002
+#define PEI_MR_OPTION_ROM_C8000_16K 0x00000004
+#define PEI_MR_OPTION_ROM_CC000_16K 0x00000008
+#define PEI_MR_OPTION_ROM_D0000_16K 0x00000010
+#define PEI_MR_OPTION_ROM_D4000_16K 0x00000020
+#define PEI_MR_OPTION_ROM_D8000_16K 0x00000040
+#define PEI_MR_OPTION_ROM_DC000_16K 0x00000080
+#define PEI_MR_OPTION_ROM_E0000_16K 0x00000100
+#define PEI_MR_OPTION_ROM_E4000_16K 0x00000200
+#define PEI_MR_OPTION_ROM_E8000_16K 0x00000400
+#define PEI_MR_OPTION_ROM_EC000_16K 0x00000800
+#define PEI_MR_OPTION_ROM_F0000_16K 0x00001000
+#define PEI_MR_OPTION_ROM_F4000_16K 0x00002000
+#define PEI_MR_OPTION_ROM_F8000_16K 0x00004000
+#define PEI_MR_OPTION_ROM_FC000_16K 0x00008000
+
+//
+// SMRAM Memory Range
+//
+#define PEI_MEMORY_RANGE_SMRAM UINT32
+#define PEI_MR_SMRAM_ALL 0xFFFFFFFF
+#define PEI_MR_SMRAM_NONE 0x00000000
+#define PEI_MR_SMRAM_CACHEABLE_MASK 0x80000000
+#define PEI_MR_SMRAM_SEGTYPE_MASK 0x00FF0000
+#define PEI_MR_SMRAM_ABSEG_MASK 0x00010000
+#define PEI_MR_SMRAM_HSEG_MASK 0x00020000
+#define PEI_MR_SMRAM_TSEG_MASK 0x00040000
+//
+// If adding additional entries, SMRAM Size
+// is a multiple of 128KB.
+//
+#define PEI_MR_SMRAM_SIZE_MASK 0x0000FFFF
+#define PEI_MR_SMRAM_SIZE_128K_MASK 0x00000001
+#define PEI_MR_SMRAM_SIZE_256K_MASK 0x00000002
+#define PEI_MR_SMRAM_SIZE_512K_MASK 0x00000004
+#define PEI_MR_SMRAM_SIZE_1024K_MASK 0x00000008
+#define PEI_MR_SMRAM_SIZE_2048K_MASK 0x00000010
+#define PEI_MR_SMRAM_SIZE_4096K_MASK 0x00000020
+#define PEI_MR_SMRAM_SIZE_8192K_MASK 0x00000040
+
+
+#define PEI_MR_SMRAM_ABSEG_128K_NOCACHE 0x00010001
+#define PEI_MR_SMRAM_HSEG_128K_CACHE 0x80020001
+#define PEI_MR_SMRAM_HSEG_128K_NOCACHE 0x00020001
+#define PEI_MR_SMRAM_TSEG_128K_CACHE 0x80040001
+#define PEI_MR_SMRAM_TSEG_128K_NOCACHE 0x00040001
+#define PEI_MR_SMRAM_TSEG_256K_CACHE 0x80040002
+#define PEI_MR_SMRAM_TSEG_256K_NOCACHE 0x00040002
+#define PEI_MR_SMRAM_TSEG_512K_CACHE 0x80040004
+#define PEI_MR_SMRAM_TSEG_512K_NOCACHE 0x00040004
+#define PEI_MR_SMRAM_TSEG_1024K_CACHE 0x80040008
+#define PEI_MR_SMRAM_TSEG_1024K_NOCACHE 0x00040008
+#define PEI_MR_SMRAM_TSEG_8192K_CACHE 0x80040040
+#define PEI_MR_SMRAM_TSEG_8192K_NOCACHE 0x00040040
+
+//
+// Graphics Memory Range
+//
+#define PEI_MEMORY_RANGE_GRAPHICS_MEMORY UINT32
+#define PEI_MR_GRAPHICS_MEMORY_ALL 0xFFFFFFFF
+#define PEI_MR_GRAPHICS_MEMORY_NONE 0x00000000
+#define PEI_MR_GRAPHICS_MEMORY_CACHEABLE 0x80000000
+//
+// If adding additional entries, Graphics Memory Size
+// is a multiple of 512KB.
+//
+#define PEI_MR_GRAPHICS_MEMORY_SIZE_MASK 0x0000FFFF
+#define PEI_MR_GRAPHICS_MEMORY_512K_NOCACHE 0x00000001
+#define PEI_MR_GRAPHICS_MEMORY_512K_CACHE 0x80000001
+#define PEI_MR_GRAPHICS_MEMORY_1M_NOCACHE 0x00000002
+#define PEI_MR_GRAPHICS_MEMORY_1M_CACHE 0x80000002
+#define PEI_MR_GRAPHICS_MEMORY_2M_NOCACHE 0x00000004
+#define PEI_MR_GRAPHICS_MEMORY_2M_CACHE 0x80000004
+#define PEI_MR_GRAPHICS_MEMORY_4M_NOCACHE 0x00000008
+#define PEI_MR_GRAPHICS_MEMORY_4M_CACHE 0x80000008
+#define PEI_MR_GRAPHICS_MEMORY_8M_NOCACHE 0x00000010
+#define PEI_MR_GRAPHICS_MEMORY_8M_CACHE 0x80000010
+#define PEI_MR_GRAPHICS_MEMORY_16M_NOCACHE 0x00000020
+#define PEI_MR_GRAPHICS_MEMORY_16M_CACHE 0x80000020
+#define PEI_MR_GRAPHICS_MEMORY_32M_NOCACHE 0x00000040
+#define PEI_MR_GRAPHICS_MEMORY_32M_CACHE 0x80000040
+#define PEI_MR_GRAPHICS_MEMORY_48M_NOCACHE 0x00000060
+#define PEI_MR_GRAPHICS_MEMORY_48M_CACHE 0x80000060
+#define PEI_MR_GRAPHICS_MEMORY_64M_NOCACHE 0x00000080
+#define PEI_MR_GRAPHICS_MEMORY_64M_CACHE 0x80000080
+#define PEI_MR_GRAPHICS_MEMORY_96M_NOCACHE 0x000000C0
+#define PEI_MR_GRAPHICS_MEMORY_96M_CACHE 0x800000C0
+#define PEI_MR_GRAPHICS_MEMORY_128M_NOCACHE 0x00000100
+#define PEI_MR_GRAPHICS_MEMORY_128M_CACHE 0x80000100
+#define PEI_MR_GRAPHICS_MEMORY_256M_NOCACHE 0x00000200
+#define PEI_MR_GRAPHICS_MEMORY_256M_CACHE 0x80000200
+#define PEI_MR_GRAPHICS_MEMORY_96M_NOCACHE 0x000000C0
+#define PEI_MR_GRAPHICS_MEMORY_96M_CACHE 0x800000C0
+#define PEI_MR_GRAPHICS_MEMORY_160M_NOCACHE 0x00000140
+#define PEI_MR_GRAPHICS_MEMORY_160M_CACHE 0x80000140
+#define PEI_MR_GRAPHICS_MEMORY_192M_NOCACHE 0x00000180
+#define PEI_MR_GRAPHICS_MEMORY_192M_CACHE 0x80000180
+#define PEI_MR_GRAPHICS_MEMORY_224M_NOCACHE 0x000001C0
+#define PEI_MR_GRAPHICS_MEMORY_224M_CACHE 0x800001C0
+#define PEI_MR_GRAPHICS_MEMORY_256M_NOCACHE 0x00000200
+#define PEI_MR_GRAPHICS_MEMORY_256M_CACHE 0x80000200
+#define PEI_MR_GRAPHICS_MEMORY_288M_NOCACHE 0x00000240
+#define PEI_MR_GRAPHICS_MEMORY_288M_CACHE 0x80000240
+#define PEI_MR_GRAPHICS_MEMORY_320M_NOCACHE 0x00000280
+#define PEI_MR_GRAPHICS_MEMORY_320M_CACHE 0x80000280
+#define PEI_MR_GRAPHICS_MEMORY_352M_NOCACHE 0x000002C0
+#define PEI_MR_GRAPHICS_MEMORY_352M_CACHE 0x800002C0
+#define PEI_MR_GRAPHICS_MEMORY_384M_NOCACHE 0x00000300
+#define PEI_MR_GRAPHICS_MEMORY_384M_CACHE 0x80000300
+#define PEI_MR_GRAPHICS_MEMORY_416M_NOCACHE 0x00000340
+#define PEI_MR_GRAPHICS_MEMORY_416M_CACHE 0x80000340
+#define PEI_MR_GRAPHICS_MEMORY_448M_NOCACHE 0x00000380
+#define PEI_MR_GRAPHICS_MEMORY_448M_CACHE 0x80000380
+#define PEI_MR_GRAPHICS_MEMORY_480M_NOCACHE 0x000003C0
+#define PEI_MR_GRAPHICS_MEMORY_480M_CACHE 0x800003C0
+#define PEI_MR_GRAPHICS_MEMORY_512M_NOCACHE 0x00000400
+#define PEI_MR_GRAPHICS_MEMORY_512M_CACHE 0x80000400
+
+//
+// Pci Memory Hole
+//
+#define PEI_MEMORY_RANGE_PCI_MEMORY UINT32
+#define PEI_MR_PCI_MEMORY_SIZE_512M_MASK 0x00000001
+
+
+GUID_VARIABLE_DECLARATION(gAmiPeiMrcDefaultGuid, AMI_PEI_MRC_DEFAULT_GUID);
+GUID_VARIABLE_DECLARATION(gAmiPeiBeforeMrcGuid, AMI_PEI_BEFORE_MRC_GUID);
+GUID_VARIABLE_DECLARATION(gAmiPeiAfterMrcGuid, AMI_PEI_AFTER_MRC_GUID);
+GUID_VARIABLE_DECLARATION(gAmiPeiEndOfMemDetectGuid, AMI_PEI_END_OF_MRC_GUID);
+GUID_VARIABLE_DECLARATION(gSetNBSubIdPpiGuid, AMI_PEI_SET_NB_SUBID_PPI_GUID);
+GUID_VARIABLE_DECLARATION(gAmiPeiNBCpuOnlyResetPpiGuid, \
+ AMI_PEI_NB_CPU_ONLY_RESET_PPI_GUID);
+
+typedef struct _AMI_PEI_NBINIT_POLICY_PPI AMI_PEI_NBINIT_POLICY_PPI;
+
+typedef struct _AMI_PEI_NBINIT_POLICY_PPI {
+ UINTN unFlag;
+} AMI_PEI_NBINIT_POLICY_PPI;
+
+#define AMI_MRC_INFO_HOB_GUID \
+ {0xa6351a87, 0x2965, 0x4718, 0x88, 0xc7, 0x0b, 0x5b, 0x5a, 0xc0, 0xb5, 0xe4}
+
+#define AMI_NB_MRC_INFO_GUID \
+ {0x6737934b, 0xa27e, 0x4c05, 0xad, 0x5b, 0x6a, 0xb8, 0x62, 0x73, 0x68, 0x0b}
+
+//85226559-0def-48d8-a8c9-b746d6a4df01
+#define AMI_MEMORY_ERROR_REPORT_PPI_GUID \
+ { 0x85226559, 0x0def, 0x48d8, 0xa8, 0xc9, 0xb7, 0x46, 0xd6, 0xa4, 0xdf, 0x01 }
+
+// {7D971640-6815-408a-AC4F-BCB7A3BD9336}
+#define AMI_NB_PEG_INFO_GUID \
+ { 0x7d971640, 0x6815, 0x408a, 0xac, 0x4f, 0xbc, 0xb7, 0xa3, 0xbd, 0x93, 0x36 }
+
+// {E1E2A446-0365-4c65-919C-0371C3F9F5FF}
+#define AMI_NB_PEG_GEN3_PRESET_SEARCH_GUID \
+ { 0xe1e2a446, 0x365, 0x4c65, 0x91, 0x9c, 0x03, 0x71, 0xc3, 0xf9, 0xf5, 0xff }
+
+
+#define NB_MRC_INFO_VARIABLE L"NBMrcInfo"
+
+typedef struct _EFI_PEI_SET_NB_SID_PPI EFI_PEI_SET_NB_SID_PPI;
+
+typedef EFI_STATUS (EFIAPI *EFI_PEI_NB_SUBID_SET) (
+ IN EFI_PEI_SERVICES **PeiServices
+);
+
+typedef struct _EFI_PEI_SET_NB_SID_PPI {
+ EFI_PEI_NB_SUBID_SET PeiSetNBSubId;
+} EFI_PEI_SET_NB_SID_PPI;
+
+typedef struct _EFI_PEI_NB_CPU_ONLY_RESET_PPI EFI_PEI_NB_CPU_ONLY_RESET_PPI;
+
+typedef VOID (EFIAPI *EFI_PEI_NB_CPU_ONLY_RESET) (
+ IN EFI_PEI_SERVICES **PeiServices
+);
+
+typedef
+EFI_STATUS
+(EFIAPI *PEI_AMI_MEMORY_ERROR_READ) (
+ IN EFI_PEI_SERVICES **PeiServices, ///< Pointer to PeiServices
+ IN struct _PEI_MEMORY_ERROR_REPORT_PPI *This, ///< Pointer to the PPI structure
+ IN OUT UINT32 MemErrData ///< Memory Error Data Buffer
+);
+
+typedef struct _EFI_PEI_NB_CPU_ONLY_RESET_PPI {
+ EFI_PEI_NB_CPU_ONLY_RESET GenerateCpuOnlyReset;
+} EFI_PEI_NB_CPU_ONLY_RESET_PPI;
+
+typedef enum {
+ FreqAuto = 0,
+ Freq800 = 800,
+ Freq1067 = 1067,
+ Freq1333 = 1333,
+ Freq1600 = 1600,
+ Freq1867 = 1867,
+ Freq2133 = 2133,
+ FreqUnSupport
+} MemFrequency;
+
+
+// Porting Request.
+typedef struct {
+ UINT32 dRegEBP;
+ UINT32 dRegEBX;
+ UINT16 wMmioSSKPD;
+ UINT8 bMmioC0DRT1;
+ UINT8 bMmioC1DRT1;
+ UINT8 bRCVENMT;
+ UINT32 dMmioC0REOST;
+ UINT32 dMmioC1REOST;
+} NB_MRC_INFO;
+
+typedef struct {
+ EFI_HOB_GUID_TYPE Guid;
+ NB_MRC_INFO pMrcInfo;
+} MRC_INFO_HOB;
+
+typedef struct {
+ EFI_HOB_GUID_TYPE Guid;
+ UINT8 tCKminMTBUnits;
+} MRC_DEFAULT_HOB;
+
+#ifndef _PEI_HOB_H_
+#ifndef __HOB__H__
+typedef struct _EFI_HOB_GENERIC_HEADER {
+ UINT16 HobType;
+ UINT16 HobLength;
+ UINT32 Reserved;
+} EFI_HOB_GENERIC_HEADER;
+
+typedef struct _EFI_HOB_GUID_TYPE {
+ EFI_HOB_GENERIC_HEADER Header;
+ EFI_GUID Name;
+} EFI_HOB_GUID_TYPE;
+#endif
+#endif
+
+typedef struct {
+ EFI_HOB_GUID_TYPE Header;
+ UINT8 PegDeOverride[3];
+} NB_PEG_INFO_HOB;
+
+typedef struct _AMI_NB_PCI_SSID_TABLE_STRUCT AMI_NB_PCI_SSID_TABLE_STRUCT;
+
+typedef struct _AMI_NB_PCI_SSID_TABLE_STRUCT {
+ UINT64 PciAddr;
+ UINT32 Sid;
+} AMI_NB_PCI_SSID_TABLE_STRUCT;
+
+typedef struct _AMI_NB_PCH_SKU_DEVICE_ID_TABLE_STRUCT {
+ UINT16 VenderID;
+ UINT16 DeviceID;
+} AMI_NB_PCH_SKU_DEVICE_ID_TABLE_STRUCT;
+
+typedef struct _AMI_PEI_NB_CUSTOM_PPI AMI_PEI_NB_CUSTOM_PPI;
+
+typedef struct _AMI_PEI_NB_CUSTOM_PPI {
+ AMI_NB_PCI_SSID_TABLE_STRUCT *SsidTable;
+} AMI_PEI_NB_CUSTOM_PPI;
+
+typedef struct _PEI_MEMORY_ERROR_REPORT_PPI {
+ PEI_AMI_MEMORY_ERROR_READ AmiMemoryErrorRead;
+} PEI_MEMORY_ERROR_REPORT_PPI;
+
+#endif
+
+//*************************************************************************
+//*************************************************************************
+//** **
+//** (C)Copyright 1985-2011, American Megatrends, Inc. **
+//** **
+//** All Rights Reserved. **
+//** **
+//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
+//** **
+//** Phone: (770)-246-8600 **
+//** **
+//*************************************************************************
+//*************************************************************************