summaryrefslogtreecommitdiff
path: root/EDK/Foundation/Framework/Ppi
diff options
context:
space:
mode:
Diffstat (limited to 'EDK/Foundation/Framework/Ppi')
-rw-r--r--EDK/Foundation/Framework/Ppi/BlockIo/BlockIo.c29
-rw-r--r--EDK/Foundation/Framework/Ppi/BlockIo/BlockIo.h88
-rw-r--r--EDK/Foundation/Framework/Ppi/BootInRecoveryMode/BootInRecoveryMode.c29
-rw-r--r--EDK/Foundation/Framework/Ppi/BootInRecoveryMode/BootInRecoveryMode.h34
-rw-r--r--EDK/Foundation/Framework/Ppi/BootMode/BootMode.c29
-rw-r--r--EDK/Foundation/Framework/Ppi/BootMode/BootMode.h34
-rw-r--r--EDK/Foundation/Framework/Ppi/BootScriptExecuter/BootScriptExecuter.c29
-rw-r--r--EDK/Foundation/Framework/Ppi/BootScriptExecuter/BootScriptExecuter.h50
-rw-r--r--EDK/Foundation/Framework/Ppi/CpuIo/CpuIo.c29
-rw-r--r--EDK/Foundation/Framework/Ppi/CpuIo/CpuIo.h250
-rw-r--r--EDK/Foundation/Framework/Ppi/Decompress/Decompress.c28
-rw-r--r--EDK/Foundation/Framework/Ppi/Decompress/Decompress.h49
-rw-r--r--EDK/Foundation/Framework/Ppi/DeviceRecoveryModule/DeviceRecoveryModule.c30
-rw-r--r--EDK/Foundation/Framework/Ppi/DeviceRecoveryModule/DeviceRecoveryModule.h68
-rw-r--r--EDK/Foundation/Framework/Ppi/DxeIpl/DxeIpl.c29
-rw-r--r--EDK/Foundation/Framework/Ppi/DxeIpl/DxeIpl.h51
-rw-r--r--EDK/Foundation/Framework/Ppi/EcpPciCfg/EcpPciCfg.c28
-rw-r--r--EDK/Foundation/Framework/Ppi/EcpPciCfg/EcpPciCfg.h50
-rw-r--r--EDK/Foundation/Framework/Ppi/EdkFrameworkPpiLib.cif74
-rw-r--r--EDK/Foundation/Framework/Ppi/EdkFrameworkPpiLib.inf91
-rw-r--r--EDK/Foundation/Framework/Ppi/EdkFrameworkPpiLib.mak70
-rw-r--r--EDK/Foundation/Framework/Ppi/EdkFrameworkPpiLib.sdl26
-rw-r--r--EDK/Foundation/Framework/Ppi/EndOfPeiSignal/EndOfPeiSignal.c29
-rw-r--r--EDK/Foundation/Framework/Ppi/EndOfPeiSignal/EndOfPeiSignal.h35
-rw-r--r--EDK/Foundation/Framework/Ppi/FindFv/FindFv.c29
-rw-r--r--EDK/Foundation/Framework/Ppi/FindFv/FindFv.h51
-rw-r--r--EDK/Foundation/Framework/Ppi/FirmwareVolume/FirmwareVolume.c30
-rw-r--r--EDK/Foundation/Framework/Ppi/FirmwareVolume/FirmwareVolume.h112
-rw-r--r--EDK/Foundation/Framework/Ppi/FirmwareVolumeInfo/FirmwareVolumeInfo.c28
-rw-r--r--EDK/Foundation/Framework/Ppi/FirmwareVolumeInfo/FirmwareVolumeInfo.h46
-rw-r--r--EDK/Foundation/Framework/Ppi/GuidedSectionExtraction/GuidedSectionExtraction.c29
-rw-r--r--EDK/Foundation/Framework/Ppi/GuidedSectionExtraction/GuidedSectionExtraction.h42
-rw-r--r--EDK/Foundation/Framework/Ppi/LoadFile/LoadFile.c29
-rw-r--r--EDK/Foundation/Framework/Ppi/LoadFile/LoadFile.h48
-rw-r--r--EDK/Foundation/Framework/Ppi/LoadFile2/LoadFile2.c29
-rw-r--r--EDK/Foundation/Framework/Ppi/LoadFile2/LoadFile2.h49
-rw-r--r--EDK/Foundation/Framework/Ppi/MemoryDiscovered/MemoryDiscovered.c29
-rw-r--r--EDK/Foundation/Framework/Ppi/MemoryDiscovered/MemoryDiscovered.h34
-rw-r--r--EDK/Foundation/Framework/Ppi/PciCfg/PciCfg.c28
-rw-r--r--EDK/Foundation/Framework/Ppi/PciCfg/PciCfg.h65
-rw-r--r--EDK/Foundation/Framework/Ppi/PciCfg2/PciCfg2.c28
-rw-r--r--EDK/Foundation/Framework/Ppi/PciCfg2/PciCfg2.h67
-rw-r--r--EDK/Foundation/Framework/Ppi/RecoveryModule/RecoveryModule.c29
-rw-r--r--EDK/Foundation/Framework/Ppi/RecoveryModule/RecoveryModule.h45
-rw-r--r--EDK/Foundation/Framework/Ppi/Reset/Reset.c28
-rw-r--r--EDK/Foundation/Framework/Ppi/Reset/Reset.h54
-rw-r--r--EDK/Foundation/Framework/Ppi/S3Resume/S3Resume.c29
-rw-r--r--EDK/Foundation/Framework/Ppi/S3Resume/S3Resume.h44
-rw-r--r--EDK/Foundation/Framework/Ppi/SecPlatformInformation/SecPlatformInformation.c29
-rw-r--r--EDK/Foundation/Framework/Ppi/SecPlatformInformation/SecPlatformInformation.h57
-rw-r--r--EDK/Foundation/Framework/Ppi/SectionExtraction/SectionExtraction.c28
-rw-r--r--EDK/Foundation/Framework/Ppi/SectionExtraction/SectionExtraction.h59
-rw-r--r--EDK/Foundation/Framework/Ppi/Security/Security.c28
-rw-r--r--EDK/Foundation/Framework/Ppi/Security/Security.h48
-rw-r--r--EDK/Foundation/Framework/Ppi/Security2/Security2.c28
-rw-r--r--EDK/Foundation/Framework/Ppi/Security2/Security2.h50
-rw-r--r--EDK/Foundation/Framework/Ppi/Smbus/Smbus.c29
-rw-r--r--EDK/Foundation/Framework/Ppi/Smbus/Smbus.h115
-rw-r--r--EDK/Foundation/Framework/Ppi/Smbus2/Smbus2.c29
-rw-r--r--EDK/Foundation/Framework/Ppi/Smbus2/Smbus2.h96
-rw-r--r--EDK/Foundation/Framework/Ppi/Stall/Stall.c28
-rw-r--r--EDK/Foundation/Framework/Ppi/Stall/Stall.h47
-rw-r--r--EDK/Foundation/Framework/Ppi/StatusCode/StatusCode.c29
-rw-r--r--EDK/Foundation/Framework/Ppi/StatusCode/StatusCode.h49
-rw-r--r--EDK/Foundation/Framework/Ppi/Variable/Variable.c29
-rw-r--r--EDK/Foundation/Framework/Ppi/Variable/Variable.h69
-rw-r--r--EDK/Foundation/Framework/Ppi/Variable2/Variable2.c29
-rw-r--r--EDK/Foundation/Framework/Ppi/Variable2/Variable2.h61
68 files changed, 3198 insertions, 0 deletions
diff --git a/EDK/Foundation/Framework/Ppi/BlockIo/BlockIo.c b/EDK/Foundation/Framework/Ppi/BlockIo/BlockIo.c
new file mode 100644
index 0000000..b8b0953
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/BlockIo/BlockIo.c
@@ -0,0 +1,29 @@
+/*++
+
+Copyright (c) 1999 - 2002, 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
+which 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:
+
+ BlockIo.c
+
+Abstract:
+
+ BlockIo PPI GUID as defined in EFI 2.0
+
+--*/
+
+#include "Tiano.h"
+#include "Pei.h"
+#include EFI_PPI_DEFINITION (BlockIo)
+
+EFI_GUID gPeiBlockIoPpiGuid = PEI_BLOCK_IO_PPI_GUID;
+
+EFI_GUID_STRING(&gPeiBlockIoPpiGuid, "BlockIo", "PEI Block I/O PPI");
diff --git a/EDK/Foundation/Framework/Ppi/BlockIo/BlockIo.h b/EDK/Foundation/Framework/Ppi/BlockIo/BlockIo.h
new file mode 100644
index 0000000..c518b37
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/BlockIo/BlockIo.h
@@ -0,0 +1,88 @@
+/*++
+
+Copyright (c) 1999 - 2002, 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
+which 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:
+
+ BlockIo.h
+
+Abstract:
+
+ BlockIo PPI as defined in EFI 2.0
+
+ Used to access block-oriented storage devices
+
+--*/
+
+#ifndef _PEI_BLOCK_IO_H_
+#define _PEI_BLOCK_IO_H_
+
+#define PEI_BLOCK_IO_PPI_GUID \
+ { \
+ 0x695d8aa1, 0x42ee, 0x4c46, 0x80, 0x5c, 0x6e, 0xa6, 0xbc, 0xe7, 0x99, 0xe3 \
+ }
+
+EFI_FORWARD_DECLARATION (PEI_RECOVERY_BLOCK_IO_INTERFACE);
+
+typedef UINT64 PEI_LBA;
+
+typedef enum {
+ LegacyFloppy = 0,
+ IdeCDROM = 1,
+ IdeLS120 = 2,
+ UsbMassStorage= 3,
+ MaxDeviceType
+} PEI_BLOCK_DEVICE_TYPE;
+
+typedef struct {
+ PEI_BLOCK_DEVICE_TYPE DeviceType;
+ BOOLEAN MediaPresent;
+ UINTN LastBlock;
+ UINTN BlockSize;
+} PEI_BLOCK_IO_MEDIA;
+
+typedef
+EFI_STATUS
+(EFIAPI *PEI_GET_NUMBER_BLOCK_DEVICES) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_RECOVERY_BLOCK_IO_INTERFACE * This,
+ OUT UINTN *NumberBlockDevices
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *PEI_GET_DEVICE_MEDIA_INFORMATION) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_RECOVERY_BLOCK_IO_INTERFACE * This,
+ IN UINTN DeviceIndex,
+ OUT PEI_BLOCK_IO_MEDIA * MediaInfo
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *PEI_READ_BLOCKS) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_RECOVERY_BLOCK_IO_INTERFACE * This,
+ IN UINTN DeviceIndex,
+ IN PEI_LBA StartLBA,
+ IN UINTN BufferSize,
+ OUT VOID *Buffer
+ );
+
+typedef struct _PEI_RECOVERY_BLOCK_IO_INTERFACE {
+ PEI_GET_NUMBER_BLOCK_DEVICES GetNumberOfBlockDevices;
+ PEI_GET_DEVICE_MEDIA_INFORMATION GetBlockDeviceMediaInfo;
+ PEI_READ_BLOCKS ReadBlocks;
+} PEI_RECOVERY_BLOCK_IO_INTERFACE;
+
+extern EFI_GUID gPeiBlockIoPpiGuid;
+
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/BootInRecoveryMode/BootInRecoveryMode.c b/EDK/Foundation/Framework/Ppi/BootInRecoveryMode/BootInRecoveryMode.c
new file mode 100644
index 0000000..e5840a8
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/BootInRecoveryMode/BootInRecoveryMode.c
@@ -0,0 +1,29 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ BootInRecoveryMode.c
+
+Abstract:
+
+ Boot Mode PPI GUID as defined in PEI EAS
+
+--*/
+
+#include "Tiano.h"
+#include "PeiBind.h"
+#include "PeiApi.h"
+#include EFI_PPI_DEFINITION (BootInRecoveryMode)
+
+EFI_GUID gPeiBootInRecoveryModePpiGuid = PEI_BOOT_IN_RECOVERY_MODE_PEIM_PPI;
+
+EFI_GUID_STRING(&gPeiMasterBootModePpiGuid, "BootMode", "Master Boot Mode PPI");
diff --git a/EDK/Foundation/Framework/Ppi/BootInRecoveryMode/BootInRecoveryMode.h b/EDK/Foundation/Framework/Ppi/BootInRecoveryMode/BootInRecoveryMode.h
new file mode 100644
index 0000000..15ca5ca
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/BootInRecoveryMode/BootInRecoveryMode.h
@@ -0,0 +1,34 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ BootInRecoveryMode.h
+
+Abstract:
+
+ Boot Mode PPI as defined in Tiano
+
+--*/
+
+#ifndef _PEI_BOOT_IN_RECOVERY_MODE_PPI_H
+#define _PEI_BOOT_IN_RECOVERY_MODE_PPI_H
+
+#define PEI_BOOT_IN_RECOVERY_MODE_PEIM_PPI \
+ { \
+ 0x17ee496a, 0xd8e4, 0x4b9a, 0x94, 0xd1, 0xce, 0x82, 0x72, 0x30, 0x8, 0x50 \
+ }
+
+EFI_FORWARD_DECLARATION (PEI_BOOT_IN_RECOVERY_MODE_PPI);
+
+extern EFI_GUID gPeiBootInRecoveryModePpiGuid;
+
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/BootMode/BootMode.c b/EDK/Foundation/Framework/Ppi/BootMode/BootMode.c
new file mode 100644
index 0000000..f88b757
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/BootMode/BootMode.c
@@ -0,0 +1,29 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ BootMode.c
+
+Abstract:
+
+ Boot Mode PPI GUID as defined in PEI EAS
+
+--*/
+
+#include "Tiano.h"
+#include "PeiBind.h"
+#include "PeiApi.h"
+#include EFI_PPI_DEFINITION (BootMode)
+
+EFI_GUID gPeiMasterBootModePpiGuid = PEI_MASTER_BOOT_MODE_PEIM_PPI;
+
+EFI_GUID_STRING(&gPeiMasterBootModePpiGuid, "BootMode", "Master Boot Mode PPI");
diff --git a/EDK/Foundation/Framework/Ppi/BootMode/BootMode.h b/EDK/Foundation/Framework/Ppi/BootMode/BootMode.h
new file mode 100644
index 0000000..552ed23
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/BootMode/BootMode.h
@@ -0,0 +1,34 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ BootMode.h
+
+Abstract:
+
+ Boot Mode PPI as defined in Tiano
+
+--*/
+
+#ifndef _PEI_MASTER_BOOT_MODE_PPI_H
+#define _PEI_MASTER_BOOT_MODE_PPI_H
+
+#define PEI_MASTER_BOOT_MODE_PEIM_PPI \
+ { \
+ 0x7408d748, 0xfc8c, 0x4ee6, 0x92, 0x88, 0xc4, 0xbe, 0xc0, 0x92, 0xa4, 0x10 \
+ }
+
+EFI_FORWARD_DECLARATION (PEI_MASTER_BOOT_MODE_PPI);
+
+extern EFI_GUID gPeiMasterBootModePpiGuid;
+
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/BootScriptExecuter/BootScriptExecuter.c b/EDK/Foundation/Framework/Ppi/BootScriptExecuter/BootScriptExecuter.c
new file mode 100644
index 0000000..bcb7d48
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/BootScriptExecuter/BootScriptExecuter.c
@@ -0,0 +1,29 @@
+/*++
+
+Copyright (c) 2001 - 2002, 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
+which 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:
+
+ BootScriptExecuter.c
+
+Abstract:
+
+ Boot Script Executer PPI GUID as defined in EFI 2.0
+
+--*/
+
+#include "Tiano.h"
+#include "PeiBind.h"
+#include "PeiApi.h"
+#include EFI_PPI_DEFINITION (BootScriptExecuter)
+
+EFI_GUID gPeiBootScriptExecuterPpiGuid = PEI_BOOT_SCRIPT_EXECUTER_PPI_GUID;
+
+EFI_GUID_STRING(&gPeiBootScriptExecuterPpiGuid, "BootScriptExecuter", "Boot Script Executer PPI");
diff --git a/EDK/Foundation/Framework/Ppi/BootScriptExecuter/BootScriptExecuter.h b/EDK/Foundation/Framework/Ppi/BootScriptExecuter/BootScriptExecuter.h
new file mode 100644
index 0000000..72540f0
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/BootScriptExecuter/BootScriptExecuter.h
@@ -0,0 +1,50 @@
+/*++
+
+Copyright (c) 2001 - 2002, 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
+which 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:
+
+ BootScriptExecuter.h
+
+Abstract:
+
+ Boot Script Executer PPI as defined in EFI 2.0
+
+--*/
+
+#ifndef _PEI_BOOT_SCRIPT_EXECUTER_PPI_H
+#define _PEI_BOOT_SCRIPT_EXECUTER_PPI_H
+
+#define PEI_BOOT_SCRIPT_EXECUTER_PPI_GUID \
+ { \
+ 0xabd42895, 0x78cf, 0x4872, 0x84, 0x44, 0x1b, 0x5c, 0x18, 0x0b, 0xfb, 0xff \
+ }
+
+EFI_FORWARD_DECLARATION (PEI_BOOT_SCRIPT_EXECUTER_PPI);
+
+#define PEI_BOOT_SCRIPT_EXECUTER_PPI_REVISION 0x00000001
+
+typedef
+EFI_STATUS
+(EFIAPI *PEI_BOOT_SCRIPT_EXECUTE) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_BOOT_SCRIPT_EXECUTER_PPI * This,
+ IN EFI_PHYSICAL_ADDRESS Address,
+ IN EFI_GUID * FvFile OPTIONAL
+ );
+
+typedef struct _PEI_BOOT_SCRIPT_EXECUTER_PPI {
+ UINT64 Revision;
+ PEI_BOOT_SCRIPT_EXECUTE Execute;
+} PEI_BOOT_SCRIPT_EXECUTER_PPI;
+
+extern EFI_GUID gPeiBootScriptExecuterPpiGuid;
+
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/CpuIo/CpuIo.c b/EDK/Foundation/Framework/Ppi/CpuIo/CpuIo.c
new file mode 100644
index 0000000..10daaf3
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/CpuIo/CpuIo.c
@@ -0,0 +1,29 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ CpuIO.c
+
+Abstract:
+
+ CPU IO PPI GUID as defined in Tiano
+
+
+--*/
+
+#include "Tiano.h"
+#include "Pei.h"
+#include EFI_PPI_DEFINITION (CpuIo)
+
+EFI_GUID gPeiCpuIoPpiInServiceTableGuid = PEI_CPU_IO_PPI_GUID;
+
+EFI_GUID_STRING(&gPeiCpuIoPpiInServiceTableGuid, "CPU IO", "CPU IO PPI");
diff --git a/EDK/Foundation/Framework/Ppi/CpuIo/CpuIo.h b/EDK/Foundation/Framework/Ppi/CpuIo/CpuIo.h
new file mode 100644
index 0000000..b99fca9
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/CpuIo/CpuIo.h
@@ -0,0 +1,250 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ CpuIo.h
+
+Abstract:
+
+ CPU IO PPI defined in Tiano
+ CPU IO PPI abstracts CPU IO access
+
+
+--*/
+
+#ifndef _PEI_CPUIO_PPI_H_
+#define _PEI_CPUIO_PPI_H_
+
+#define PEI_CPU_IO_PPI_GUID \
+ { \
+ 0xe6af1f7b, 0xfc3f, 0x46da, 0xa8, 0x28, 0xa3, 0xb4, 0x57, 0xa4, 0x42, 0x82 \
+ }
+
+EFI_FORWARD_DECLARATION (PEI_CPU_IO_PPI);
+
+//
+// *******************************************************
+// PEI_CPU_IO_PPI_WIDTH
+// *******************************************************
+//
+typedef enum {
+ PeiCpuIoWidthUint8,
+ PeiCpuIoWidthUint16,
+ PeiCpuIoWidthUint32,
+ PeiCpuIoWidthUint64,
+ PeiCpuIoWidthFifoUint8,
+ PeiCpuIoWidthFifoUint16,
+ PeiCpuIoWidthFifoUint32,
+ PeiCpuIoWidthFifoUint64,
+ PeiCpuIoWidthFillUint8,
+ PeiCpuIoWidthFillUint16,
+ PeiCpuIoWidthFillUint32,
+ PeiCpuIoWidthFillUint64,
+ PeiCpuIoWidthMaximum
+} PEI_CPU_IO_PPI_WIDTH;
+
+//
+// *******************************************************
+// PEI_CPU_IO_PPI_IO_MEM
+// *******************************************************
+//
+typedef
+EFI_STATUS
+(EFIAPI *PEI_CPU_IO_PPI_IO_MEM) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_CPU_IO_PPI * This,
+ IN PEI_CPU_IO_PPI_WIDTH Width,
+ IN UINT64 Address,
+ IN UINTN Count,
+ IN OUT VOID *Buffer
+ );
+
+//
+// *******************************************************
+// PEI_CPU_IO_PPI_ACCESS
+// *******************************************************
+//
+typedef struct {
+ PEI_CPU_IO_PPI_IO_MEM Read;
+ PEI_CPU_IO_PPI_IO_MEM Write;
+} PEI_CPU_IO_PPI_ACCESS;
+
+//
+// *******************************************************
+// Base IO Class Functions
+// *******************************************************
+//
+typedef
+UINT8
+(EFIAPI *PEI_CPU_IO_PPI_IO_READ8) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_CPU_IO_PPI * This,
+ IN UINT64 Address
+ );
+
+typedef
+UINT16
+(EFIAPI *PEI_CPU_IO_PPI_IO_READ16) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_CPU_IO_PPI * This,
+ IN UINT64 Address
+ );
+
+typedef
+UINT32
+(EFIAPI *PEI_CPU_IO_PPI_IO_READ32) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_CPU_IO_PPI * This,
+ IN UINT64 Address
+ );
+
+typedef
+UINT64
+(EFIAPI *PEI_CPU_IO_PPI_IO_READ64) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_CPU_IO_PPI * This,
+ IN UINT64 Address
+ );
+
+typedef
+VOID
+(EFIAPI *PEI_CPU_IO_PPI_IO_WRITE8) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_CPU_IO_PPI * This,
+ IN UINT64 Address,
+ IN UINT8 Data
+ );
+
+typedef
+VOID
+(EFIAPI *PEI_CPU_IO_PPI_IO_WRITE16) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_CPU_IO_PPI * This,
+ IN UINT64 Address,
+ IN UINT16 Data
+ );
+
+typedef
+VOID
+(EFIAPI *PEI_CPU_IO_PPI_IO_WRITE32) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_CPU_IO_PPI * This,
+ IN UINT64 Address,
+ IN UINT32 Data
+ );
+
+typedef
+VOID
+(EFIAPI *PEI_CPU_IO_PPI_IO_WRITE64) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_CPU_IO_PPI * This,
+ IN UINT64 Address,
+ IN UINT64 Data
+ );
+
+typedef
+UINT8
+(EFIAPI *PEI_CPU_IO_PPI_MEM_READ8) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_CPU_IO_PPI * This,
+ IN UINT64 Address
+ );
+
+typedef
+UINT16
+(EFIAPI *PEI_CPU_IO_PPI_MEM_READ16) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_CPU_IO_PPI * This,
+ IN UINT64 Address
+ );
+
+typedef
+UINT32
+(EFIAPI *PEI_CPU_IO_PPI_MEM_READ32) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_CPU_IO_PPI * This,
+ IN UINT64 Address
+ );
+
+typedef
+UINT64
+(EFIAPI *PEI_CPU_IO_PPI_MEM_READ64) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_CPU_IO_PPI * This,
+ IN UINT64 Address
+ );
+
+typedef
+VOID
+(EFIAPI *PEI_CPU_IO_PPI_MEM_WRITE8) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_CPU_IO_PPI * This,
+ IN UINT64 Address,
+ IN UINT8 Data
+ );
+
+typedef
+VOID
+(EFIAPI *PEI_CPU_IO_PPI_MEM_WRITE16) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_CPU_IO_PPI * This,
+ IN UINT64 Address,
+ IN UINT16 Data
+ );
+
+typedef
+VOID
+(EFIAPI *PEI_CPU_IO_PPI_MEM_WRITE32) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_CPU_IO_PPI * This,
+ IN UINT64 Address,
+ IN UINT32 Data
+ );
+
+typedef
+VOID
+(EFIAPI *PEI_CPU_IO_PPI_MEM_WRITE64) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_CPU_IO_PPI * This,
+ IN UINT64 Address,
+ IN UINT64 Data
+ );
+
+//
+// *******************************************************
+// PEI_CPU_IO_PPI
+// *******************************************************
+//
+typedef struct _PEI_CPU_IO_PPI {
+ PEI_CPU_IO_PPI_ACCESS Mem;
+ PEI_CPU_IO_PPI_ACCESS Io;
+ PEI_CPU_IO_PPI_IO_READ8 IoRead8;
+ PEI_CPU_IO_PPI_IO_READ16 IoRead16;
+ PEI_CPU_IO_PPI_IO_READ32 IoRead32;
+ PEI_CPU_IO_PPI_IO_READ64 IoRead64;
+ PEI_CPU_IO_PPI_IO_WRITE8 IoWrite8;
+ PEI_CPU_IO_PPI_IO_WRITE16 IoWrite16;
+ PEI_CPU_IO_PPI_IO_WRITE32 IoWrite32;
+ PEI_CPU_IO_PPI_IO_WRITE64 IoWrite64;
+ PEI_CPU_IO_PPI_MEM_READ8 MemRead8;
+ PEI_CPU_IO_PPI_MEM_READ16 MemRead16;
+ PEI_CPU_IO_PPI_MEM_READ32 MemRead32;
+ PEI_CPU_IO_PPI_MEM_READ64 MemRead64;
+ PEI_CPU_IO_PPI_MEM_WRITE8 MemWrite8;
+ PEI_CPU_IO_PPI_MEM_WRITE16 MemWrite16;
+ PEI_CPU_IO_PPI_MEM_WRITE32 MemWrite32;
+ PEI_CPU_IO_PPI_MEM_WRITE64 MemWrite64;
+} PEI_CPU_IO_PPI;
+
+extern EFI_GUID gPeiCpuIoPpiInServiceTableGuid;
+
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/Decompress/Decompress.c b/EDK/Foundation/Framework/Ppi/Decompress/Decompress.c
new file mode 100644
index 0000000..4b95013
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/Decompress/Decompress.c
@@ -0,0 +1,28 @@
+/*++
+
+Copyright (c) 2007, 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
+which 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:
+
+ Decompress.c
+
+Abstract:
+
+ PI 1.0 spec definition.
+
+--*/
+
+#include "Tiano.h"
+#include "Pei.h"
+#include EFI_PPI_DEFINITION (Decompress)
+
+
+EFI_GUID gEfiPeiDecompressPpiGuid = EFI_PEI_DECOMPRESS_PPI_GUID;
+EFI_GUID_STRING(&gEfiPeiDecompressPpiGuid, "PeiDecompress", "PeiDecompress PPI");
diff --git a/EDK/Foundation/Framework/Ppi/Decompress/Decompress.h b/EDK/Foundation/Framework/Ppi/Decompress/Decompress.h
new file mode 100644
index 0000000..7007576
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/Decompress/Decompress.h
@@ -0,0 +1,49 @@
+/*++
+
+Copyright (c) 2007, 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
+which 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:
+
+ Decompress.h
+
+Abstract:
+
+ PI 1.0 spec definition.
+
+--*/
+
+#ifndef __DECOMPRESS_PPI_H__
+#define __DECOMPRESS_PPI_H__
+
+
+#define EFI_PEI_DECOMPRESS_PPI_GUID \
+ { 0x1a36e4e7, 0xfab6, 0x476a, 0x8e, 0x75, 0x69, 0x5a, 0x5, 0x76, 0xfd, 0xd7}
+
+EFI_FORWARD_DECLARATION (EFI_PEI_DECOMPRESS_PPI);
+
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_PEI_DECOMPRESS_DECOMPRESS)(
+ IN CONST EFI_PEI_DECOMPRESS_PPI *This,
+ IN CONST EFI_COMPRESSION_SECTION *InputSection,
+ OUT VOID **OutputBuffer,
+ OUT UINTN *OutputSize
+ );
+
+typedef struct _EFI_PEI_DECOMPRESS_PPI {
+ EFI_PEI_DECOMPRESS_DECOMPRESS Decompress;
+} EFI_PEI_DECOMPRESS_PPI;
+
+
+
+extern EFI_GUID gEfiPeiDecompressPpiGuid;
+
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/DeviceRecoveryModule/DeviceRecoveryModule.c b/EDK/Foundation/Framework/Ppi/DeviceRecoveryModule/DeviceRecoveryModule.c
new file mode 100644
index 0000000..909b8d7
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/DeviceRecoveryModule/DeviceRecoveryModule.c
@@ -0,0 +1,30 @@
+/*++
+
+Copyright (c) 1999 - 2002, 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
+which 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:
+
+ DeviceRecoveryModule.c
+
+Abstract:
+
+ Device Recovery Module PPI GUID as defined in PEI EAS
+
+--*/
+
+#include "Tiano.h"
+#include "PeiBind.h"
+#include "PeiApi.h"
+#include EFI_PPI_DEFINITION (DeviceRecoveryModule)
+
+EFI_GUID gPeiDeviceRecoveryModulePpiGuid = PEI_DEVICE_RECOVERY_MODULE_INTERFACE_PPI;
+
+EFI_GUID_STRING(&gPeiDeviceRecoveryModulePpiGuid, "DeviceRecoveryModule", "Device Recovery Module PPI");
diff --git a/EDK/Foundation/Framework/Ppi/DeviceRecoveryModule/DeviceRecoveryModule.h b/EDK/Foundation/Framework/Ppi/DeviceRecoveryModule/DeviceRecoveryModule.h
new file mode 100644
index 0000000..40d0602
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/DeviceRecoveryModule/DeviceRecoveryModule.h
@@ -0,0 +1,68 @@
+/*++
+
+Copyright (c) 1999 - 2002, 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
+which 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:
+
+ DeviceRecoveryModule.h
+
+Abstract:
+
+ Device Recovery Module PPI as defined in EFI 2.0
+
+--*/
+
+#ifndef _PEI_DEVICE_RECOVERY_MODULE_PPI_H
+#define _PEI_DEVICE_RECOVERY_MODULE_PPI_H
+
+#define PEI_DEVICE_RECOVERY_MODULE_INTERFACE_PPI \
+ { \
+ 0x0DE2CE25, 0x446A, 0x45a7, 0xBF, 0xC9, 0x37, 0xDA, 0x26, 0x34, 0x4B, 0x37 \
+ }
+
+EFI_FORWARD_DECLARATION (PEI_DEVICE_RECOVERY_MODULE_INTERFACE);
+
+typedef
+EFI_STATUS
+(EFIAPI *PEI_DEVICE_GET_NUMBER_RECOVERY_CAPSULE) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_DEVICE_RECOVERY_MODULE_INTERFACE * This,
+ OUT UINTN *NumberRecoveryCapsules
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *PEI_DEVICE_GET_RECOVERY_CAPSULE_INFO) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_DEVICE_RECOVERY_MODULE_INTERFACE * This,
+ IN UINTN CapsuleInstance,
+ OUT UINTN *Size,
+ OUT EFI_GUID * CapsuleType
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *PEI_DEVICE_LOAD_RECOVERY_CAPSULE) (
+ IN OUT EFI_PEI_SERVICES **PeiServices,
+ IN PEI_DEVICE_RECOVERY_MODULE_INTERFACE * This,
+ IN UINTN CapsuleInstance,
+ OUT VOID *Buffer
+ );
+
+typedef struct _PEI_DEVICE_RECOVERY_MODULE_INTERFACE {
+ PEI_DEVICE_GET_NUMBER_RECOVERY_CAPSULE GetNumberRecoveryCapsules;
+ PEI_DEVICE_GET_RECOVERY_CAPSULE_INFO GetRecoveryCapsuleInfo;
+ PEI_DEVICE_LOAD_RECOVERY_CAPSULE LoadRecoveryCapsule;
+} PEI_DEVICE_RECOVERY_MODULE_INTERFACE;
+
+extern EFI_GUID gPeiDeviceRecoveryModulePpiGuid;
+
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/DxeIpl/DxeIpl.c b/EDK/Foundation/Framework/Ppi/DxeIpl/DxeIpl.c
new file mode 100644
index 0000000..4884011
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/DxeIpl/DxeIpl.c
@@ -0,0 +1,29 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ DxeIpl.c
+
+Abstract:
+
+ DXE Initial Program Load PPI GUID as defined in Tiano
+
+--*/
+
+#include "Tiano.h"
+#include "PeiBind.h"
+#include "PeiApi.h"
+#include EFI_PPI_DEFINITION (DxeIpl)
+
+EFI_GUID gEfiDxeIplPpiGuid = EFI_DXE_IPL_PPI_GUID;
+
+EFI_GUID_STRING(&gEfiDxeIplPpiGuid, "DxeIpl", "DXE IPL PPI");
diff --git a/EDK/Foundation/Framework/Ppi/DxeIpl/DxeIpl.h b/EDK/Foundation/Framework/Ppi/DxeIpl/DxeIpl.h
new file mode 100644
index 0000000..688ec8a
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/DxeIpl/DxeIpl.h
@@ -0,0 +1,51 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ DxeIpl.h
+
+Abstract:
+
+ DXE Initial Program Load PPI as defined in Tiano
+
+ When the PEI core is done it calls the DXE IPL via this PPI.
+
+--*/
+
+#ifndef _DXE_IPL_H_
+#define _DXE_IPL_H_
+
+#include "Tiano.h"
+#include "PeiHob.h"
+
+#define EFI_DXE_IPL_PPI_GUID \
+ { \
+ 0xae8ce5d, 0xe448, 0x4437, 0xa8, 0xd7, 0xeb, 0xf5, 0xf1, 0x94, 0xf7, 0x31 \
+ }
+
+EFI_FORWARD_DECLARATION (EFI_DXE_IPL_PPI);
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_DXE_IPL_ENTRY) (
+ IN EFI_DXE_IPL_PPI * This,
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN EFI_PEI_HOB_POINTERS HobList
+ );
+
+typedef struct _EFI_DXE_IPL_PPI {
+ EFI_DXE_IPL_ENTRY Entry;
+} EFI_DXE_IPL_PPI;
+
+extern EFI_GUID gEfiDxeIplPpiGuid;
+
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/EcpPciCfg/EcpPciCfg.c b/EDK/Foundation/Framework/Ppi/EcpPciCfg/EcpPciCfg.c
new file mode 100644
index 0000000..6a2194e
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/EcpPciCfg/EcpPciCfg.c
@@ -0,0 +1,28 @@
+/*++
+
+Copyright (c) 2004, Intel Corporation. All rights reserved.<BR>
+This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which 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:
+
+ EcpPciCfg.c
+
+Abstract:
+
+ This PPI which is same with PciCfg PPI. But Modify API is removed.
+
+--*/
+
+#include "Tiano.h"
+#include "Pei.h"
+#include EFI_PPI_DEFINITION (EcpPciCfg)
+
+EFI_GUID gEcpPeiPciCfgPpiGuid = ECP_PEI_PCI_CFG_PPI_GUID;
+
+EFI_GUID_STRING(&gEcpPeiPciCfgPpiGuid, "Ecp PciCfg", "Ecp PciCfg PPI");
diff --git a/EDK/Foundation/Framework/Ppi/EcpPciCfg/EcpPciCfg.h b/EDK/Foundation/Framework/Ppi/EcpPciCfg/EcpPciCfg.h
new file mode 100644
index 0000000..eddd9bb
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/EcpPciCfg/EcpPciCfg.h
@@ -0,0 +1,50 @@
+/*++
+
+Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>
+This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which 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:
+
+ PciCfg.h
+
+Abstract:
+
+ This PPI which is same with PciCfg PPI. But Modify API is removed.
+
+--*/
+
+#ifndef _ECP_PEI_PCI_CFG_H_
+#define _ECP_PEI_PCI_CFG_H_
+#include EFI_PPI_DEFINITION (PciCfg)
+
+#define ECP_PEI_PCI_CFG_PPI_GUID \
+ {0xb0ee53d4, 0xa049, 0x4a79, { 0xb2, 0xff, 0x19, 0xd9, 0xfa, 0xef, 0xaa, 0x94 }}
+
+EFI_FORWARD_DECLARATION (ECP_PEI_PCI_CFG_PPI);
+
+
+typedef
+EFI_STATUS
+(EFIAPI *ECP_PEI_PCI_CFG_PPI_IO) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN ECP_PEI_PCI_CFG_PPI *This,
+ IN PEI_PCI_CFG_PPI_WIDTH Width,
+ IN UINT64 Address,
+ IN OUT VOID *Buffer
+ );
+
+struct _ECP_PEI_PCI_CFG_PPI {
+ ECP_PEI_PCI_CFG_PPI_IO Read;
+ ECP_PEI_PCI_CFG_PPI_IO Write;
+};
+
+extern EFI_GUID gEcpPeiPciCfgPpiGuid;
+
+#endif
+
diff --git a/EDK/Foundation/Framework/Ppi/EdkFrameworkPpiLib.cif b/EDK/Foundation/Framework/Ppi/EdkFrameworkPpiLib.cif
new file mode 100644
index 0000000..fecf03f
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/EdkFrameworkPpiLib.cif
@@ -0,0 +1,74 @@
+<component>
+ name = "EdkFrameworkPpiLib"
+ category = ModulePart
+ LocalRoot = "Edk\Foundation\Framework\Ppi\"
+ RefName = "EdkFrameworkPpiLib"
+[files]
+"EdkFrameworkPpiLib.sdl"
+"EdkFrameworkPpiLib.mak"
+"BlockIo\BlockIo.h"
+"BlockIo\BlockIo.c"
+"BootInRecoveryMode\BootInRecoveryMode.h"
+"BootInRecoveryMode\BootInRecoveryMode.c"
+"BootMode\BootMode.h"
+"BootMode\BootMode.c"
+"BootScriptExecuter\BootScriptExecuter.h"
+"BootScriptExecuter\BootScriptExecuter.c"
+"CpuIo\CpuIo.h"
+"CpuIo\CpuIo.c"
+"DeviceRecoveryModule\DeviceRecoveryModule.h"
+"DeviceRecoveryModule\DeviceRecoveryModule.c"
+"DxeIpl\DxeIpl.h"
+"DxeIpl\DxeIpl.c"
+"EndOfPeiSignal\EndOfPeiSignal.h"
+"EndOfPeiSignal\EndOfPeiSignal.c"
+"FindFv\FindFv.h"
+"FindFv\FindFv.c"
+"LoadFile\LoadFile.h"
+"LoadFile\LoadFile.c"
+"MemoryDiscovered\MemoryDiscovered.h"
+"MemoryDiscovered\MemoryDiscovered.c"
+"PciCfg\PciCfg.h"
+"PciCfg\PciCfg.c"
+"PciCfg2\PciCfg2.h"
+"PciCfg2\PciCfg2.c"
+"RecoveryModule\RecoveryModule.h"
+"RecoveryModule\RecoveryModule.c"
+"Reset\Reset.h"
+"Reset\Reset.c"
+"S3Resume\S3Resume.h"
+"S3Resume\S3Resume.c"
+"SecPlatformInformation\SecPlatformInformation.h"
+"SecPlatformInformation\SecPlatformInformation.c"
+"SectionExtraction\SectionExtraction.h"
+"SectionExtraction\SectionExtraction.c"
+"Security\Security.h"
+"Security\Security.c"
+"Smbus\Smbus.h"
+"Smbus\Smbus.c"
+"Smbus2\Smbus2.h"
+"Smbus2\Smbus2.c"
+"Stall\Stall.h"
+"Stall\Stall.c"
+"StatusCode\StatusCode.h"
+"StatusCode\StatusCode.c"
+"Variable\Variable.h"
+"Variable\Variable.c"
+"Variable2\Variable2.h"
+"Variable2\Variable2.c"
+"Decompress\Decompress.h"
+"Decompress\Decompress.c"
+"FirmwareVolumeInfo\FirmwareVolumeInfo.h"
+"FirmwareVolumeInfo\FirmwareVolumeInfo.c"
+"LoadFile2\LoadFile2.h"
+"LoadFile2\LoadFile2.c"
+"Security2\Security2.h"
+"Security2\Security2.c"
+"FirmwareVolume\FirmwareVolume.h"
+"FirmwareVolume\FirmwareVolume.c"
+"GuidedSectionExtraction\GuidedSectionExtraction.h"
+"GuidedSectionExtraction\GuidedSectionExtraction.c"
+"EdkFrameworkPpiLib.inf"
+"EcpPciCfg\EcpPciCfg.c"
+"EcpPciCfg\EcpPciCfg.h"
+<endComponent>
diff --git a/EDK/Foundation/Framework/Ppi/EdkFrameworkPpiLib.inf b/EDK/Foundation/Framework/Ppi/EdkFrameworkPpiLib.inf
new file mode 100644
index 0000000..95e2542
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/EdkFrameworkPpiLib.inf
@@ -0,0 +1,91 @@
+#/*++
+#
+# Copyright (c) 2004, 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
+# which 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:
+#
+# EdkFrameworkPpiLib.inf
+#
+# Abstract:
+#
+# Component description file.
+#
+#--*/
+
+[defines]
+BASE_NAME= EdkFrameworkPpiLib
+COMPONENT_TYPE= LIBRARY
+
+[includes.common]
+ $(EDK_SOURCE)\Foundation\Framework
+ $(EDK_SOURCE)\Foundation\Efi
+ $(EDK_SOURCE)\Foundation\Include
+ $(EDK_SOURCE)\Foundation\Efi\Include
+ $(EDK_SOURCE)\Foundation\Framework\Include
+ $(EDK_SOURCE)\Foundation\Include\IndustryStandard
+ $(EDK_SOURCE)\Foundation\Include\Pei
+ $(EDK_SOURCE)\Foundation\Library\Pei\Include
+ $(EDK_SOURCE)\Foundation\Core\Dxe
+ $(EDK_SOURCE)\Foundation\Library\Dxe\Include
+
+[nmake.common]
+C_STD_INCLUDE=
+
+[sources.common]
+ BlockIo\BlockIo.h
+ BlockIo\BlockIo.c
+ BootInRecoveryMode\BootInRecoveryMode.h
+ BootInRecoveryMode\BootInRecoveryMode.c
+ BootMode\BootMode.h
+ BootMode\BootMode.c
+ BootScriptExecuter\BootScriptExecuter.h
+ BootScriptExecuter\BootScriptExecuter.c
+ CpuIo\CpuIo.h
+ CpuIo\CpuIo.c
+ DeviceRecoveryModule\DeviceRecoveryModule.h
+ DeviceRecoveryModule\DeviceRecoveryModule.c
+ DxeIpl\DxeIpl.h
+ DxeIpl\DxeIpl.c
+ EndOfPeiSignal\EndOfPeiSignal.h
+ EndOfPeiSignal\EndOfPeiSignal.c
+ FindFv\FindFv.h
+ FindFv\FindFv.c
+ LoadFile\LoadFile.h
+ LoadFile\LoadFile.c
+ MemoryDiscovered\MemoryDiscovered.h
+ MemoryDiscovered\MemoryDiscovered.c
+ PciCfg\PciCfg.h
+ PciCfg\PciCfg.c
+ PciCfg2\PciCfg2.h
+ PciCfg2\PciCfg2.c
+ RecoveryModule\RecoveryModule.h
+ RecoveryModule\RecoveryModule.c
+ Reset\Reset.h
+ Reset\Reset.c
+ S3Resume\S3Resume.h
+ S3Resume\S3Resume.c
+ SecPlatformInformation\SecPlatformInformation.h
+ SecPlatformInformation\SecPlatformInformation.c
+ SectionExtraction\SectionExtraction.h
+ SectionExtraction\SectionExtraction.c
+ Security\Security.h
+ Security\Security.c
+ Smbus\Smbus.h
+ Smbus\Smbus.c
+ Stall\Stall.h
+ Stall\Stall.c
+ StatusCode\StatusCode.h
+ StatusCode\StatusCode.c
+ Variable\Variable.h
+ Variable\Variable.c
+ FirmwareVolumeInfo\FirmwareVolumeInfo.h
+ FirmwareVolumeInfo\FirmwareVolumeInfo.c
+ EcpPciCfg\EcpPciCfg.h
+ EcpPciCfg\EcpPciCfg.c
diff --git a/EDK/Foundation/Framework/Ppi/EdkFrameworkPpiLib.mak b/EDK/Foundation/Framework/Ppi/EdkFrameworkPpiLib.mak
new file mode 100644
index 0000000..1aec2e0
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/EdkFrameworkPpiLib.mak
@@ -0,0 +1,70 @@
+#**********************************************************************
+#**********************************************************************
+#** **
+#** (C)Copyright 1985-2009, American Megatrends, Inc. **
+#** **
+#** All Rights Reserved. **
+#** **
+#** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
+#** **
+#** Phone: (770)-246-8600 **
+#** **
+#**********************************************************************
+#**********************************************************************
+
+#**********************************************************************
+# $Header: /Alaska/SOURCE/Modules/SharkBayRefCodes/IntelEDK/EdkFrameworkPpiLib/EdkFrameworkPpiLib.mak 2 3/27/12 4:26a Jeffch $
+#
+# $Revision: 2 $
+#
+# $Date: 3/27/12 4:26a $
+#**********************************************************************
+# Revision History
+# ----------------
+# $Log: /Alaska/SOURCE/Modules/SharkBayRefCodes/IntelEDK/EdkFrameworkPpiLib/EdkFrameworkPpiLib.mak $
+#
+# 2 3/27/12 4:26a Jeffch
+#
+# 1 1/20/12 4:03a Jeffch
+# Create Intel EDK 1117 Patch 7.
+#
+# 1 9/27/11 6:26a Wesleychen
+# Intel EDK initially releases.
+#
+# 2 9/02/09 3:19a Iminglin
+# EIP24919
+#
+#**********************************************************************
+#<AMI_FHDR_START>
+#
+# Name: EdkFrameworkPpiLib.mak
+#
+# Description:
+#
+#<AMI_FHDR_END>
+#**********************************************************************
+
+$(EDKFRAMEWORKPPILIB) : EdkFrameworkPpiLib
+
+EdkFrameworkPpiLib : $(BUILD_DIR)\EdkFrameworkPpiLib.mak EdkFrameworkPpiLibBin
+
+$(BUILD_DIR)\EdkFrameworkPpiLib.mak : $(EdkFrameworkPpiLib_DIR)\$(@B).cif $(EdkFrameworkPpiLib_DIR)\$(@B).mak $(BUILD_RULES)
+ $(CIF2MAK) $(EdkFrameworkPpiLib_DIR)\$(@B).cif $(CIF2MAK_DEFAULTS)
+
+EdkFrameworkPpiLibBin : $(EDKPPILIB)
+ $(MAKE) /$(MAKEFLAGS) $(EDK_DEFAULTS)\
+ /f $(BUILD_DIR)\EdkFrameworkPpiLib.mak all\
+ TYPE=PEI_LIBRARY \
+#**********************************************************************
+#**********************************************************************
+#** **
+#** (C)Copyright 1985-2009, American Megatrends, Inc. **
+#** **
+#** All Rights Reserved. **
+#** **
+#** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
+#** **
+#** Phone: (770)-246-8600 **
+#** **
+#**********************************************************************
+#********************************************************************** \ No newline at end of file
diff --git a/EDK/Foundation/Framework/Ppi/EdkFrameworkPpiLib.sdl b/EDK/Foundation/Framework/Ppi/EdkFrameworkPpiLib.sdl
new file mode 100644
index 0000000..5485bc0
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/EdkFrameworkPpiLib.sdl
@@ -0,0 +1,26 @@
+TOKEN
+ Name = "EdkFrameworkPpiLib_SUPPORT"
+ Value = "1"
+ Help = "Main switch to enable EdkFrameworkPpiLib support in Project"
+ TokenType = Boolean
+ TargetEQU = Yes
+ TargetMAK = Yes
+ Master = Yes
+End
+
+TOKEN
+ Name = "EDKFRAMEWORKPPILIB"
+ Value = "$(BUILD_DIR)\EdkFrameworkPpiLib.lib"
+ TokenType = Expression
+ TargetMAK = Yes
+End
+
+PATH
+ Name = "EdkFrameworkPpiLib_DIR"
+End
+
+MODULE
+ Help = "Includes EdkFrameworkPpiLib.mak to Project"
+ File = "EdkFrameworkPpiLib.mak"
+End
+
diff --git a/EDK/Foundation/Framework/Ppi/EndOfPeiSignal/EndOfPeiSignal.c b/EDK/Foundation/Framework/Ppi/EndOfPeiSignal/EndOfPeiSignal.c
new file mode 100644
index 0000000..eb43147
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/EndOfPeiSignal/EndOfPeiSignal.c
@@ -0,0 +1,29 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ EndOfPeiSignal.c
+
+Abstract:
+
+ This is installed prior to DXE taking over the memory map
+
+--*/
+
+#include "Tiano.h"
+#include "PeiBind.h"
+#include "PeiApi.h"
+#include EFI_PPI_DEFINITION (EndOfPeiSignal)
+
+EFI_GUID gEndOfPeiSignalPpiGuid = PEI_END_OF_PEI_PHASE_PPI_GUID;
+
+EFI_GUID_STRING(&gEndOfPeiSignalPpiGuid, "EndOfPeiSignal", "End of PEI Phase Signalled PPI");
diff --git a/EDK/Foundation/Framework/Ppi/EndOfPeiSignal/EndOfPeiSignal.h b/EDK/Foundation/Framework/Ppi/EndOfPeiSignal/EndOfPeiSignal.h
new file mode 100644
index 0000000..155ed82
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/EndOfPeiSignal/EndOfPeiSignal.h
@@ -0,0 +1,35 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ EndOfPeiSignal.h
+
+Abstract:
+
+ PPI to be used to signal when the PEI ownership of the memory map
+ officially ends and DXE will take over
+
+--*/
+
+#ifndef _PEI_END_OF_PEI_SIGNAL_PPI_H
+#define _PEI_END_OF_PEI_SIGNAL_PPI_H
+
+#define PEI_END_OF_PEI_PHASE_PPI_GUID \
+ { \
+ 0x605EA650, 0xC65C, 0x42e1, 0xBA, 0x80, 0x91, 0xA5, 0x2A, 0xB6, 0x18, 0xC6 \
+ }
+
+EFI_FORWARD_DECLARATION (PEI_END_OF_PEI_SIGNAL_PPI);
+
+extern EFI_GUID gEndOfPeiSignalPpiGuid;
+
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/FindFv/FindFv.c b/EDK/Foundation/Framework/Ppi/FindFv/FindFv.c
new file mode 100644
index 0000000..91b06fd
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/FindFv/FindFv.c
@@ -0,0 +1,29 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ FindFv.c
+
+Abstract:
+
+ FindFv PPI GUID as defined in Tiano
+
+--*/
+
+#include "Tiano.h"
+#include "PeiBind.h"
+#include "PeiApi.h"
+#include EFI_PPI_DEFINITION (FindFv)
+
+EFI_GUID gEfiFindFvPpiGuid = EFI_FIND_FV_PPI_GUID;
+
+EFI_GUID_STRING(&gEfiFindFvPpiGuid, "FindFv", "FindFv PPI");
diff --git a/EDK/Foundation/Framework/Ppi/FindFv/FindFv.h b/EDK/Foundation/Framework/Ppi/FindFv/FindFv.h
new file mode 100644
index 0000000..da87115
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/FindFv/FindFv.h
@@ -0,0 +1,51 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ FindFv.h
+
+Abstract:
+
+ FindFv PPI as defined in Tiano
+
+ Used to locate FVs that contain PEIMs in PEI
+
+--*/
+
+#ifndef _FIND_FV_H_
+#define _FIND_FV_H_
+
+#include "EfiFirmwareVolumeHeader.h"
+
+#define EFI_FIND_FV_PPI_GUID \
+ { \
+ 0x36164812, 0xa023, 0x44e5, 0xbd, 0x85, 0x5, 0xbf, 0x3c, 0x77, 0x0, 0xaa \
+ }
+
+EFI_FORWARD_DECLARATION (EFI_FIND_FV_PPI);
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_FIND_FV_FINDFV) (
+ IN EFI_FIND_FV_PPI * This,
+ IN EFI_PEI_SERVICES **PeiServices,
+ UINT8 *FvNumber,
+ EFI_FIRMWARE_VOLUME_HEADER **FVAddress
+ );
+
+typedef struct _EFI_FIND_FV_PPI {
+ EFI_FIND_FV_FINDFV FindFv;
+} EFI_FIND_FV_PPI;
+
+extern EFI_GUID gEfiFindFvPpiGuid;
+
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/FirmwareVolume/FirmwareVolume.c b/EDK/Foundation/Framework/Ppi/FirmwareVolume/FirmwareVolume.c
new file mode 100644
index 0000000..5afe01f
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/FirmwareVolume/FirmwareVolume.c
@@ -0,0 +1,30 @@
+/*++
+
+Copyright (c) 2007, 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
+which 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:
+
+ FirmwareVolume.c
+
+Abstract:
+
+ PI 1.0 spec definition.
+
+--*/
+
+
+#include "Tiano.h"
+#include "Pei.h"
+#include EFI_PPI_DEFINITION (FirmwareVolume)
+
+//
+// There is no PPI Guid definition here, since the guid of
+// this ppi is the same as the firmware volume format Guid.
+// \ No newline at end of file
diff --git a/EDK/Foundation/Framework/Ppi/FirmwareVolume/FirmwareVolume.h b/EDK/Foundation/Framework/Ppi/FirmwareVolume/FirmwareVolume.h
new file mode 100644
index 0000000..0c8b508
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/FirmwareVolume/FirmwareVolume.h
@@ -0,0 +1,112 @@
+/*++
+
+Copyright (c) 2007 - 2009, 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
+which 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:
+
+ FirmwareVolume.h
+
+Abstract:
+
+ PI 1.0 spec definition.
+
+--*/
+
+#ifndef __FIRMWARE_VOLUME_H__
+#define __FIRMWARE_VOLUME_H__
+
+EFI_FORWARD_DECLARATION (EFI_PEI_FIRMWARE_VOLUME_PPI);
+
+typedef UINT32 EFI_FV_FILE_ATTRIBUTES;
+typedef VOID * EFI_PEI_FILE_HANDLE;
+typedef VOID * EFI_PEI_FV_HANDLE;
+
+
+typedef struct {
+ EFI_GUID FileName;
+ EFI_FV_FILETYPE FileType;
+ EFI_FV_FILE_ATTRIBUTES FileAttributes;
+ VOID *Buffer;
+ UINT32 BufferSize;
+} EFI_FV_FILE_INFO;
+
+typedef struct {
+ EFI_FVB_ATTRIBUTES FvAttributes;
+ EFI_GUID FvFormat;
+ EFI_GUID FvName;
+ VOID *FvStart;
+ UINT64 FvSize;
+} EFI_FV_INFO;
+
+
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_PEI_FV_PROCESS_FV) (
+ IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This,
+ IN VOID *Buffer,
+ IN UINTN BufferSize,
+ OUT EFI_PEI_FV_HANDLE *FvHandle
+ );
+
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_PEI_FV_FIND_FILE_TYPE) (
+ IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This,
+ IN EFI_FV_FILETYPE SearchType,
+ IN EFI_PEI_FV_HANDLE FvHandle,
+ IN OUT EFI_PEI_FILE_HANDLE *FileHandle
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_PEI_FV_FIND_FILE_NAME) (
+ IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This,
+ IN CONST EFI_GUID *FileName,
+ IN OUT EFI_PEI_FV_HANDLE *FvHandle,
+ OUT EFI_PEI_FILE_HANDLE *FileHandle
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_PEI_FV_GET_FILE_INFO) (
+ IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This,
+ IN EFI_PEI_FILE_HANDLE FileHandle,
+ OUT EFI_FV_FILE_INFO *FileInfo
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_PEI_FV_GET_INFO)(
+ IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This,
+ IN EFI_PEI_FV_HANDLE FvHandle,
+ OUT EFI_FV_INFO *VolumeInfo
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_PEI_FV_FIND_SECTION) (
+ IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This,
+ IN EFI_SECTION_TYPE SearchType,
+ IN EFI_PEI_FILE_HANDLE FileHandle,
+ OUT VOID **SectionData
+ );
+
+typedef struct _EFI_PEI_FIRMWARE_VOLUME_PPI {
+ EFI_PEI_FV_PROCESS_FV ProcessVolume;
+ EFI_PEI_FV_FIND_FILE_TYPE FindFileByType;
+ EFI_PEI_FV_FIND_FILE_NAME FindFileByName;
+ EFI_PEI_FV_GET_FILE_INFO GetFileInfo;
+ EFI_PEI_FV_GET_INFO GetVolumeInfo;
+ EFI_PEI_FV_FIND_SECTION FindSectionByType;
+} EFI_PEI_FIRMWARE_VOLUME_PPI;
+
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/FirmwareVolumeInfo/FirmwareVolumeInfo.c b/EDK/Foundation/Framework/Ppi/FirmwareVolumeInfo/FirmwareVolumeInfo.c
new file mode 100644
index 0000000..ed00f62
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/FirmwareVolumeInfo/FirmwareVolumeInfo.c
@@ -0,0 +1,28 @@
+/*++
+
+Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which 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:
+
+ FirmwareVolumeInfo.c
+
+Abstract:
+
+ PI 1.0 spec definition.
+
+--*/
+
+
+#include "Tiano.h"
+#include "Pei.h"
+#include EFI_PPI_DEFINITION (FirmwareVolumeInfo)
+
+EFI_GUID gEfiFirmwareVolumeInfoPpiGuid = EFI_PEI_FIRMWARE_VOLUME_INFO_PPI_GUID;
+EFI_GUID_STRING(&gEfiFirmwareVolumeInfoPpiGuid, "FirmwareVolumeInfo", "FirmwareVolumeInfo PPI");
diff --git a/EDK/Foundation/Framework/Ppi/FirmwareVolumeInfo/FirmwareVolumeInfo.h b/EDK/Foundation/Framework/Ppi/FirmwareVolumeInfo/FirmwareVolumeInfo.h
new file mode 100644
index 0000000..f1a49ee
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/FirmwareVolumeInfo/FirmwareVolumeInfo.h
@@ -0,0 +1,46 @@
+/*++
+
+Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which 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:
+
+ FirmwareVolumeInfo.h
+
+Abstract:
+
+ PI 1.0 spec definition.
+
+--*/
+
+#ifndef __FIRMWARE_VOLUME_INFO_PPI__
+#define __FIRMWARE_VOLUME_INFO_PPI__
+
+EFI_FORWARD_DECLARATION (EFI_PEI_FIRMWARE_VOLUME_INFO_PPI);
+
+
+//
+// The PPI GUID must match the EFI_GUID FvFormat value
+//
+#define EFI_PEI_FIRMWARE_VOLUME_INFO_PPI_GUID \
+ { 0x49edb1c1, 0xbf21, 0x4761, { 0xbb, 0x12, 0xeb, 0x0, 0x31, 0xaa, 0xbb, 0x39 } }
+
+
+struct _EFI_PEI_FIRMWARE_VOLUME_INFO_PPI {
+ EFI_GUID FvFormat;
+ VOID *FvInfo;
+ UINT32 FvInfoSize;
+ EFI_GUID *ParentFvName;
+ EFI_GUID *ParentFileName;
+};
+
+
+extern EFI_GUID gEfiFirmwareVolumeInfoPpiGuid;
+
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/GuidedSectionExtraction/GuidedSectionExtraction.c b/EDK/Foundation/Framework/Ppi/GuidedSectionExtraction/GuidedSectionExtraction.c
new file mode 100644
index 0000000..a7460ac
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/GuidedSectionExtraction/GuidedSectionExtraction.c
@@ -0,0 +1,29 @@
+/*++
+
+Copyright (c) 2007, 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
+which 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:
+
+ GuidedSectionExtraction.c
+
+Abstract:
+
+ PI 1.0 spec definition.
+
+--*/
+
+#include "Tiano.h"
+#include "Pei.h"
+#include EFI_PPI_DEFINITION (GuidedSectionExtraction)
+
+//
+// There is no PPI Guid definition here since this PPI is for
+// extract EFI_SECTION_GUID_DEFINED type section.
+// \ No newline at end of file
diff --git a/EDK/Foundation/Framework/Ppi/GuidedSectionExtraction/GuidedSectionExtraction.h b/EDK/Foundation/Framework/Ppi/GuidedSectionExtraction/GuidedSectionExtraction.h
new file mode 100644
index 0000000..b53ffa6
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/GuidedSectionExtraction/GuidedSectionExtraction.h
@@ -0,0 +1,42 @@
+/*++
+
+Copyright (c) 2007, 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
+which 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:
+
+ GuidedSectionExtraction.h
+
+Abstract:
+
+ PI 1.0 spec definition.
+
+--*/
+
+
+#ifndef __GUIDED_SECTION_EXTRACTION_PPI_H__
+#define __GUIDED_SECTION_EXTRACTION_PPI_H__
+
+EFI_FORWARD_DECLARATION (EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI);
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_PEI_EXTRACT_GUIDED_SECTION)(
+ IN CONST EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI *This,
+ IN CONST VOID *InputSection,
+ OUT VOID **OutputBuffer,
+ OUT UINTN *OutputSize,
+ OUT UINT32 *AuthenticationStatus
+ );
+
+typedef struct _EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI {
+ EFI_PEI_EXTRACT_GUIDED_SECTION ExtractSection;
+} EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI;
+
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/LoadFile/LoadFile.c b/EDK/Foundation/Framework/Ppi/LoadFile/LoadFile.c
new file mode 100644
index 0000000..e8a4065
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/LoadFile/LoadFile.c
@@ -0,0 +1,29 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ LoadFile.c
+
+Abstract:
+
+ Load File PPI GUID.
+
+--*/
+
+#include "Tiano.h"
+#include "PeiBind.h"
+#include "PeiApi.h"
+#include EFI_PPI_DEFINITION (LoadFile)
+
+EFI_GUID gPeiFvFileLoaderPpiGuid = EFI_PEI_FV_FILE_LOADER_GUID;
+
+EFI_GUID_STRING(&gPeiFvFileLoaderPpiGuid, "FvFileLoader", "Fv File Loader Support PPI");
diff --git a/EDK/Foundation/Framework/Ppi/LoadFile/LoadFile.h b/EDK/Foundation/Framework/Ppi/LoadFile/LoadFile.h
new file mode 100644
index 0000000..6cd4b1d
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/LoadFile/LoadFile.h
@@ -0,0 +1,48 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ LoadFile.h
+
+Abstract:
+
+ Load image file from fv to memory.
+
+--*/
+
+#ifndef _PEI_FV_FILE_LOADER_PPI_H
+#define _PEI_FV_FILE_LOADER_PPI_H
+
+#define EFI_PEI_FV_FILE_LOADER_GUID \
+ { \
+ 0x7e1f0d85, 0x4ff, 0x4bb2, 0x86, 0x6a, 0x31, 0xa2, 0x99, 0x6a, 0x48, 0xa8 \
+ }
+
+EFI_FORWARD_DECLARATION (EFI_PEI_FV_FILE_LOADER_PPI);
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_PEI_FV_LOAD_FILE) (
+ IN EFI_PEI_FV_FILE_LOADER_PPI * This,
+ IN EFI_FFS_FILE_HEADER * FfsHeader,
+ OUT EFI_PHYSICAL_ADDRESS * ImageAddress,
+ OUT UINT64 *ImageSize,
+ OUT EFI_PHYSICAL_ADDRESS * EntryPoint
+ );
+
+typedef struct _EFI_PEI_FV_FILE_LOADER_PPI {
+ EFI_PEI_FV_LOAD_FILE FvLoadFile;
+} EFI_PEI_FV_FILE_LOADER_PPI;
+
+extern EFI_GUID gPeiFvFileLoaderPpiGuid;
+
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/LoadFile2/LoadFile2.c b/EDK/Foundation/Framework/Ppi/LoadFile2/LoadFile2.c
new file mode 100644
index 0000000..9e63e7b
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/LoadFile2/LoadFile2.c
@@ -0,0 +1,29 @@
+/*++
+
+Copyright (c) 2007, 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
+which 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:
+
+ LoadFile2.c
+
+Abstract:
+
+ PI 1.0 spec definition.
+
+--*/
+
+
+#include "Tiano.h"
+#include "Pei.h"
+#include EFI_PPI_DEFINITION (LoadFile2)
+
+
+EFI_GUID gEfiLoadFile2PpiGuid = EFI_PEI_LOAD_FILE_GUID;
+EFI_GUID_STRING(&gEfiLoadFile2PpiGuid, "PeiLoadFile2", "PeiLoadFile2 PPI");
diff --git a/EDK/Foundation/Framework/Ppi/LoadFile2/LoadFile2.h b/EDK/Foundation/Framework/Ppi/LoadFile2/LoadFile2.h
new file mode 100644
index 0000000..4646b1c
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/LoadFile2/LoadFile2.h
@@ -0,0 +1,49 @@
+/*++
+
+Copyright (c) 2007, 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
+which 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:
+
+ LoadFile2.h
+
+Abstract:
+
+ PI 1.0 spec definition.
+
+--*/
+
+#ifndef __LOAD_FILE_PPI_H__
+#define __LOAD_FILE_PPI_H__
+
+EFI_FORWARD_DECLARATION (EFI_PEI_LOAD_FILE_PPI);
+
+#define EFI_PEI_LOAD_FILE_GUID \
+ { 0xb9e0abfe, 0x5979, 0x4914, 0x97, 0x7f, 0x6d, 0xee, 0x78, 0xc2, 0x78, 0xa6}
+
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_PEI_LOAD_FILE) (
+ IN CONST EFI_PEI_LOAD_FILE_PPI *This,
+ IN EFI_PEI_FILE_HANDLE FileHandle,
+ OUT EFI_PHYSICAL_ADDRESS *ImageAddress,
+ OUT UINT64 *ImageSize,
+ OUT EFI_PHYSICAL_ADDRESS *EntryPoint,
+ OUT UINT32 *AuthenticationState
+ );
+
+
+typedef struct _EFI_PEI_LOAD_FILE_PPI {
+ EFI_PEI_LOAD_FILE LoadFile;
+} EFI_PEI_LOAD_FILE_PPI;
+
+
+extern EFI_GUID gEfiLoadFile2PpiGuid;
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/MemoryDiscovered/MemoryDiscovered.c b/EDK/Foundation/Framework/Ppi/MemoryDiscovered/MemoryDiscovered.c
new file mode 100644
index 0000000..8a4779f
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/MemoryDiscovered/MemoryDiscovered.c
@@ -0,0 +1,29 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ MemoryDiscovered.c
+
+Abstract:
+
+ Memory Discovered PPI GUID as defined in PEI EAS
+
+--*/
+
+#include "Tiano.h"
+#include "PeiBind.h"
+#include "PeiApi.h"
+#include EFI_PPI_DEFINITION (MemoryDiscovered)
+
+EFI_GUID gPeiMemoryDiscoveredPpiGuid = PEI_PERMANENT_MEMORY_INSTALLED_PPI_GUID;
+
+EFI_GUID_STRING(&gPeiMemoryDiscoveredPpiGuid, "MemoryDiscovered", "Memory Discovered PPI");
diff --git a/EDK/Foundation/Framework/Ppi/MemoryDiscovered/MemoryDiscovered.h b/EDK/Foundation/Framework/Ppi/MemoryDiscovered/MemoryDiscovered.h
new file mode 100644
index 0000000..7cde19a
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/MemoryDiscovered/MemoryDiscovered.h
@@ -0,0 +1,34 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ MemoryDiscovered.h
+
+Abstract:
+
+ Memory Discovered PPI as defined in Tiano
+
+--*/
+
+#ifndef _PEI_MEMORY_DISCOVERED_PPI_H
+#define _PEI_MEMORY_DISCOVERED_PPI_H
+
+#define PEI_PERMANENT_MEMORY_INSTALLED_PPI_GUID \
+ { \
+ 0xf894643d, 0xc449, 0x42d1, 0x8e, 0xa8, 0x85, 0xbd, 0xd8, 0xc6, 0x5b, 0xde \
+ }
+
+EFI_FORWARD_DECLARATION (PEI_PERMANENT_MEMORY_INSTALLED_PPI);
+
+extern EFI_GUID gPeiMemoryDiscoveredPpiGuid;
+
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/PciCfg/PciCfg.c b/EDK/Foundation/Framework/Ppi/PciCfg/PciCfg.c
new file mode 100644
index 0000000..5bc6f68
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/PciCfg/PciCfg.c
@@ -0,0 +1,28 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ PciCfg.c
+
+Abstract:
+
+ PciCfg PPI GUID as defined in PEI CIS specification.
+
+--*/
+
+#include "Tiano.h"
+#include "Pei.h"
+#include EFI_PPI_DEFINITION (PciCfg)
+
+EFI_GUID gPeiPciCfgPpiInServiceTableGuid = PEI_PCI_CFG_PPI_GUID;
+
+EFI_GUID_STRING(&gPeiPciCfgPpiInServiceTableGuid, "PciCfg", "PciCfg PPI");
diff --git a/EDK/Foundation/Framework/Ppi/PciCfg/PciCfg.h b/EDK/Foundation/Framework/Ppi/PciCfg/PciCfg.h
new file mode 100644
index 0000000..d116b50
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/PciCfg/PciCfg.h
@@ -0,0 +1,65 @@
+/*++
+
+Copyright (c) 2004 - 2007, 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
+which 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:
+
+ PciCfg.h
+
+Abstract:
+
+ PciCfg PPI as defined in PEI CIS specification
+
+ Used to access PCI configuration space in PEI
+
+--*/
+
+#ifndef _PEI_PCI_CFG_H_
+#define _PEI_PCI_CFG_H_
+#include "EfiPciCfg.h"
+
+#define PEI_PCI_CFG_PPI_GUID \
+ { \
+ 0xe1f2eba0, 0xf7b9, 0x4a26, 0x86, 0x20, 0x13, 0x12, 0x21, 0x64, 0x2a, 0x90 \
+ }
+
+EFI_FORWARD_DECLARATION (PEI_PCI_CFG_PPI);
+
+
+typedef
+EFI_STATUS
+(EFIAPI *PEI_PCI_CFG_PPI_IO) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_PCI_CFG_PPI * This,
+ IN PEI_PCI_CFG_PPI_WIDTH Width,
+ IN UINT64 Address,
+ IN OUT VOID *Buffer
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *PEI_PCI_CFG_PPI_RW) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_PCI_CFG_PPI * This,
+ IN PEI_PCI_CFG_PPI_WIDTH Width,
+ IN UINT64 Address,
+ IN UINTN SetBits,
+ IN UINTN ClearBits
+ );
+
+typedef struct _PEI_PCI_CFG_PPI {
+ PEI_PCI_CFG_PPI_IO Read;
+ PEI_PCI_CFG_PPI_IO Write;
+ PEI_PCI_CFG_PPI_RW Modify;
+} PEI_PCI_CFG_PPI;
+
+extern EFI_GUID gPeiPciCfgPpiInServiceTableGuid;
+
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/PciCfg2/PciCfg2.c b/EDK/Foundation/Framework/Ppi/PciCfg2/PciCfg2.c
new file mode 100644
index 0000000..e733d74
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/PciCfg2/PciCfg2.c
@@ -0,0 +1,28 @@
+/*++
+
+Copyright (c) 2007, 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
+which 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:
+
+ PciCfg2.c
+
+Abstract:
+
+ PciCfg2 PPI GUID as defined in PI1.0 specification.
+
+--*/
+
+#include "Tiano.h"
+#include "Pei.h"
+#include EFI_PPI_DEFINITION (PciCfg2)
+
+EFI_GUID gPeiPciCfg2PpiGuid = EFI_PEI_PCI_CFG2_PPI_GUID;
+
+EFI_GUID_STRING(&gPeiPciCfg2PpiGuid, "PciCfg2", "PciCfg2 PPI");
diff --git a/EDK/Foundation/Framework/Ppi/PciCfg2/PciCfg2.h b/EDK/Foundation/Framework/Ppi/PciCfg2/PciCfg2.h
new file mode 100644
index 0000000..285f97c
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/PciCfg2/PciCfg2.h
@@ -0,0 +1,67 @@
+/*++
+
+Copyright (c) 2007, 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
+which 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:
+
+ PciCfg2.h
+
+Abstract:
+
+ PciCfg2 PPI as defined in PI1.0 specification
+
+ Used to access PCI configuration space in PEI
+
+--*/
+
+#ifndef _PEI_PCI_CFG2_H_
+#define _PEI_PCI_CFG2_H_
+#include "EfiPciCfg.h"
+
+//;;## ...AMI_OVERRIDE... Fixed Build error issue.
+#define EFI_PEI_PCI_CFG2_PPI_GUID \
+ { \
+ 0x57a449a, 0x1fdc, 0x4c06, 0xbf, 0xc9, 0xf5, 0x3f, 0x6a, 0x99, 0xbb, 0x92 \
+ }
+
+EFI_FORWARD_DECLARATION (EFI_PEI_PCI_CFG2_PPI);
+
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_PEI_PCI_CFG_PPI_IO) (
+ IN CONST EFI_PEI_SERVICES **PeiServices,
+ IN CONST EFI_PEI_PCI_CFG2_PPI *This,
+ IN EFI_PEI_PCI_CFG_PPI_WIDTH Width,
+ IN UINT64 Address,
+ IN OUT VOID *Buffer
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_PEI_PCI_CFG_PPI_RW) (
+ IN CONST EFI_PEI_SERVICES **PeiServices,
+ IN CONST EFI_PEI_PCI_CFG2_PPI *This,
+ IN EFI_PEI_PCI_CFG_PPI_WIDTH Width,
+ IN UINT64 Address,
+ IN VOID *SetBits,
+ IN VOID *ClearBits
+ );
+
+struct _EFI_PEI_PCI_CFG2_PPI {
+ EFI_PEI_PCI_CFG_PPI_IO Read;
+ EFI_PEI_PCI_CFG_PPI_IO Write;
+ EFI_PEI_PCI_CFG_PPI_RW Modify;
+ UINT16 Segment;
+};
+
+extern EFI_GUID gPeiPciCfg2PpiGuid;
+
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/RecoveryModule/RecoveryModule.c b/EDK/Foundation/Framework/Ppi/RecoveryModule/RecoveryModule.c
new file mode 100644
index 0000000..ad53fe3
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/RecoveryModule/RecoveryModule.c
@@ -0,0 +1,29 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ RecoveryModule.c
+
+Abstract:
+
+ Recovery Module PPI GUID as defined in PEI EAS
+
+--*/
+
+#include "Tiano.h"
+#include "PeiBind.h"
+#include "PeiApi.h"
+#include EFI_PPI_DEFINITION (RecoveryModule)
+
+EFI_GUID gPeiRecoveryModulePpiGuid = PEI_RECOVERY_MODULE_INTERFACE_PPI;
+
+EFI_GUID_STRING(&gPeiRecoveryModulePpiGuid, "RecoveryModule", "Recovery Module PPI");
diff --git a/EDK/Foundation/Framework/Ppi/RecoveryModule/RecoveryModule.h b/EDK/Foundation/Framework/Ppi/RecoveryModule/RecoveryModule.h
new file mode 100644
index 0000000..c36e914
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/RecoveryModule/RecoveryModule.h
@@ -0,0 +1,45 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ RecoveryModule.h
+
+Abstract:
+
+ Recovery Module PPI as defined in Tiano
+
+--*/
+
+#ifndef _PEI_RECOVERY_MODULE_PPI_H
+#define _PEI_RECOVERY_MODULE_PPI_H
+
+#define PEI_RECOVERY_MODULE_INTERFACE_PPI \
+ { \
+ 0xFB6D9542, 0x612D, 0x4f45, 0x87, 0x2F, 0x5C, 0xFF, 0x52, 0xE9, 0x3D, 0xCF \
+ }
+
+EFI_FORWARD_DECLARATION (PEI_RECOVERY_MODULE_INTERFACE);
+
+typedef
+EFI_STATUS
+(EFIAPI *PEI_LOAD_RECOVERY_CAPSULE) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_RECOVERY_MODULE_INTERFACE * This
+ );
+
+typedef struct _PEI_RECOVERY_MODULE_INTERFACE {
+ PEI_LOAD_RECOVERY_CAPSULE LoadRecoveryCapsule;
+} PEI_RECOVERY_MODULE_INTERFACE;
+
+extern EFI_GUID gPeiRecoveryModulePpiGuid;
+
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/Reset/Reset.c b/EDK/Foundation/Framework/Ppi/Reset/Reset.c
new file mode 100644
index 0000000..6f680b2
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/Reset/Reset.c
@@ -0,0 +1,28 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ Reset.c
+
+Abstract:
+
+ Reset Service PPI GUID as defined in Tiano
+
+--*/
+
+#include "Tiano.h"
+#include "Pei.h"
+#include EFI_PPI_DEFINITION (Reset)
+
+EFI_GUID gPeiResetPpiGuid = PEI_RESET_PPI_GUID;
+
+EFI_GUID_STRING(&gPeiResetPpiGuid, "Reset", "Reset PPI");
diff --git a/EDK/Foundation/Framework/Ppi/Reset/Reset.h b/EDK/Foundation/Framework/Ppi/Reset/Reset.h
new file mode 100644
index 0000000..8239b42
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/Reset/Reset.h
@@ -0,0 +1,54 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ Reset.h
+
+Abstract:
+
+ Reset PPI as defined in Tiano
+
+ Used to reset the platform from PEI
+
+--*/
+
+#ifndef _PEI_RESET_H_
+#define _PEI_RESET_H_
+
+#define PEI_RESET_PPI_GUID \
+ { \
+ 0xef398d58, 0x9dfd, 0x4103, 0xbf, 0x94, 0x78, 0xc6, 0xf4, 0xfe, 0x71, 0x2f \
+ }
+
+//
+// *******************************************************
+// PEI_RESET_TYPE
+// *******************************************************
+//
+typedef enum {
+ PeiResetCold,
+ PeiResetWarm,
+} PEI_RESET_TYPE;
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_PEI_RESET_SYSTEM) (
+ IN EFI_PEI_SERVICES **PeiServices
+ );
+
+typedef struct {
+ EFI_PEI_RESET_SYSTEM ResetSystem;
+} PEI_RESET_PPI;
+
+extern EFI_GUID gPeiResetPpiGuid;
+
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/S3Resume/S3Resume.c b/EDK/Foundation/Framework/Ppi/S3Resume/S3Resume.c
new file mode 100644
index 0000000..12b8e56
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/S3Resume/S3Resume.c
@@ -0,0 +1,29 @@
+/*++
+
+ Copyright (c) 2004, 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
+ which 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:
+
+ S3Resume.c
+
+Abstract:
+
+ Boot Script Executer PPI GUID as defined in Tiano
+
+--*/
+
+#include "Tiano.h"
+#include "PeiBind.h"
+#include "PeiApi.h"
+#include EFI_PPI_DEFINITION (S3Resume)
+
+EFI_GUID gPeiS3ResumePpiGuid = PEI_S3_RESUME_PPI_GUID;
+
+EFI_GUID_STRING(&gPeiS3ResumePpiGuid, "S3Resume", "S3 Resume PPI");
diff --git a/EDK/Foundation/Framework/Ppi/S3Resume/S3Resume.h b/EDK/Foundation/Framework/Ppi/S3Resume/S3Resume.h
new file mode 100644
index 0000000..43a2afb
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/S3Resume/S3Resume.h
@@ -0,0 +1,44 @@
+/*++
+
+ Copyright (c) 2004, 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
+ which 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:
+
+ S3Resume.h
+
+Abstract:
+
+ S3 Resume PPI
+
+--*/
+
+#ifndef _PEI_S3_RESUME_PPI_H
+#define _PEI_S3_RESUME_PPI_H
+
+#define PEI_S3_RESUME_PPI_GUID \
+ { \
+ 0x4426CCB2, 0xE684, 0x4a8a, 0xAE, 0x40, 0x20, 0xD4, 0xB0, 0x25, 0xB7, 0x10 \
+ }
+
+EFI_FORWARD_DECLARATION (PEI_S3_RESUME_PPI);
+
+typedef
+EFI_STATUS
+(EFIAPI *PEI_S3_RESUME_PPI_RESTORE_CONFIG) (
+ IN EFI_PEI_SERVICES **PeiServices
+ );
+
+typedef struct _PEI_S3_RESUME_PPI {
+ PEI_S3_RESUME_PPI_RESTORE_CONFIG S3RestoreConfig;
+} PEI_S3_RESUME_PPI;
+
+extern EFI_GUID gPeiS3ResumePpiGuid;
+
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/SecPlatformInformation/SecPlatformInformation.c b/EDK/Foundation/Framework/Ppi/SecPlatformInformation/SecPlatformInformation.c
new file mode 100644
index 0000000..ecc0c34
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/SecPlatformInformation/SecPlatformInformation.c
@@ -0,0 +1,29 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ SecPlatformInformation.c
+
+Abstract:
+
+ Sec Platform Information as defined in PEI EAS
+
+--*/
+
+#include "Tiano.h"
+#include "PeiBind.h"
+#include "PeiApi.h"
+#include EFI_PPI_DEFINITION (SecPlatformInformation)
+
+EFI_GUID gEfiSecPlatformInformationPpiGuid = EFI_SEC_PLATFORM_INFORMATION_GUID;
+
+EFI_GUID_STRING(&gEfiSecPlatformInformationPpiGuid, "SecPlatformInformation", "Sec Platform Information");
diff --git a/EDK/Foundation/Framework/Ppi/SecPlatformInformation/SecPlatformInformation.h b/EDK/Foundation/Framework/Ppi/SecPlatformInformation/SecPlatformInformation.h
new file mode 100644
index 0000000..f9ea0e6
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/SecPlatformInformation/SecPlatformInformation.h
@@ -0,0 +1,57 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ SecPlatformInformation.h
+
+Abstract:
+
+ Sec Platform Information PPI as defined in Tiano
+
+--*/
+
+#ifndef _PEI_SEC_PLATFORM_INFORMATION_PPI_H
+#define _PEI_SEC_PLATFORM_INFORMATION_PPI_H
+
+#define EFI_SEC_PLATFORM_INFORMATION_GUID \
+ { \
+ 0x6f8c2b35, 0xfef4, 0x448d, 0x82, 0x56, 0xe1, 0x1b, 0x19, 0xd6, 0x10, 0x77 \
+ }
+
+EFI_FORWARD_DECLARATION (EFI_SEC_PLATFORM_INFORMATION_PPI);
+
+extern EFI_GUID gEfiSecPlatformInformationPpiGuid;
+
+typedef struct {
+ UINTN HealthFlags;
+} SEC_PLATFORM_INFORMATION_RECORD;
+
+typedef struct {
+ UINTN BootPhase; // entry r20 value
+ UINTN UniqueId; // PAL arbitration ID
+ UINTN HealthStat; // Health Status
+ UINTN PALRetAddress; // return address to PAL
+} IPF_HANDOFF_STATUS;
+
+typedef
+EFI_STATUS
+(EFIAPI *SEC_PLATFORM_INFORMATION) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN OUT UINT64 *StructureSize,
+ IN OUT SEC_PLATFORM_INFORMATION_RECORD * PlatformInformationRecord
+ );
+
+typedef struct _EFI_SEC_PLATFORM_INFORMATION_PPI {
+ SEC_PLATFORM_INFORMATION PlatformInformation;
+} EFI_SEC_PLATFORM_INFORMATION_PPI;
+
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/SectionExtraction/SectionExtraction.c b/EDK/Foundation/Framework/Ppi/SectionExtraction/SectionExtraction.c
new file mode 100644
index 0000000..7f3d962
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/SectionExtraction/SectionExtraction.c
@@ -0,0 +1,28 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ SectionExtraction.c
+
+Abstract:
+
+ Section Extraction Protocol PPI GUID as defined in Tiano
+
+--*/
+
+#include "Tiano.h"
+#include "Pei.h"
+#include EFI_PPI_DEFINITION (SectionExtraction)
+
+EFI_GUID gPeiSectionExtractionPpiGuid = EFI_PEI_SECTION_EXTRACTION_PPI_GUID;
+
+EFI_GUID_STRING(&gPeiSectionExtractionPpiGuid, "Section Extraction PPI", "Section Extraction PPI");
diff --git a/EDK/Foundation/Framework/Ppi/SectionExtraction/SectionExtraction.h b/EDK/Foundation/Framework/Ppi/SectionExtraction/SectionExtraction.h
new file mode 100644
index 0000000..1e1a501
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/SectionExtraction/SectionExtraction.h
@@ -0,0 +1,59 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ SectionExtraction.h
+
+Abstract:
+
+ Section Extraction PPI as defined in Tiano
+
+--*/
+
+#ifndef _SECTION_EXTRACTION_PPI_H_
+#define _SECTION_EXTRACTION_PPI_H_
+
+#define EFI_PEI_SECTION_EXTRACTION_PPI_GUID \
+ { \
+ 0x4F89E208, 0xE144, 0x4804, 0x9E, 0xC8, 0x0F, 0x89, 0x4F, 0x7E, 0x36, 0xD7 \
+ }
+
+EFI_FORWARD_DECLARATION (EFI_PEI_SECTION_EXTRACTION_PPI);
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_PEI_GET_SECTION) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN EFI_PEI_SECTION_EXTRACTION_PPI * This,
+ IN EFI_SECTION_TYPE * SectionType,
+ IN EFI_GUID * SectionDefinitionGuid, OPTIONAL
+ IN UINTN SectionInstance,
+ IN VOID **Buffer,
+ IN OUT UINT32 *BufferSize,
+ OUT UINT32 *AuthenticationStatus
+ );
+
+//
+// Bit values for AuthenticationStatus
+//
+#define EFI_PEI_AUTH_STATUS_PLATFORM_OVERRIDE 0x01
+#define EFI_PEI_AUTH_STATUS_IMAGE_SIGNED 0x02
+#define EFI_PEI_AUTH_STATUS_NOT_TESTED 0x04
+#define EFI_PEI_AUTH_STATUS_TEST_FAILED 0x08
+
+typedef struct _EFI_PEI_SECTION_EXTRACTION_PPI {
+ EFI_PEI_GET_SECTION PeiGetSection;
+} EFI_PEI_SECTION_EXTRACTION_PPI;
+
+extern EFI_GUID gPeiSectionExtractionPpiGuid;
+
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/Security/Security.c b/EDK/Foundation/Framework/Ppi/Security/Security.c
new file mode 100644
index 0000000..9d18044
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/Security/Security.c
@@ -0,0 +1,28 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ Security.c
+
+Abstract:
+
+ Security Architectural Protocol PPI GUID as defined in Tiano
+
+--*/
+
+#include "Tiano.h"
+#include "Pei.h"
+#include EFI_PPI_DEFINITION (Security)
+
+EFI_GUID gPeiSecurityPpiGuid = PEI_SECURITY_PPI_GUID;
+
+EFI_GUID_STRING(&gPeiSecurityPpiGuid, "Security PPI", "Security Arch PPI");
diff --git a/EDK/Foundation/Framework/Ppi/Security/Security.h b/EDK/Foundation/Framework/Ppi/Security/Security.h
new file mode 100644
index 0000000..ec72ffa
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/Security/Security.h
@@ -0,0 +1,48 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ Security.h
+
+Abstract:
+
+ Security Architectural PPI as defined in Tiano
+
+--*/
+
+#ifndef _SECURITY_PPI_H_
+#define _SECURITY_PPI_H_
+
+#define PEI_SECURITY_PPI_GUID \
+ { \
+ 0x1388066e, 0x3a57, 0x4efa, 0x98, 0xf3, 0xc1, 0x2f, 0x3a, 0x95, 0x8a, 0x29 \
+ }
+
+EFI_FORWARD_DECLARATION (PEI_SECURITY_PPI);
+
+typedef
+EFI_STATUS
+(EFIAPI *PEI_SECURITY_AUTHENTICATION_STATE) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_SECURITY_PPI * This,
+ IN UINT32 AuthenticationStatus,
+ IN EFI_FFS_FILE_HEADER * FfsFileHeader,
+ IN OUT BOOLEAN *StartCrisisRecovery
+ );
+
+typedef struct _PEI_SECURITY_PPI {
+ PEI_SECURITY_AUTHENTICATION_STATE AuthenticationState;
+} PEI_SECURITY_PPI;
+
+extern EFI_GUID gPeiSecurityPpiGuid;
+
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/Security2/Security2.c b/EDK/Foundation/Framework/Ppi/Security2/Security2.c
new file mode 100644
index 0000000..b2ada7f
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/Security2/Security2.c
@@ -0,0 +1,28 @@
+/*++
+
+Copyright (c) 2007, 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
+which 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:
+
+ Security2.c
+
+Abstract:
+
+ PI 1.0 spec definition.
+
+--*/
+
+#include "Tiano.h"
+#include "Pei.h"
+#include EFI_PPI_DEFINITION (Security2)
+
+EFI_GUID gEfiPeiSecurity2PpiGuid = EFI_PEI_SECURITY2_PPI_GUID;
+
+EFI_GUID_STRING(&gEfiPeiSecurity2PpiGuid, "Security2 PPI", "Security2 Arch PPI");
diff --git a/EDK/Foundation/Framework/Ppi/Security2/Security2.h b/EDK/Foundation/Framework/Ppi/Security2/Security2.h
new file mode 100644
index 0000000..55d2031
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/Security2/Security2.h
@@ -0,0 +1,50 @@
+/*++
+
+Copyright (c) 2007, 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
+which 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:
+
+ Security2.h
+
+Abstract:
+
+ PI 1.0 spec definition.
+
+--*/
+
+
+#ifndef __SECURITY2_PPI_H__
+#define __SECURITY2_PPI_H__
+
+#define EFI_PEI_SECURITY2_PPI_GUID \
+ { 0xdcd0be23, 0x9586, 0x40f4, 0xb6, 0x43, 0x6, 0x52, 0x2c, 0xed, 0x4e, 0xde}
+
+
+EFI_FORWARD_DECLARATION (EFI_PEI_SECURITY2_PPI);
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_PEI_SECURITY_AUTHENTICATION_STATE) (
+ IN CONST EFI_PEI_SERVICES **PeiServices,
+ IN CONST EFI_PEI_SECURITY2_PPI *This,
+ IN UINT32 AuthenticationStatus,
+ IN EFI_PEI_FV_HANDLE FvHandle,
+ IN EFI_PEI_FILE_HANDLE FileHandle,
+ IN OUT BOOLEAN *DeferExection
+ );
+
+typedef struct _EFI_PEI_SECURITY2_PPI {
+ EFI_PEI_SECURITY_AUTHENTICATION_STATE AuthenticationState;
+} EFI_PEI_SECURITY2_PPI;
+
+
+extern EFI_GUID gEfiPeiSecurity2PpiGuid;
+
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/Smbus/Smbus.c b/EDK/Foundation/Framework/Ppi/Smbus/Smbus.c
new file mode 100644
index 0000000..ad2340c
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/Smbus/Smbus.c
@@ -0,0 +1,29 @@
+/*++
+
+Copyright (c) 1999 - 2006, 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
+which 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:
+
+ Smbus.c
+
+Abstract:
+
+ Smbus PPI GUID as defined in EFI 2.0
+
+--*/
+
+#include "Tiano.h"
+#include "Pei.h"
+#include EFI_PPI_DEFINITION (Smbus)
+
+EFI_GUID gPeiSmbusPpiGuid = PEI_SMBUS_PPI_GUID;
+
+EFI_GUID_STRING(&gPeiSmbusPpiGuid, "Smbus", "Smbus PPI");
diff --git a/EDK/Foundation/Framework/Ppi/Smbus/Smbus.h b/EDK/Foundation/Framework/Ppi/Smbus/Smbus.h
new file mode 100644
index 0000000..c4c6fbe
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/Smbus/Smbus.h
@@ -0,0 +1,115 @@
+/*++
+
+Copyright (c) 1999 - 2006, 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
+which 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:
+
+ Smbus.h
+
+Abstract:
+
+ Smbus PPI as defined in EFI 2.0
+
+--*/
+
+#ifndef _PEI_SMBUS_PPI_H
+#define _PEI_SMBUS_PPI_H
+
+#include "EfiSmbus.h"
+
+#define PEI_SMBUS_PPI_GUID \
+ { \
+ 0xabd42895, 0x78cf, 0x4872, 0x84, 0x44, 0x1b, 0x5c, 0x18, 0xb, 0xfb, 0xda \
+ }
+
+EFI_FORWARD_DECLARATION (PEI_SMBUS_PPI);
+
+typedef
+EFI_STATUS
+(EFIAPI *PEI_SMBUS_PPI_EXECUTE_OPERATION) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_SMBUS_PPI * This,
+ IN EFI_SMBUS_DEVICE_ADDRESS SlaveAddress,
+ IN EFI_SMBUS_DEVICE_COMMAND Command,
+ IN EFI_SMBUS_OPERATION Operation,
+ IN BOOLEAN PecCheck,
+ IN OUT UINTN *Length,
+ IN OUT VOID *Buffer
+ );
+
+//;;## ...AMI_OVERRIDE... Support PI1.x typedef struct {
+//;;## ...AMI_OVERRIDE... Support PI1.x UINT32 VendorSpecificId;
+//;;## ...AMI_OVERRIDE... Support PI1.x UINT16 SubsystemDeviceId;
+//;;## ...AMI_OVERRIDE... Support PI1.x UINT16 SubsystemVendorId;
+//;;## ...AMI_OVERRIDE... Support PI1.x UINT16 Interface;
+//;;## ...AMI_OVERRIDE... Support PI1.x UINT16 DeviceId;
+//;;## ...AMI_OVERRIDE... Support PI1.x UINT16 VendorId;
+//;;## ...AMI_OVERRIDE... Support PI1.x UINT8 VendorRevision;
+//;;## ...AMI_OVERRIDE... Support PI1.x UINT8 DeviceCapabilities;
+//;;## ...AMI_OVERRIDE... Support PI1.x } EFI_SMBUS_UDID;
+
+typedef
+EFI_STATUS
+(EFIAPI *PEI_SMBUS_NOTIFY_FUNCTION) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_SMBUS_PPI * SmbusPpi,
+ IN EFI_SMBUS_DEVICE_ADDRESS SlaveAddress,
+ IN UINTN Data
+ );
+
+//
+// If ArpAll is TRUE, SmbusUdid/SlaveAddress is Optional.
+// If FALSE, ArpDevice will enum SmbusUdid and the address will be at SlaveAddress
+//
+typedef
+EFI_STATUS
+(EFIAPI *PEI_SMBUS_PPI_ARP_DEVICE) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_SMBUS_PPI * This,
+ IN BOOLEAN ArpAll,
+ IN EFI_SMBUS_UDID * SmbusUdid, OPTIONAL
+ IN OUT EFI_SMBUS_DEVICE_ADDRESS * SlaveAddress OPTIONAL
+ );
+
+//;;## ...AMI_OVERRIDE... Support PI1.x typedef struct {
+//;;## ...AMI_OVERRIDE... Support PI1.x EFI_SMBUS_DEVICE_ADDRESS SmbusDeviceAddress;
+//;;## ...AMI_OVERRIDE... Support PI1.x EFI_SMBUS_UDID SmbusDeviceUdid;
+//;;## ...AMI_OVERRIDE... Support PI1.x } EFI_SMBUS_DEVICE_MAP;
+
+typedef
+EFI_STATUS
+(EFIAPI *PEI_SMBUS_PPI_GET_ARP_MAP) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_SMBUS_PPI * This,
+ IN OUT UINTN *Length,
+ IN OUT EFI_SMBUS_DEVICE_MAP **SmbusDeviceMap
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *PEI_SMBUS_PPI_NOTIFY) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_SMBUS_PPI * This,
+ IN EFI_SMBUS_DEVICE_ADDRESS SlaveAddress,
+ IN UINTN Data,
+ IN PEI_SMBUS_NOTIFY_FUNCTION NotifyFunction
+ );
+
+typedef struct _PEI_SMBUS_PPI {
+ PEI_SMBUS_PPI_EXECUTE_OPERATION Execute;
+ PEI_SMBUS_PPI_ARP_DEVICE ArpDevice;
+ PEI_SMBUS_PPI_GET_ARP_MAP GetArpMap;
+ PEI_SMBUS_PPI_NOTIFY Notify;
+} PEI_SMBUS_PPI;
+
+extern EFI_GUID gPeiSmbusPpiGuid;
+
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/Smbus2/Smbus2.c b/EDK/Foundation/Framework/Ppi/Smbus2/Smbus2.c
new file mode 100644
index 0000000..bbd372a
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/Smbus2/Smbus2.c
@@ -0,0 +1,29 @@
+/*++
+
+Copyright (c) 2007, 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
+which 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:
+
+ Smbus2.c
+
+Abstract:
+
+ Smbus2 PPI GUID as defined in PI1.0
+
+--*/
+
+#include "Tiano.h"
+#include "Pei.h"
+#include EFI_PPI_DEFINITION (Smbus2)
+
+EFI_GUID gPeiSmbus2PpiGuid = PEI_SMBUS2_PPI_GUID;
+
+EFI_GUID_STRING(&gPeiSmbus2PpiGuid, "Smbus2", "Smbus2 PPI");
diff --git a/EDK/Foundation/Framework/Ppi/Smbus2/Smbus2.h b/EDK/Foundation/Framework/Ppi/Smbus2/Smbus2.h
new file mode 100644
index 0000000..23bfa93
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/Smbus2/Smbus2.h
@@ -0,0 +1,96 @@
+/*++
+
+Copyright (c) 2007, 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
+which 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:
+
+ Smbus2.h
+
+Abstract:
+
+ Smbus2 PPI as defined in PI 1.0
+
+--*/
+
+#ifndef _PEI_SMBUS2_PPI_H
+#define _PEI_SMBUS2_PPI_H
+
+#include "EfiSmbus.h"
+
+#define PEI_SMBUS2_PPI_GUID \
+ { \
+ 0x9ca93627, 0xb65b, 0x4324, 0xa2, 0x2, 0xc0, 0xb4, 0x61, 0x76, 0x45, 0x43 \
+ }
+
+EFI_FORWARD_DECLARATION (EFI_PEI_SMBUS2_PPI);
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_PEI_SMBUS2_PPI_EXECUTE_OPERATION) (
+ IN CONST EFI_PEI_SMBUS2_PPI * This,
+ IN EFI_SMBUS_DEVICE_ADDRESS SlaveAddress,
+ IN EFI_SMBUS_DEVICE_COMMAND Command,
+ IN EFI_SMBUS_OPERATION Operation,
+ IN BOOLEAN PecCheck,
+ IN OUT UINTN *Length,
+ IN OUT VOID *Buffer
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_PEI_SMBUS_NOTIFY2_FUNCTION) (
+ IN CONST EFI_PEI_SMBUS2_PPI * SmbusPpi,
+ IN EFI_SMBUS_DEVICE_ADDRESS SlaveAddress,
+ IN UINTN Data
+ );
+
+//
+// If ArpAll is TRUE, SmbusUdid/SlaveAddress is Optional.
+// If FALSE, ArpDevice will enum SmbusUdid and the address will be at SlaveAddress
+//
+typedef
+EFI_STATUS
+(EFIAPI *EFI_PEI_SMBUS2_PPI_ARP_DEVICE) (
+ IN CONST EFI_PEI_SMBUS2_PPI * This,
+ IN BOOLEAN ArpAll,
+ IN EFI_SMBUS_UDID * SmbusUdid, OPTIONAL
+ IN OUT EFI_SMBUS_DEVICE_ADDRESS * SlaveAddress OPTIONAL
+ );
+
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_PEI_SMBUS2_PPI_GET_ARP_MAP) (
+ IN CONST EFI_PEI_SMBUS2_PPI * This,
+ IN OUT UINTN *Length,
+ IN OUT EFI_SMBUS_DEVICE_MAP **SmbusDeviceMap
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_PEI_SMBUS2_PPI_NOTIFY) (
+ IN CONST EFI_PEI_SMBUS2_PPI * This,
+ IN EFI_SMBUS_DEVICE_ADDRESS SlaveAddress,
+ IN UINTN Data,
+ IN EFI_PEI_SMBUS_NOTIFY2_FUNCTION NotifyFunction
+ );
+
+typedef struct _EFI_PEI_SMBUS2_PPI {
+ EFI_PEI_SMBUS2_PPI_EXECUTE_OPERATION Execute;
+ EFI_PEI_SMBUS2_PPI_ARP_DEVICE ArpDevice;
+ EFI_PEI_SMBUS2_PPI_GET_ARP_MAP GetArpMap;
+ EFI_PEI_SMBUS2_PPI_NOTIFY Notify;
+ EFI_GUID Identifier;
+} EFI_PEI_SMBUS2_PPI;
+
+extern EFI_GUID gPeiSmbus2PpiGuid;
+
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/Stall/Stall.c b/EDK/Foundation/Framework/Ppi/Stall/Stall.c
new file mode 100644
index 0000000..8d00347
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/Stall/Stall.c
@@ -0,0 +1,28 @@
+/*++
+
+ Copyright (c) 1999 - 2002, 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
+ which 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:
+
+ Stall.c
+
+Abstract:
+
+ Stall PPI
+
+--*/
+
+#include "Tiano.h"
+#include "Pei.h"
+#include EFI_PPI_DEFINITION (Stall)
+
+EFI_GUID gPeiStallPpiGuid = PEI_STALL_PPI_GUID;
+
+EFI_GUID_STRING(&gPeiStallPpiGuid, "Stall", "Stall PPI");
diff --git a/EDK/Foundation/Framework/Ppi/Stall/Stall.h b/EDK/Foundation/Framework/Ppi/Stall/Stall.h
new file mode 100644
index 0000000..c878a63
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/Stall/Stall.h
@@ -0,0 +1,47 @@
+/*++
+
+ Copyright (c) 1999 - 2002, 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
+ which 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:
+
+ Stall.h
+
+Abstract:
+
+ Stall PPI
+
+--*/
+
+#ifndef _PEI_STALL_PPI_H_
+#define _PEI_STALL_PPI_H_
+
+#define PEI_STALL_PPI_GUID \
+ { \
+ 0x1f4c6f90, 0xb06b, 0x48d8, 0xa2, 0x01, 0xba, 0xe5, 0xf1, 0xcd, 0x7d, 0x56 \
+ }
+
+EFI_FORWARD_DECLARATION (PEI_STALL_PPI);
+
+typedef
+EFI_STATUS
+(EFIAPI *PEI_STALL) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_STALL_PPI * This,
+ IN UINTN Microseconds
+ );
+
+typedef struct _PEI_STALL_PPI {
+ UINTN Resolution;
+ PEI_STALL Stall;
+} PEI_STALL_PPI;
+
+extern EFI_GUID gPeiStallPpiGuid;
+
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/StatusCode/StatusCode.c b/EDK/Foundation/Framework/Ppi/StatusCode/StatusCode.c
new file mode 100644
index 0000000..6fc697c
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/StatusCode/StatusCode.c
@@ -0,0 +1,29 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ StatusCode.c
+
+Abstract:
+
+ Status Code PPI GUID as defined in PEI EAS
+
+--*/
+
+#include "Tiano.h"
+#include "PeiBind.h"
+#include "PeiApi.h"
+#include EFI_PPI_DEFINITION (StatusCode)
+
+EFI_GUID gPeiStatusCodePpiGuid = PEI_STATUS_CODE_PPI_GUID;
+
+EFI_GUID_STRING(&gPeiProgressCodePpiGuid, "StatusCode", "Status Code PPI");
diff --git a/EDK/Foundation/Framework/Ppi/StatusCode/StatusCode.h b/EDK/Foundation/Framework/Ppi/StatusCode/StatusCode.h
new file mode 100644
index 0000000..a19800b
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/StatusCode/StatusCode.h
@@ -0,0 +1,49 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ StatusCode.h
+
+Abstract:
+
+ Status Code PPI as defined in Tiano
+
+--*/
+
+#ifndef _PEI_STATUS_CODE_PPI_H
+#define _PEI_STATUS_CODE_PPI_H
+
+#define PEI_STATUS_CODE_PPI_GUID \
+ { \
+ 0x229832d3, 0x7a30, 0x4b36, 0xb8, 0x27, 0xf4, 0xc, 0xb7, 0xd4, 0x54, 0x36 \
+ }
+
+EFI_FORWARD_DECLARATION (PEI_STATUS_CODE_PPI);
+
+typedef
+EFI_STATUS
+(EFIAPI *PEI_REPORT_STATUS_CODE) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN EFI_STATUS_CODE_TYPE CodeType,
+ IN EFI_STATUS_CODE_VALUE Value,
+ IN UINT32 Instance,
+ IN EFI_GUID * CallerId,
+ IN EFI_STATUS_CODE_DATA * Data OPTIONAL
+ );
+
+typedef struct _PEI_STATUS_CODE_PPI {
+ PEI_REPORT_STATUS_CODE ReportStatusCode;
+} PEI_STATUS_CODE_PPI;
+
+extern EFI_GUID gPeiStatusCodePpiGuid;
+
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/Variable/Variable.c b/EDK/Foundation/Framework/Ppi/Variable/Variable.c
new file mode 100644
index 0000000..77d8359
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/Variable/Variable.c
@@ -0,0 +1,29 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ Variable.c
+
+Abstract:
+
+ Boot Mode PPI GUID as defined in PEI EAS
+
+--*/
+
+#include "Tiano.h"
+#include "PeiBind.h"
+#include "PeiApi.h"
+#include EFI_PPI_DEFINITION (Variable)
+
+EFI_GUID gPeiReadOnlyVariablePpiGuid = PEI_READ_ONLY_VARIABLE_ACCESS_PPI_GUID;
+
+EFI_GUID_STRING(&gPeiReadOnlyVariablePpiGuid, "Variable", "Read Only Variable PPI");
diff --git a/EDK/Foundation/Framework/Ppi/Variable/Variable.h b/EDK/Foundation/Framework/Ppi/Variable/Variable.h
new file mode 100644
index 0000000..90965cb
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/Variable/Variable.h
@@ -0,0 +1,69 @@
+/*++
+
+Copyright (c) 2004, 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
+which 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:
+
+ Variable.h
+
+Abstract:
+
+ Read-only Variable Service PPI as defined in Tiano
+
+--*/
+
+#ifndef _PEI_READ_ONLY_VARIABLE_PPI_H
+#define _PEI_READ_ONLY_VARIABLE_PPI_H
+
+#include "EfiVariable.h" //;;## ...AMI_OVERRIDE... Support PI1.x
+
+#define PEI_READ_ONLY_VARIABLE_ACCESS_PPI_GUID \
+ { \
+ 0x3cdc90c6, 0x13fb, 0x4a75, 0x9e, 0x79, 0x59, 0xe9, 0xdd, 0x78, 0xb9, 0xfa \
+ }
+
+//
+// Variable attributes
+//
+//;;## ...AMI_OVERRIDE... Support PI1.x #define EFI_VARIABLE_NON_VOLATILE 0x00000001
+//;;## ...AMI_OVERRIDE... Support PI1.x #define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x00000002
+//;;## ...AMI_OVERRIDE... Support PI1.x #define EFI_VARIABLE_RUNTIME_ACCESS 0x00000004
+//;;## ...AMI_OVERRIDE... Support PI1.x #define EFI_VARIABLE_READ_ONLY 0x00000008
+
+typedef
+EFI_STATUS
+(EFIAPI *PEI_GET_VARIABLE) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN CHAR16 *VariableName,
+ IN EFI_GUID * VendorGuid,
+ OUT UINT32 *Attributes OPTIONAL,
+ IN OUT UINTN *DataSize,
+ OUT VOID *Data
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *PEI_GET_NEXT_VARIABLE_NAME) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN OUT UINTN *VariableNameSize,
+ IN OUT CHAR16 *VariableName,
+ IN OUT EFI_GUID * VendorGuid
+ );
+
+typedef struct PEI_READ_ONLY_VARIABLE_PPI {
+ PEI_GET_VARIABLE PeiGetVariable;
+ PEI_GET_NEXT_VARIABLE_NAME PeiGetNextVariableName;
+} PEI_READ_ONLY_VARIABLE_PPI;
+
+EFI_FORWARD_DECLARATION (PEI_MASTER_BOOT_MODE_PPI);
+
+extern EFI_GUID gPeiReadOnlyVariablePpiGuid;
+
+#endif
diff --git a/EDK/Foundation/Framework/Ppi/Variable2/Variable2.c b/EDK/Foundation/Framework/Ppi/Variable2/Variable2.c
new file mode 100644
index 0000000..3f4d57a
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/Variable2/Variable2.c
@@ -0,0 +1,29 @@
+/*++
+
+Copyright (c) 2007, 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
+which 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:
+
+ Variable2.c
+
+Abstract:
+
+ Read-only Variable2 Service PPI as defined in PI1.0
+
+--*/
+
+#include "Tiano.h"
+#include "PeiBind.h"
+#include "PeiApi.h"
+#include EFI_PPI_DEFINITION (Variable2)
+
+EFI_GUID gPeiReadOnlyVariable2PpiGuid = EFI_PEI_READ_ONLY_VARIABLE2_PPI_GUID;
+
+EFI_GUID_STRING(&gPeiReadOnlyVariable2PpiGuid, "Variable2", "Read Only Variable2 PPI");
diff --git a/EDK/Foundation/Framework/Ppi/Variable2/Variable2.h b/EDK/Foundation/Framework/Ppi/Variable2/Variable2.h
new file mode 100644
index 0000000..31020ed
--- /dev/null
+++ b/EDK/Foundation/Framework/Ppi/Variable2/Variable2.h
@@ -0,0 +1,61 @@
+/*++
+
+Copyright (c) 2007, 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
+which 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:
+
+ Variable2.h
+
+Abstract:
+
+ Read-only Variable2 Service PPI as defined in PI1.0
+
+--*/
+
+#ifndef _PEI_READ_ONLY_VARIABLE2_PPI_H
+#define _PEI_READ_ONLY_VARIABLE2_PPI_H
+
+#include "EfiVariable.h"
+
+#define EFI_PEI_READ_ONLY_VARIABLE2_PPI_GUID \
+ { \
+ 0x2ab86ef5, 0xecb5, 0x4134, 0xb5, 0x56, 0x38, 0x54, 0xca, 0x1f, 0xe1, 0xb4 \
+ }
+
+EFI_FORWARD_DECLARATION (EFI_PEI_READ_ONLY_VARIABLE2_PPI);
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_PEI_GET_VARIABLE2) (
+ IN CONST EFI_PEI_READ_ONLY_VARIABLE2_PPI *This,
+ IN CONST CHAR16 *VariableName,
+ IN CONST EFI_GUID *VariableGuid,
+ OUT UINT32 *Attributes,
+ IN OUT UINTN *DataSize,
+ OUT VOID *Data
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_PEI_GET_NEXT_VARIABLE_NAME2) (
+ IN CONST EFI_PEI_READ_ONLY_VARIABLE2_PPI *This,
+ IN OUT UINTN *VariableNameSize,
+ IN OUT CHAR16 *VariableName,
+ IN OUT EFI_GUID *VariableGuid
+ );
+
+typedef struct _EFI_PEI_READ_ONLY_VARIABLE2_PPI {
+ EFI_PEI_GET_VARIABLE2 GetVariable;
+ EFI_PEI_GET_NEXT_VARIABLE_NAME2 GetNextVariableName;
+} EFI_PEI_READ_ONLY_VARIABLE2_PPI;
+
+extern EFI_GUID gPeiReadOnlyVariable2PpiGuid;
+
+#endif