]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkPkg/Include/Framework/PeiCis.h
Committing changes to the comments, after review with engineers.
[mirror_edk2.git] / IntelFrameworkPkg / Include / Framework / PeiCis.h
index 90a1a91f434fffe23464c72e4487c94eca639f04..042ec269fead09acf0ba3942acd0256fe69d4003 100644 (file)
 #ifndef __PEICIS_H__\r
 #define __PEICIS_H__\r
 \r
-#include <PiPei.h>\r
 #include <Ppi/PciCfg.h>\r
+//\r
+// Framework PEI Specification Revision information\r
+//\r
+#define FRAMEWORK_PEI_SPECIFICATION_MAJOR_REVISION    0\r
+#define FRAMEWORK_PEI_SPECIFICATION_MINOR_REVISION    91\r
+\r
+\r
+//\r
+// PEI services signature and Revision defined in Framework PEI spec\r
+//\r
+#define FRAMEWORK_PEI_SERVICES_SIGNATURE               0x5652455320494550ULL\r
+#define FRAMEWORK_PEI_SERVICES_REVISION               ((FRAMEWORK_PEI_SPECIFICATION_MAJOR_REVISION<<16) | (FRAMEWORK_PEI_SPECIFICATION_MINOR_REVISION))\r
+\r
+\r
 \r
 typedef struct _FRAMEWORK_EFI_PEI_SERVICES FRAMEWORK_EFI_PEI_SERVICES;\r
 \r
@@ -39,7 +52,7 @@ EFI_STATUS
   );\r
   \r
 /**\r
-  The purpose of the service is to abstract the capability of the PEI \r
+  This service abstracts the capability of the PEI \r
   Foundation to discover instances of firmware volumes in the system. \r
   Given the input file pointer, this service searches for the next \r
   matching file in the Firmware File System (FFS) volume.\r
@@ -62,16 +75,16 @@ EFI_STATUS
   );\r
     \r
 /**\r
-  The purpose of the service is to abstract the capability of the PEI \r
+  This service abstracts the capability of the PEI \r
   Foundation to discover instances of firmware files in the system. \r
   Given the input file pointer, this service searches for the next matching \r
   file in the Firmware File System (FFS) volume.\r
 \r
   @param  PeiServices      An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.\r
   @param  SearchType       A filter to find files only of this type.\r
-  @param  FwVolHeader      Pointer to the firmware volume header of the volume to search.This parameter \r
+  @param  FwVolHeader      Pointer to the firmware volume header of the volume to search. This parameter \r
                            must point to a valid FFS volume.\r
-  @param  FileHeader       Pointer to the current file from which to begin searching.This pointer will be \r
+  @param  FileHeader       Pointer to the current file from which to begin searching. This pointer will be \r
                            updated upon return to reflect the file found.\r
 \r
   @retval EFI_SUCCESS      The file was found.\r
@@ -156,6 +169,7 @@ struct _FRAMEWORK_EFI_PEI_SERVICES {
   EFI_PEI_COPY_MEM                  CopyMem;\r
   EFI_PEI_SET_MEM                   SetMem;\r
   //\r
+  // (the following interfaces are installed by publishing PEIM)\r
   // Status Code\r
   //\r
   EFI_PEI_REPORT_STATUS_CODE        ReportStatusCode;\r
@@ -163,14 +177,35 @@ struct _FRAMEWORK_EFI_PEI_SERVICES {
   // Reset\r
   //\r
   EFI_PEI_RESET_SYSTEM              ResetSystem;\r
-  //\r
-  // (the following interfaces are installed by publishing PEIM)\r
+  ///\r
+  /// Inconsistent with specification here: \r
+  /// In Framework Spec, PeiCis0.91, CpuIo and PciCfg is NOT pointers. \r
+  ///\r
+  \r
   //\r
   // I/O Abstractions\r
   //\r
   EFI_PEI_CPU_IO_PPI                *CpuIo;\r
   EFI_PEI_PCI_CFG_PPI               *PciCfg;\r
 };\r
+///\r
+/// Enumeration of reset types defined in Framework Spec PeiCis\r
+///\r
+typedef enum {\r
+  ///\r
+  /// Used to induce a system-wide reset. This sets all circuitry within the \r
+  /// system to its initial state.  This type of reset is asynchronous to system\r
+  /// operation and operates withgout regard to cycle boundaries.  EfiColdReset \r
+  /// is tantamount to a system power cycle.\r
+  ///\r
+  EfiPeiResetCold,\r
+  ///\r
+  /// Used to induce a system-wide initialization. The processors are set to their\r
+  /// initial state, and pending cycles are not corrupted.  If the system does \r
+  /// not support this reset type, then an EfiResetCold must be performed.\r
+  ///\r
+  EfiPeiResetWarm,\r
+} EFI_PEI_RESET_TYPE;\r
 \r
 #endif  \r
 \r