summaryrefslogtreecommitdiff
path: root/IntelFrameworkPkg/Include/Framework/PeiCis.h
diff options
context:
space:
mode:
authorjchen20 <jchen20@6f19259b-4bc3-4df7-8a09-765794883524>2009-07-08 09:38:08 +0000
committerjchen20 <jchen20@6f19259b-4bc3-4df7-8a09-765794883524>2009-07-08 09:38:08 +0000
commit40038403ea4d148da0ff521eae3941bd2c1de353 (patch)
tree79b249363d46222647c5fcb7a0b5e7087542d9f3 /IntelFrameworkPkg/Include/Framework/PeiCis.h
parentfa70a2c4cc9607f38e49a389f64ac32c600d47d2 (diff)
downloadedk2-platforms-40038403ea4d148da0ff521eae3941bd2c1de353.tar.xz
to fill the gap between Framework and code to fix the bug #202405, #202419, #202418, #202435,#202437, #202439, #202440
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8817 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'IntelFrameworkPkg/Include/Framework/PeiCis.h')
-rw-r--r--IntelFrameworkPkg/Include/Framework/PeiCis.h39
1 files changed, 37 insertions, 2 deletions
diff --git a/IntelFrameworkPkg/Include/Framework/PeiCis.h b/IntelFrameworkPkg/Include/Framework/PeiCis.h
index 90a1a91f43..a50b1767e5 100644
--- a/IntelFrameworkPkg/Include/Framework/PeiCis.h
+++ b/IntelFrameworkPkg/Include/Framework/PeiCis.h
@@ -18,6 +18,24 @@
#include <PiPei.h>
#include <Ppi/PciCfg.h>
+//
+// Framework PEI Specification Revision information
+//
+#define FRAMEWORK_PEI_SPECIFICATION_MAJOR_REVISION 0
+#define FRAMEWORK_PEI_SPECIFICATION_MINOR_REVISION 91
+
+///
+/// Inconsistent with specification here:
+/// In Framework Spec, PeiCis0.91, FRAMEWORK_PEI_SERVICES_SIGNATURE is defined as 0x5652455320494550. But
+/// to pass multiple tool chain, it is append a ULL.
+///
+//
+// PEI services signature and Revision defined in Framework PEI spec
+//
+#define FRAMEWORK_PEI_SERVICES_SIGNATURE 0x5652455320494550ULL
+#define FRAMEWORK_PEI_SERVICES_REVISION ((FRAMEWORK_PEI_SPECIFICATION_MAJOR_REVISION<<16) | (FRAMEWORK_PEI_SPECIFICATION_MINOR_REVISION))
+
+
typedef struct _FRAMEWORK_EFI_PEI_SERVICES FRAMEWORK_EFI_PEI_SERVICES;
@@ -156,6 +174,7 @@ struct _FRAMEWORK_EFI_PEI_SERVICES {
EFI_PEI_COPY_MEM CopyMem;
EFI_PEI_SET_MEM SetMem;
//
+ // (the following interfaces are installed by publishing PEIM)
// Status Code
//
EFI_PEI_REPORT_STATUS_CODE ReportStatusCode;
@@ -164,13 +183,29 @@ struct _FRAMEWORK_EFI_PEI_SERVICES {
//
EFI_PEI_RESET_SYSTEM ResetSystem;
//
- // (the following interfaces are installed by publishing PEIM)
- //
// I/O Abstractions
//
EFI_PEI_CPU_IO_PPI *CpuIo;
EFI_PEI_PCI_CFG_PPI *PciCfg;
};
+///
+/// Enumeration of reset types defined in Framework Spec PeiCis
+///
+typedef enum {
+ ///
+ /// Used to induce a system-wide reset. This sets all circuitry within the
+ /// system to its initial state. This type of reset is asynchronous to system
+ /// operation and operates withgout regard to cycle boundaries. EfiColdReset
+ /// is tantamount to a system power cycle.
+ ///
+ EfiPeiResetCold,
+ ///
+ /// Used to induce a system-wide initialization. The processors are set to their
+ /// initial state, and pending cycles are not corrupted. If the system does
+ /// not support this reset type, then an EfiResetCold must be performed.
+ ///
+ EfiPeiResetWarm,
+} EFI_PEI_RESET_TYPE;
#endif