## @file
# Load Capsule on Disk module.
#
# Load Capsule On Disk from Root Directory file system. Create CV hob
# based on temporary Capsule On Disk file.
#
# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = CapsuleOnDiskLoadPei
  MODULE_UNI_FILE                = CapsuleOnDiskLoadPei.uni
  FILE_GUID                      = 8ADEDF9E-2EC8-40fb-AE56-B76D90225D2D
  MODULE_TYPE                    = PEIM
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = InitializeCapsuleOnDiskLoad

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 EBC
#

[Sources]
  CapsuleOnDiskLoadPei.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  PeimEntryPoint
  DebugLib
  HobLib
  BaseMemoryLib
  MemoryAllocationLib
  ReportStatusCodeLib

[Ppis]
  gEdkiiPeiCapsuleOnDiskPpiGuid           ## PRODUCES
  gEfiPeiReadOnlyVariable2PpiGuid         ## CONSUMES
  gEdkiiPeiBootInCapsuleOnDiskModePpiGuid ## SOMETIMES_CONSUMES
  gEfiPeiDeviceRecoveryModulePpiGuid      ## CONSUMES
  gEfiPeiCapsulePpiGuid                   ## CONSUMES

[Guids]
  gEfiCapsuleVendorGuid                   ## SOMETIMES_CONSUMES ## Variable L"CodRelocationInfo"

[Pcd]
  gEfiMdeModulePkgTokenSpaceGuid.PcdCoDRelocationFileName                 ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdCapsuleMax                            ## CONSUMES

[PcdEx]
  gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryFileName                      ## PRODUCES

[Depex]
  gEdkiiPeiBootInCapsuleOnDiskModePpiGuid

[UserExtensions.TianoCore."ExtraFiles"]
  CapsuleOnDiskLoadPeiExtra.uni
