]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Ppi/RecoveryModule.h
MdePkg/ProcessorBind: add defines for page allocation granularity
[mirror_edk2.git] / MdePkg / Include / Ppi / RecoveryModule.h
index 044a68aa726a17abf71b5031a8a18227a95f52ca..d359a1bc9e0063c953720dbdad19d9af6c3c2834 100644 (file)
@@ -1,20 +1,48 @@
 /** @file\r
-  This file declares Recovery Module PPI.\r
-\r
-  Copyright (c) 2006, Intel Corporation                                                         \r
-  All rights reserved. This program and the accompanying materials                          \r
-  are licensed and made available under the terms and conditions of the BSD License         \r
-  which accompanies this distribution.  The full text of the license may be found at        \r
-  http://opensource.org/licenses/bsd-license.php                                            \r
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+  This file declares Recovery Module PPI.  This PPI is used to find and load the\r
+  recovery files.\r
+\r
+  A module that produces this PPI has many roles and is responsible for the following:\r
+    -# Calling the driver recovery PPI EFI_PEI_DEVICE_RECOVERY_MODULE_PPI.\r
+       GetNumberRecoveryCapsules() to determine if one or more DXE recovery \r
+       entities exist.\r
+    -# If no capsules exist, then performing appropriate error handling.\r
+    -# Allocating a buffer of MaxRecoveryCapsuleSize as determined by\r
+       EFI_PEI_DEVICE_RECOVERY_MODULE_PPI.GetRecoveryCapsuleInfo() or\r
+       larger.\r
+    -# Determining the policy in which DXE recovery capsules are loaded.\r
+    -# Calling the driver recovery PPI EFI_PEI_DEVICE_RECOVERY_MODULE_PPI.\r
+       LoadRecoveryCapsule() for capsule number x.\r
+    -# If the load failed, performing appropriate error handling.\r
+    -# Performing security checks for a loaded DXE recovery capsule.\r
+    -# If the security checks failed, then logging the failure in a data HOB.\r
+    -# If the security checks failed, then determining the next \r
+       EFI_PEI_DEVICE_RECOVERY_MODULE_PPI.LoadRecoveryCapsule()capsule number; \r
+       otherwise, go to step 11.\r
+    -# If more DXE recovery capsules exist, then go to step 5; otherwise, perform \r
+       error handling.\r
+    -# Decomposing the capsule loaded by EFI_PEI_DEVICE_RECOVERY_MODULE_PPI.\r
+       LoadRecoveryCapsule() into its components. It is assumed that the path \r
+       parameters are redundant for recovery and Setup parameters are either \r
+       redundant or canned.\r
+    -# Invalidating all HOB entries for updateable firmware volume entries. \r
+       This invalidation prevents possible errant drivers from being executed.\r
+    -# Updating the HOB table with the recovery DXE firmware volume information \r
+       generated from the capsule decomposition.\r
+    -# Returning to the PEI Dispatcher.  \r
+  \r
+  Copyright (c) 2007 - 2011, Intel Corporation. All rights reserved.<BR>\r
+  This program and the accompanying materials\r
+  are licensed and made available under the terms and conditions of the BSD License\r
+  which accompanies this distribution.  The full text of the license may be found at\r
+  http://opensource.org/licenses/bsd-license.php\r
 \r
-  Module Name:  RecoveryModule.h\r
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 \r
   @par Revision Reference:\r
-  This PPI is defined in Framework of EFI Recovery Spec.\r
-  Version 0.9\r
+  This PPI is defined in UEFI Platform Initialization Specification 1.2 Errata B Volume 1: \r
+  Pre-EFI Initalization Core Interface\r
 \r
 **/\r
 \r
 typedef struct _EFI_PEI_RECOVERY_MODULE_PPI EFI_PEI_RECOVERY_MODULE_PPI;\r
 \r
 /**\r
-  Loads a DXE capsule from some media into memory and updates the HOB table \r
+  Loads a DXE capsule from some media into memory and updates the HOB table\r
   with the DXE firmware volume information.\r
 \r
-  @param  PeiServices General-purpose services that are available to every PEIM.\r
-  \r
-  @param  This Indicates the EFI_PEI_RECOVERY_MODULE_PPI instance. \r
+  @param  PeiServices   General-purpose services that are available to every PEIM.\r
+  @param  This          Indicates the EFI_PEI_RECOVERY_MODULE_PPI instance.\r
 \r
-  @retval EFI_SUCCESS The capsule was loaded correctly.\r
-  \r
-  @retval EFI_DEVICE_ERROR A device error occurred.\r
-  \r
-  @retval EFI_NOT_FOUND A recovery DXE capsule cannot be found.\r
+  @retval EFI_SUCCESS        The capsule was loaded correctly.\r
+  @retval EFI_DEVICE_ERROR   A device error occurred.\r
+  @retval EFI_NOT_FOUND      A recovery DXE capsule cannot be found.\r
 \r
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_PEI_LOAD_RECOVERY_CAPSULE) (\r
-  IN EFI_PEI_SERVICES                     **PeiServices,\r
-  IN EFI_PEI_RECOVERY_MODULE_PPI          *This\r
+(EFIAPI *EFI_PEI_LOAD_RECOVERY_CAPSULE)(\r
+  IN EFI_PEI_SERVICES             **PeiServices,\r
+  IN EFI_PEI_RECOVERY_MODULE_PPI  *This\r
   );\r
 \r
-/**\r
-  @par Ppi Description:\r
-  Finds and loads the recovery files.\r
-\r
-  @param LoadRecoveryCapsule\r
-  Loads a DXE binary capsule into memory.\r
-\r
-**/\r
+///\r
+///  Finds and loads the recovery files.\r
+///\r
 struct _EFI_PEI_RECOVERY_MODULE_PPI {\r
-  EFI_PEI_LOAD_RECOVERY_CAPSULE LoadRecoveryCapsule;\r
+  EFI_PEI_LOAD_RECOVERY_CAPSULE LoadRecoveryCapsule;  ///< Loads a DXE binary capsule into memory.\r
 };\r
 \r
 extern EFI_GUID gEfiPeiRecoveryModulePpiGuid;\r