Revert "Capsule-on-Disk entire Patch
This reverts commit0d4aa276d1
,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:
@@ -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
|
||||
|
@@ -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
|
Reference in New Issue
Block a user