This file declares Recovery Module PPI. This PPI is used to find and load the recovery files.
A module that produces this PPI has many roles and is responsible for the following:
- Calling the driver recovery PPI EFI_PEI_DEVICE_RECOVERY_MODULE_PPI. GetNumberRecoveryCapsules() to determine if one or more DXE recovery entities exist.
- If no capsules exist, then performing appropriate error handling.
- Allocating a buffer of MaxRecoveryCapsuleSize as determined by EFI_PEI_DEVICE_RECOVERY_MODULE_PPI.GetRecoveryCapsuleInfo() or larger.
- Determining the policy in which DXE recovery capsules are loaded.
- Calling the driver recovery PPI EFI_PEI_DEVICE_RECOVERY_MODULE_PPI. LoadRecoveryCapsule() for capsule number x.
- If the load failed, performing appropriate error handling.
- Performing security checks for a loaded DXE recovery capsule.
- If the security checks failed, then logging the failure in a data HOB.
- If the security checks failed, then determining the next EFI_PEI_DEVICE_RECOVERY_MODULE_PPI.LoadRecoveryCapsule()capsule number; otherwise, go to step 11.
- If more DXE recovery capsules exist, then go to step 5; otherwise, perform error handling.
- Decomposing the capsule loaded by EFI_PEI_DEVICE_RECOVERY_MODULE_PPI. LoadRecoveryCapsule() into its components. It is assumed that the path parameters are redundant for recovery and Setup parameters are either redundant or canned.
- Invalidating all HOB entries for updateable firmware volume entries. This invalidation prevents possible errant drivers from being executed.
- Updating the HOB table with the recovery DXE firmware volume information generated from the capsule decomposition.
- Returning to the PEI Dispatcher.
Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
- Revision Reference:
- This PPI is defined in UEFI Platform Initialization Specification 1.2 Errata B Volume 1: Pre-EFI Initialization Core Interface