## @file
# Recovery module.
#
# Load Recovery capsule and install FV.
#
# Copyright (c) 2016 - 2019, Intel Corporation. All rights reserved.<BR>
#
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = RecoveryModuleLoadPei
  MODULE_UNI_FILE                = RecoveryModuleLoadPei.uni
  FILE_GUID                      = 4278A574-4769-4D60-B090-DD4916691590
  MODULE_TYPE                    = PEIM
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = InitializeRecoveryModule

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 EBC
#

[Sources]
  RecoveryModuleLoadPei.h
  RecoveryModuleLoadPei.c
  ParseConfigProfile.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  SignedCapsulePkg/SignedCapsulePkg.dec

[LibraryClasses]
  PeimEntryPoint
  DebugLib
  HobLib
  BaseMemoryLib
  MemoryAllocationLib
  EdkiiSystemCapsuleLib
  IniParsingLib
  PrintLib

[Ppis]
  gEfiPeiRecoveryModulePpiGuid            ## PRODUCES
  gEfiPeiDeviceRecoveryModulePpiGuid      ## CONSUMES

[Guids]
  gEfiFmpCapsuleGuid                      ## SOMETIMES_CONSUMES ## GUID

[Pcd]
  gEfiMdeModulePkgTokenSpaceGuid.PcdSystemFmpCapsuleImageTypeIdGuid  ## CONSUMES
  gEfiSignedCapsulePkgTokenSpaceGuid.PcdEdkiiSystemFirmwareFileGuid  ## CONSUMES

[depex]
  gEfiPeiBootInRecoveryModePpiGuid

[BuildOptions]
  # 4KB alignment required because this module exceeds maximum size
  # for some NOOPT build configurations. This is a post-memory PEIM
  # that can be compressed, so size impacts for 4KB alignment can be
  # minimized. Must be in DLINK2_FLAGS to override DLINK_XIPFLAGS
  # for GCC PEIM build rules flags ordering.
  GCC:*_*_*_DLINK2_FLAGS = -z common-page-size=0x1000
  CLANGPDB:*_*_*_DLINK2_FLAGS =

[UserExtensions.TianoCore."ExtraFiles"]
  RecoveryModuleLoadPeiExtra.uni

