Revert "Capsule-on-Disk entire Patch

This reverts commit 0d4aa276d1,
                    6470a43160,
                    fd72860895,
                    7837d12498,
                    6b32af2e10,
                    8636f70b5a,
                    f17935321a
due to incorrect review process.

Cc: Wei6 Xu <wei6.xu@intel.com>
Cc: Hao A Wu <hao.a.wu@intel.com>
Signed-off-by: Zhang, Chao B <chao.b.zhang@intel.com>
Reviewed-by: Hao A Wu <hao.a.wu@intel.com>
This commit is contained in:
Zhang, Chao B
2019-06-21 10:24:10 +08:00
parent 425d8d487f
commit 57ec204e69
28 changed files with 68 additions and 3266 deletions

View File

@@ -2,7 +2,7 @@
This library class defines a set of interfaces for how to process capsule image updates.
Copyright (c) 2007 - 2019, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -10,11 +10,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#ifndef __CAPSULE_LIB_H__
#define __CAPSULE_LIB_H__
//
// BOOLEAN Variable to indicate whether system is in the capsule on disk state.
//
#define COD_RELOCATION_INFO_VAR_NAME L"CodRelocationInfo"
/**
The firmware checks whether the capsule image is supported
by the CapsuleGuid in CapsuleHeader or if there is other specific information in
@@ -86,75 +81,4 @@ ProcessCapsules (
VOID
);
/**
This routine is called to check if CapsuleOnDisk flag in OsIndications Variable
is enabled.
@retval TRUE Flag is enabled
@retval FALSE Flag is not enabled
**/
BOOLEAN
EFIAPI
CoDCheckCapsuleOnDiskFlag(
VOID
);
/**
This routine is called to clear CapsuleOnDisk flags including OsIndications and BootNext variable
@retval EFI_SUCCESS All Capsule On Disk flags are cleared
**/
EFI_STATUS
EFIAPI
CoDClearCapsuleOnDiskFlag(
VOID
);
/**
Relocate Capsule on Disk from EFI system partition.
Two solution to deliver Capsule On Disk:
Solution A: If PcdCapsuleInRamSupport is enabled, relocate Capsule On Disk to memory and call UpdateCapsule().
Solution B: If PcdCapsuleInRamSupport is disabled, relocate Capsule On Disk to a platform-specific NV storage
device with BlockIo protocol.
Device enumeration like USB costs time, user can input MaxRetry to tell function to retry.
Function will stall 100ms between each retry.
Side Effects:
Capsule Delivery Supported Flag in OsIndication variable and BootNext variable will be cleared.
Solution B: Content corruption. Block IO write directly touches low level write. Orignal partitions, file
systems of the relocation device will be corrupted.
@param[in] MaxRetry Max Connection Retry. Stall 100ms between each connection try to ensure
devices like USB can get enumerated. Input 0 means no retry.
@retval EFI_SUCCESS Capsule on Disk images are successfully relocated.
**/
EFI_STATUS
EFIAPI
CoDRelocateCapsule(
UINTN MaxRetry
);
/**
Remove the temp file from the root of EFI System Partition.
Device enumeration like USB costs time, user can input MaxRetry to tell function to retry.
Function will stall 100ms between each retry.
@param[in] MaxRetry Max Connection Retry. Stall 100ms between each connection try to ensure
devices like USB can get enumerated. Input 0 means no retry.
@retval EFI_SUCCESS Remove the temp file successfully.
**/
EFI_STATUS
EFIAPI
CoDRemoveTempFile (
UINTN MaxRetry
);
#endif

View File

@@ -1,55 +0,0 @@
/** @file
This file declares Capsule On Disk PPI. This PPI is used to find and load the
capsule on files that are relocated into a temp file under rootdir.
Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef __PEI_CAPSULE_ON_DISK_PPI_H__
#define __PEI_CAPSULE_ON_DISK_PPI_H__
#define EFI_PEI_CAPSULE_ON_DISK_PPI_GUID \
{ \
0x71a9ea61, 0x5a35, 0x4a5d, {0xac, 0xef, 0x9c, 0xf8, 0x6d, 0x6d, 0x67, 0xe0 } \
}
typedef struct _EFI_PEI_CAPSULE_ON_DISK_PPI EFI_PEI_CAPSULE_ON_DISK_PPI;
/**
Loads a DXE capsule from some media into memory and updates the HOB table
with the DXE firmware volume information.
@param PeiServices General-purpose services that are available to every PEIM.
@param This Indicates the EFI_PEI_RECOVERY_MODULE_PPI instance.
@retval EFI_SUCCESS The capsule was loaded correctly.
@retval EFI_DEVICE_ERROR A device error occurred.
@retval EFI_NOT_FOUND A recovery DXE capsule cannot be found.
**/
typedef
EFI_STATUS
(EFIAPI *EFI_PEI_LOAD_CAPSULE_ON_DISK)(
IN EFI_PEI_SERVICES **PeiServices,
IN EFI_PEI_CAPSULE_ON_DISK_PPI *This
);
///
/// Finds and loads the recovery files.
///
struct _EFI_PEI_CAPSULE_ON_DISK_PPI {
EFI_PEI_LOAD_CAPSULE_ON_DISK LoadCapsuleOnDisk; ///< Loads a DXE binary capsule into memory.
};
extern EFI_GUID gEdkiiPeiCapsuleOnDiskPpiGuid;
#define EFI_PEI_BOOT_IN_CAPSULE_ON_DISK_MODE_PPI \
{ \
0xb08a11e4, 0xe2b7, 0x4b75, { 0xb5, 0x15, 0xaf, 0x61, 0x6, 0x68, 0xbf, 0xd1 } \
}
extern EFI_GUID gEfiPeiBootInCapsuleOnDiskModePpiGuid;
#endif