mirror of
https://github.com/acidanthera/audk.git
synced 2025-04-08 17:05:09 +02:00
REF: https://github.com/tianocore/tianocore.github.io/wiki/ UEFI-Capsule-on-Disk-Introducation CoDCheckCapsuleOnDiskFlag() is to check if CapsuleOnDisk flag in "OsIndications" Variable is enabled. It is used to indicate whether capsule on disk is provisioned in normal boot path. CoDClearCapsuleOnDiskFlag() is to to clear CapsuleOnDisk flags, including "OsIndications" and "BootNext" variable. CoDRelocateCapsule() is to relocate the capsules from EFI system partition. Depends on PcdCapsuleInRamSupport, there are two solutions to relocate the capsule on disk images: When Capsule In Ram is supported, the Capsule On Disk images are relocated into memory, and call UpdateCapsule() service to deliver the capsules. When Capsule In Ram is not supported, the Capsule On Disk images are relocated into a temp file which will be stored in root directory on a platform specific storage device. CapsuleOnDiskLoadPei PEIM will retrieve the capsules from the relocation temp file and report capsule hobs for them. CoDRemoveTempFile() is to remove the relocation temp file in the next boot after capsules are processed. Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Hao A Wu <hao.a.wu@intel.com> Cc: Chao B Zhang <chao.b.zhang@intel.com> Signed-off-by: Wei6 Xu <wei6.xu@intel.com> Reviewed-by: Chao B Zhang <chao.b.zhang@intel.com> Acked-by: Hao A Wu <hao.a.wu@intel.com>
75 lines
2.5 KiB
INI
75 lines
2.5 KiB
INI
## @file
|
|
# Capsule library instance for DXE_RUNTIME_DRIVER.
|
|
#
|
|
# Capsule library instance for DXE_RUNTIME_DRIVER module types.
|
|
#
|
|
# Copyright (c) 2016 - 2019, Intel Corporation. All rights reserved.<BR>
|
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
#
|
|
##
|
|
|
|
[Defines]
|
|
INF_VERSION = 0x00010005
|
|
BASE_NAME = DxeRuntimeCapsuleLib
|
|
MODULE_UNI_FILE = DxeRuntimeCapsuleLib.uni
|
|
FILE_GUID = 19BE1E4B-1A9A-44c1-8F12-32DD0470516A
|
|
MODULE_TYPE = DXE_RUNTIME_DRIVER
|
|
VERSION_STRING = 1.0
|
|
LIBRARY_CLASS = CapsuleLib|DXE_RUNTIME_DRIVER
|
|
CONSTRUCTOR = DxeCapsuleLibConstructor
|
|
CONSTRUCTOR = DxeRuntimeCapsuleLibConstructor
|
|
DESTRUCTOR = DxeCapsuleLibDestructor
|
|
DESTRUCTOR = DxeRuntimeCapsuleLibDestructor
|
|
|
|
#
|
|
# The following information is for reference only and not required by the build tools.
|
|
#
|
|
# VALID_ARCHITECTURES = IA32 X64 EBC
|
|
#
|
|
|
|
[Sources]
|
|
DxeCapsuleLib.c
|
|
DxeCapsuleProcessLibNull.c
|
|
DxeCapsuleReportLibNull.c
|
|
DxeCapsuleRuntime.c
|
|
|
|
[Packages]
|
|
MdePkg/MdePkg.dec
|
|
MdeModulePkg/MdeModulePkg.dec
|
|
|
|
[LibraryClasses]
|
|
BaseLib
|
|
BaseMemoryLib
|
|
DebugLib
|
|
MemoryAllocationLib
|
|
DxeServicesTableLib
|
|
UefiBootServicesTableLib
|
|
DevicePathLib
|
|
ReportStatusCodeLib
|
|
PrintLib
|
|
HobLib
|
|
BmpSupportLib
|
|
|
|
|
|
[Protocols]
|
|
gEsrtManagementProtocolGuid ## CONSUMES
|
|
gEfiFirmwareManagementProtocolGuid ## CONSUMES
|
|
gEdkiiVariableLockProtocolGuid ## SOMETIMES_CONSUMES
|
|
gEdkiiFirmwareManagementProgressProtocolGuid ## SOMETIMES_CONSUMES
|
|
|
|
[Guids]
|
|
gEfiFmpCapsuleGuid ## SOMETIMES_CONSUMES ## GUID
|
|
gWindowsUxCapsuleGuid ## SOMETIMES_CONSUMES ## GUID
|
|
gEfiSystemResourceTableGuid ## SOMETIMES_CONSUMES ## GUID
|
|
## SOMETIMES_CONSUMES ## Variable:L"CapsuleMax"
|
|
## SOMETIMES_PRODUCES ## Variable:L"CapsuleMax"
|
|
gEfiCapsuleReportGuid
|
|
gEfiCapsuleVendorGuid ## SOMETIMES_CONSUMES ## Variable:L"CapsuleUpdateData"
|
|
gEfiEndOfDxeEventGroupGuid ## CONSUMES ## Event
|
|
gEfiEventReadyToBootGuid ## CONSUMES ## Event
|
|
gEfiEventVirtualAddressChangeGuid ## CONSUMES ## Event
|
|
gEdkiiCapsuleOnDiskNameGuid ## SOMETIMES_CONSUMES ## GUID
|
|
|
|
[Depex]
|
|
gEfiVariableWriteArchProtocolGuid
|