summaryrefslogtreecommitdiff
path: root/EDK/Foundation/Ppi
diff options
context:
space:
mode:
authorraywu <raywu0301@gmail.com>2018-06-15 00:00:50 +0800
committerraywu <raywu0301@gmail.com>2018-06-15 00:00:50 +0800
commitb7c51c9cf4864df6aabb99a1ae843becd577237c (patch)
treeeebe9b0d0ca03062955223097e57da84dd618b9a /EDK/Foundation/Ppi
downloadzprj-master.tar.xz
init. 1AQQW051HEADmaster
Diffstat (limited to 'EDK/Foundation/Ppi')
-rw-r--r--EDK/Foundation/Ppi/BaseMemoryTest/BaseMemoryTest.c28
-rw-r--r--EDK/Foundation/Ppi/BaseMemoryTest/BaseMemoryTest.h58
-rw-r--r--EDK/Foundation/Ppi/DebugMask/DebugMask.c30
-rw-r--r--EDK/Foundation/Ppi/DebugMask/DebugMask.h46
-rw-r--r--EDK/Foundation/Ppi/EdkPpiLib.cif20
-rw-r--r--EDK/Foundation/Ppi/EdkPpiLib.inf51
-rw-r--r--EDK/Foundation/Ppi/EdkPpiLib.mak69
-rw-r--r--EDK/Foundation/Ppi/EdkPpiLib.sdl26
-rw-r--r--EDK/Foundation/Ppi/FlashMap/FlashMap.c28
-rw-r--r--EDK/Foundation/Ppi/FlashMap/FlashMap.h59
-rw-r--r--EDK/Foundation/Ppi/PeiInMemory/PeiInMemory.c33
-rw-r--r--EDK/Foundation/Ppi/PeiInMemory/PeiInMemory.h29
-rw-r--r--EDK/Foundation/Ppi/StatusCodeMemory/StatusCodeMemory.c28
-rw-r--r--EDK/Foundation/Ppi/StatusCodeMemory/StatusCodeMemory.h53
14 files changed, 558 insertions, 0 deletions
diff --git a/EDK/Foundation/Ppi/BaseMemoryTest/BaseMemoryTest.c b/EDK/Foundation/Ppi/BaseMemoryTest/BaseMemoryTest.c
new file mode 100644
index 0000000..867902b
--- /dev/null
+++ b/EDK/Foundation/Ppi/BaseMemoryTest/BaseMemoryTest.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:
+
+ BaseMemoryTest.c
+
+Abstract:
+
+ PEI memory test PPI GUID as defined in Tiano
+
+--*/
+
+#include "Tiano.h"
+#include "Pei.h"
+#include EFI_PPI_DEFINITION (BaseMemoryTest)
+
+EFI_GUID gPeiBaseMemoryTestPpiGuid = PEI_BASE_MEMORY_TEST_GUID;
+
+EFI_GUID_STRING(&gPeiBaseMemoryTestPpiGuid, "PeiBaseMemoryTest", "Pei Base Memory Test PPI");
diff --git a/EDK/Foundation/Ppi/BaseMemoryTest/BaseMemoryTest.h b/EDK/Foundation/Ppi/BaseMemoryTest/BaseMemoryTest.h
new file mode 100644
index 0000000..1a457da
--- /dev/null
+++ b/EDK/Foundation/Ppi/BaseMemoryTest/BaseMemoryTest.h
@@ -0,0 +1,58 @@
+/*++
+
+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:
+
+ BaseMemoryTest.h
+
+Abstract:
+
+ Pei memory test PPI as defined in Tiano
+
+ Used to Pei memory test in PEI
+
+--*/
+
+#ifndef _BASE_MEMORY_TEST_H_
+#define _BASE_MEMORY_TEST_H_
+
+#define PEI_BASE_MEMORY_TEST_GUID \
+ { \
+ 0xb6ec423c, 0x21d2, 0x490d, 0x85, 0xc6, 0xdd, 0x58, 0x64, 0xea, 0xa6, 0x74 \
+ }
+
+EFI_FORWARD_DECLARATION (PEI_BASE_MEMORY_TEST_PPI);
+
+typedef enum {
+ Ignore,
+ Quick,
+ Sparse,
+ Extensive
+} PEI_MEMORY_TEST_OP;
+
+typedef
+EFI_STATUS
+(EFIAPI *PEI_BASE_MEMORY_TEST) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_BASE_MEMORY_TEST_PPI * This,
+ IN EFI_PHYSICAL_ADDRESS BeginAddress,
+ IN UINT64 MemoryLength,
+ IN PEI_MEMORY_TEST_OP Operation,
+ OUT EFI_PHYSICAL_ADDRESS * ErrorAddress
+ );
+
+typedef struct _PEI_BASE_MEMORY_TEST_PPI {
+ PEI_BASE_MEMORY_TEST BaseMemoryTest;
+} PEI_BASE_MEMORY_TEST_PPI;
+
+extern EFI_GUID gPeiBaseMemoryTestPpiGuid;
+
+#endif
diff --git a/EDK/Foundation/Ppi/DebugMask/DebugMask.c b/EDK/Foundation/Ppi/DebugMask/DebugMask.c
new file mode 100644
index 0000000..033b00f
--- /dev/null
+++ b/EDK/Foundation/Ppi/DebugMask/DebugMask.c
@@ -0,0 +1,30 @@
+/*++
+
+Copyright (c) 2010, 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:
+
+ DebugMask.c
+
+Abstract:
+
+ This PPI is used to abstract the Debug Mask services for
+ the specific PEIM.
+
+--*/
+
+#include "Tiano.h"
+#include EFI_PPI_DEFINITION (DebugMask)
+
+
+EFI_GUID gEfiDebugMaskPpiGuid = EFI_DEBUG_MASK_PPI_GUID;
+
+EFI_GUID_STRING (&gEfiDebugMaskPpiGuid, "DebugMask PPI", "Efi Debug Mask PPI");
+
diff --git a/EDK/Foundation/Ppi/DebugMask/DebugMask.h b/EDK/Foundation/Ppi/DebugMask/DebugMask.h
new file mode 100644
index 0000000..009eae7
--- /dev/null
+++ b/EDK/Foundation/Ppi/DebugMask/DebugMask.h
@@ -0,0 +1,46 @@
+/*++
+
+Copyright (c) 2010, 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:
+
+ DebugMask.h
+
+Abstract:
+
+ This PPI is used to abstract the Debug Mask services for
+ the specific PEIM.
+
+--*/
+
+#ifndef _DEBUG_MASK_PPI_H_
+#define _DEBUG_MASK_PPI_H_
+
+//
+//3bd930fd-f823-4948-8691-98e6fe36ace2
+//
+#define EFI_DEBUG_MASK_PPI_GUID \
+ { 0x3bd930fd, 0xf823, 0x4948, 0x86, 0x91, 0x98, 0xe6, 0xfe, 0x36, 0xac, 0xe2 }
+
+//
+// Forward reference for pure ANSI compatability
+//
+EFI_FORWARD_DECLARATION (EFI_DEBUG_MASK_PPI);
+
+//
+// DebugMask PPI definition
+//
+typedef struct _EFI_DEBUG_MASK_PPI {
+ UINTN ImageDebugMask;
+} EFI_DEBUG_MASK_PPI;
+
+extern EFI_GUID gEfiDebugMaskPpiGuid;
+
+#endif
diff --git a/EDK/Foundation/Ppi/EdkPpiLib.cif b/EDK/Foundation/Ppi/EdkPpiLib.cif
new file mode 100644
index 0000000..641a364
--- /dev/null
+++ b/EDK/Foundation/Ppi/EdkPpiLib.cif
@@ -0,0 +1,20 @@
+<component>
+ name = "EdkPpiLib"
+ category = ModulePart
+ LocalRoot = "Edk\Foundation\Ppi\"
+ RefName = "EdkPpiLib"
+[files]
+"EdkPpiLib.sdl"
+"EdkPpiLib.mak"
+"BaseMemoryTest\BaseMemoryTest.h"
+"BaseMemoryTest\BaseMemoryTest.c"
+"DebugMask\DebugMask.h"
+"DebugMask\DebugMask.c"
+"FlashMap\FlashMap.h"
+"FlashMap\FlashMap.c"
+"PeiInMemory\PeiInMemory.h"
+"PeiInMemory\PeiInMemory.c"
+"StatusCodeMemory\StatusCodeMemory.h"
+"StatusCodeMemory\StatusCodeMemory.c"
+"EdkPpiLib.inf"
+<endComponent>
diff --git a/EDK/Foundation/Ppi/EdkPpiLib.inf b/EDK/Foundation/Ppi/EdkPpiLib.inf
new file mode 100644
index 0000000..09022e3
--- /dev/null
+++ b/EDK/Foundation/Ppi/EdkPpiLib.inf
@@ -0,0 +1,51 @@
+#/*++
+#
+# Copyright (c) 2004 - 2008, 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:
+#
+# EdkPpiLib.inf
+#
+# Abstract:
+#
+# Component description file for the Edk PPI library.
+#
+#--*/
+
+[defines]
+BASE_NAME= EdkPpiLib
+COMPONENT_TYPE= LIBRARY
+
+[includes.common]
+ $(EDK_SOURCE)\Foundation
+ $(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
+ $(EDK_SOURCE)\Foundation\Framework
+
+[nmake.common]
+
+[sources.common]
+ BaseMemoryTest\BaseMemoryTest.h
+ BaseMemoryTest\BaseMemoryTest.c
+ DebugMask\DebugMask.h
+ DebugMask\DebugMask.c
+ FlashMap\FlashMap.h
+ FlashMap\FlashMap.c
+ PeiInMemory\PeiInMemory.h
+ PeiInMemory\PeiInMemory.c
+ StatusCodeMemory\StatusCodeMemory.h
+ StatusCodeMemory\StatusCodeMemory.c \ No newline at end of file
diff --git a/EDK/Foundation/Ppi/EdkPpiLib.mak b/EDK/Foundation/Ppi/EdkPpiLib.mak
new file mode 100644
index 0000000..acff789
--- /dev/null
+++ b/EDK/Foundation/Ppi/EdkPpiLib.mak
@@ -0,0 +1,69 @@
+#**********************************************************************
+#**********************************************************************
+#** **
+#** (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/EdkPpiLib/EdkPpiLib.mak 1 1/20/12 4:04a Jeffch $
+#
+# $Revision: 1 $
+#
+# $Date: 1/20/12 4:04a $
+#**********************************************************************
+# Revision History
+# ----------------
+# $Log: /Alaska/SOURCE/Modules/SharkBayRefCodes/IntelEDK/EdkPpiLib/EdkPpiLib.mak $
+#
+# 1 1/20/12 4:04a Jeffch
+# Create Intel EDK 1117 Patch 7.
+#
+# 1 9/27/11 6:29a Wesleychen
+# Intel EDK initially releases.
+#
+# 2 9/02/09 4:02a Iminglin
+# EIP24919
+#
+#**********************************************************************
+#<AMI_FHDR_START>
+#
+# Name: EdkPpiLib.mak
+#
+# Description:
+#
+#<AMI_FHDR_END>
+#**********************************************************************
+$(EDKPPILIB) : EdkPpiLib
+
+$(BUILD_DIR)\EdkPpiLib.lib : EdkPpiLib
+
+EdkPpiLib : $(BUILD_DIR)\EdkPpiLib.mak EdkPpiLibBin
+
+$(BUILD_DIR)\EdkPpiLib.mak : $(EdkPpiLib_DIR)\$(@B).cif $(EdkPpiLib_DIR)\$(@B).mak $(BUILD_RULES)
+ $(CIF2MAK) $(EdkPpiLib_DIR)\$(@B).cif $(CIF2MAK_DEFAULTS)
+
+EdkPpiLibBin :
+ $(MAKE) /$(MAKEFLAGS) $(EDK_DEFAULTS)\
+ /f $(BUILD_DIR)\EdkPpiLib.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/Ppi/EdkPpiLib.sdl b/EDK/Foundation/Ppi/EdkPpiLib.sdl
new file mode 100644
index 0000000..000e812
--- /dev/null
+++ b/EDK/Foundation/Ppi/EdkPpiLib.sdl
@@ -0,0 +1,26 @@
+TOKEN
+ Name = "EdkPpiLib_SUPPORT"
+ Value = "1"
+ Help = "Main switch to enable EdkPpiLib support in Project"
+ TokenType = Boolean
+ TargetEQU = Yes
+ TargetMAK = Yes
+ Master = Yes
+End
+
+TOKEN
+ Name = "EDKPPILIB"
+ Value = "$(BUILD_DIR)\EdkPpiLib.lib"
+ TokenType = Expression
+ TargetMAK = Yes
+End
+
+PATH
+ Name = "EdkPpiLib_DIR"
+End
+
+MODULE
+ Help = "Includes EdkPpiLib.mak to Project"
+ File = "EdkPpiLib.mak"
+End
+
diff --git a/EDK/Foundation/Ppi/FlashMap/FlashMap.c b/EDK/Foundation/Ppi/FlashMap/FlashMap.c
new file mode 100644
index 0000000..10a276b
--- /dev/null
+++ b/EDK/Foundation/Ppi/FlashMap/FlashMap.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:
+
+ FlashMap.c
+
+Abstract:
+
+ Flash Map PPI GUID as defined in Tiano
+
+--*/
+
+#include "Tiano.h"
+#include "Pei.h"
+#include EFI_PPI_DEFINITION (FlashMap)
+
+EFI_GUID gPeiFlashMapPpiGuid = PEI_FLASH_MAP_PPI_GUID;
+
+EFI_GUID_STRING(&gPeiFlashMapPpiGuid, "Flash Map", "Flash Map PPI");
diff --git a/EDK/Foundation/Ppi/FlashMap/FlashMap.h b/EDK/Foundation/Ppi/FlashMap/FlashMap.h
new file mode 100644
index 0000000..123f1e7
--- /dev/null
+++ b/EDK/Foundation/Ppi/FlashMap/FlashMap.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:
+
+ FlashMap.h
+
+Abstract:
+
+ FlashMap PPI defined in Tiano
+
+ This code abstracts FlashMap access
+
+--*/
+
+#ifndef _PEI_FLASH_MAP_PPI_H_
+#define _PEI_FLASH_MAP_PPI_H_
+
+#define PEI_FLASH_MAP_PPI_GUID \
+ { \
+ 0xf34c2fa0, 0xde88, 0x4270, 0x84, 0x14, 0x96, 0x12, 0x22, 0xf4, 0x52, 0x1c \
+ }
+
+#include "EfiFlashMap.h"
+
+EFI_FORWARD_DECLARATION (PEI_FLASH_MAP_PPI);
+
+//
+// Functions
+//
+typedef
+EFI_STATUS
+(EFIAPI *PEI_GET_FLASH_AREA_INFO) (
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN PEI_FLASH_MAP_PPI * This,
+ IN EFI_FLASH_AREA_TYPE AreaType,
+ IN EFI_GUID * AreaTypeGuid,
+ OUT UINT32 *NumEntries,
+ OUT EFI_FLASH_SUBAREA_ENTRY **Entries
+ );
+
+//
+// PEI_FLASH_MAP_PPI
+//
+typedef struct _PEI_FLASH_MAP_PPI {
+ PEI_GET_FLASH_AREA_INFO GetAreaInfo;
+} PEI_FLASH_MAP_PPI;
+
+extern EFI_GUID gPeiFlashMapPpiGuid;
+
+#endif // _PEI_FLASH_MAP_PPI_H_
diff --git a/EDK/Foundation/Ppi/PeiInMemory/PeiInMemory.c b/EDK/Foundation/Ppi/PeiInMemory/PeiInMemory.c
new file mode 100644
index 0000000..ae723e8
--- /dev/null
+++ b/EDK/Foundation/Ppi/PeiInMemory/PeiInMemory.c
@@ -0,0 +1,33 @@
+/*++
+
+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:
+
+ PeiInMemory.c
+
+Abstract:
+
+ Capsule on Fat Usb Disk GUID.
+
+ This is the contract between the recovery module and device recovery module
+ in order to convey the name of a given recovery module type
+
+--*/
+
+#include "Tiano.h"
+#include "PeiBind.h"
+#include "PeiApi.h"
+#include EFI_PPI_DEFINITION(PeiInMemory)
+
+EFI_GUID gPeiInMemoryGuid = PEI_IN_MEMORY_GUID;
+
+EFI_GUID_STRING(&gPeiInMemoryGuid, "PeiInMemory", "PEIM In Memory");
+
diff --git a/EDK/Foundation/Ppi/PeiInMemory/PeiInMemory.h b/EDK/Foundation/Ppi/PeiInMemory/PeiInMemory.h
new file mode 100644
index 0000000..627ddb2
--- /dev/null
+++ b/EDK/Foundation/Ppi/PeiInMemory/PeiInMemory.h
@@ -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:
+
+ PeiInMemory.h
+
+Abstract:
+
+
+--*/
+
+#ifndef _PEI_IN_MEMORY_H
+#define _PEI_IN_MEMORY_H
+
+#define PEI_IN_MEMORY_GUID \
+ {0x643b8786, 0xb417, 0x48d2, 0x8f, 0x5e, 0x78, 0x19, 0x93, 0x1c, 0xae, 0xd8}
+
+extern EFI_GUID gPeiInMemoryGuid;
+
+#endif
diff --git a/EDK/Foundation/Ppi/StatusCodeMemory/StatusCodeMemory.c b/EDK/Foundation/Ppi/StatusCodeMemory/StatusCodeMemory.c
new file mode 100644
index 0000000..8d7fc3e
--- /dev/null
+++ b/EDK/Foundation/Ppi/StatusCodeMemory/StatusCodeMemory.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:
+
+ StatusCodeMemory.c
+
+Abstract:
+
+ Status Code Memory descriptor
+
+--*/
+
+#include "Tiano.h"
+#include "Pei.h"
+#include EFI_PPI_DEFINITION (StatusCodeMemory)
+
+EFI_GUID gPeiStatusCodeMemoryPpiGuid = PEI_STATUS_CODE_MEMORY_PPI_GUID;
+
+EFI_GUID_STRING(&gPeiStatusCodeMemoryPpiGuid, "StatusCodeMemory", "Status Code memory descriptor.");
diff --git a/EDK/Foundation/Ppi/StatusCodeMemory/StatusCodeMemory.h b/EDK/Foundation/Ppi/StatusCodeMemory/StatusCodeMemory.h
new file mode 100644
index 0000000..a6c9fb4
--- /dev/null
+++ b/EDK/Foundation/Ppi/StatusCodeMemory/StatusCodeMemory.h
@@ -0,0 +1,53 @@
+/*++
+
+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:
+
+ StatusCodeMemory.h
+
+Abstract:
+
+ Status Code memory descriptor PPI. Contains information about memory that
+ the Status Code PEIM may use to journal Status Codes.
+
+--*/
+
+#ifndef _PEI_STATUS_CODE_MEMORY_PPI_H_
+#define _PEI_STATUS_CODE_MEMORY_PPI_H_
+
+//
+// GUID definition
+//
+#define PEI_STATUS_CODE_MEMORY_PPI_GUID \
+ { 0x26f8ab01, 0xd3cd, 0x489c, 0x98, 0x4f, 0xdf, 0xde, 0xf7, 0x68, 0x39, 0x5b }
+
+//
+// Data types
+//
+typedef struct {
+ EFI_STATUS_CODE_TYPE Type;
+ EFI_STATUS_CODE_VALUE Value;
+ UINT32 Instance;
+} EFI_STATUS_CODE_ENTRY;
+
+//
+// PPI definition
+//
+typedef struct {
+ UINTN FirstEntry;
+ UINTN LastEntry;
+ EFI_PHYSICAL_ADDRESS Address;
+ UINTN Length;
+} PEI_STATUS_CODE_MEMORY_PPI;
+
+extern EFI_GUID gPeiStatusCodeMemoryPpiGuid;
+
+#endif