## @file
#  Library provides the helper functions for SEV guest
#
# Copyright (c) 2020 - 2024, Advanced Micro Devices. All rights reserved.<BR>
#
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
#
##

[Defines]
  INF_VERSION                    = 1.25
  BASE_NAME                      = PeiMemEncryptSevLib
  FILE_GUID                      = 15d9a694-3d2a-4184-9672-ba55c3070e07
  MODULE_TYPE                    = BASE
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = MemEncryptSevLib|PEIM

#
# The following information is for reference only and not required by the build
# tools.
#
# VALID_ARCHITECTURES           = IA32 X64
#

[Packages]
  MdeModulePkg/MdeModulePkg.dec
  MdePkg/MdePkg.dec
  OvmfPkg/OvmfPkg.dec
  UefiCpuPkg/UefiCpuPkg.dec

[Sources]
  PeiDxeMemEncryptSevLibInternal.c
  PeiMemEncryptSevLibInternal.c

[Sources.X64]
  X64/MemEncryptSevLib.c
  X64/PeiDxeVirtualMemory.c
  X64/PeiSnpSystemRamValidate.c
  X64/SnpPageStateChangeInternal.c
  X64/VirtualMemory.c
  X64/VirtualMemory.h

[Sources.IA32]
  Ia32/MemEncryptSevLib.c

[LibraryClasses]
  BaseLib
  CacheMaintenanceLib
  CpuLib
  DebugLib
  MemoryAllocationLib
  PcdLib
  CcExitLib
  AmdSvsmLib

[Guids]
  gEfiIgvmDataHobGuid

[FeaturePcd]
  gUefiOvmfPkgTokenSpaceGuid.PcdSmmSmramRequire

[FixedPcd]
  gUefiCpuPkgTokenSpaceGuid.PcdSevEsWorkAreaBase
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfWorkAreaBase
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecValidatedEnd
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecValidatedStart
