## @file
#  Platform PEI driver
#
#  This module provides platform specific function to detect boot mode.
#  Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
#
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = PlatformPei
  FILE_GUID                      = 222c386d-5abc-4fb4-b124-fbb82488acf4
  MODULE_TYPE                    = PEIM
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = InitializePlatform

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 EBC
#

[Sources]
  AmdSev.c
  ClearCache.c
  FeatureControl.c
  Fv.c
  MemDetect.c
  MemTypeInfo.c
  Platform.c
  Platform.h
  IntelTdx.c

[Packages]
  EmbeddedPkg/EmbeddedPkg.dec
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  SecurityPkg/SecurityPkg.dec
  UefiCpuPkg/UefiCpuPkg.dec
  OvmfPkg/OvmfPkg.dec

[Guids]
  gEfiMemoryTypeInformationGuid
  gFdtHobGuid
  gUefiOvmfPkgPlatformInfoGuid

[LibraryClasses]
  BaseLib
  CacheMaintenanceLib
  DebugLib
  HobLib
  IoLib
  PciLib
  ResourcePublicationLib
  PeiServicesLib
  PeiServicesTablePointerLib
  PeimEntryPoint
  QemuFwCfgLib
  QemuFwCfgS3Lib
  QemuFwCfgSimpleParserLib
  MtrrLib
  MemEncryptSevLib
  PcdLib
  CcExitLib
  PlatformInitLib

[Pcd]
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvSize
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvSize
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPeiTempRamBase
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPeiTempRamSize
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesSize
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecGhcbPageTableBase
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecGhcbPageTableSize
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecGhcbBase
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecGhcbSize
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfLockBoxStorageBase
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfLockBoxStorageSize
  gUefiOvmfPkgTokenSpaceGuid.PcdGuidedExtractHandlerTableSize
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfHostBridgePciDevId
  gUefiOvmfPkgTokenSpaceGuid.PcdPciIoBase
  gUefiOvmfPkgTokenSpaceGuid.PcdPciIoSize
  gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Base
  gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Size
  gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Base
  gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Size
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDecompressionScratchEnd
  gUefiOvmfPkgTokenSpaceGuid.PcdQ35TsegMbytes
  gUefiOvmfPkgTokenSpaceGuid.PcdQ35SmramAtDefaultSmbase
  gUefiOvmfPkgTokenSpaceGuid.PcdXenPvhStartOfDayStructPtr
  gUefiOvmfPkgTokenSpaceGuid.PcdXenPvhStartOfDayStructPtrSize
  gUefiOvmfPkgTokenSpaceGuid.PcdSecureBootSupported
  gEfiMdePkgTokenSpaceGuid.PcdGuidedExtractHandlerTableAddress
  gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress
  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize
  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
  gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved
  gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode
  gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable
  gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack
  gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiS3Enable
  gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask
  gEfiMdeModulePkgTokenSpaceGuid.PcdGhcbBase
  gEfiMdeModulePkgTokenSpaceGuid.PcdGhcbSize
  gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy
  gUefiCpuPkgTokenSpaceGuid.PcdCpuLocalApicBaseAddress
  gUefiCpuPkgTokenSpaceGuid.PcdCpuMaxLogicalProcessorNumber
  gUefiCpuPkgTokenSpaceGuid.PcdCpuBootLogicalProcessorNumber
  gUefiCpuPkgTokenSpaceGuid.PcdCpuApStackSize
  gUefiCpuPkgTokenSpaceGuid.PcdSevEsIsEnabled
  gEfiMdePkgTokenSpaceGuid.PcdConfidentialComputingGuestAttr
  gUefiCpuPkgTokenSpaceGuid.PcdGhcbHypervisorFeatures
  gEfiMdeModulePkgTokenSpaceGuid.PcdTdxSharedBitMask

[FixedPcd]
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfCpuidBase
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfCpuidSize
  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS
  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory
  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType
  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode
  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecGhcbBackupBase
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecGhcbBackupSize
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfWorkAreaBase
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfWorkAreaSize
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSnpSecretsBase
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSnpSecretsSize

[FeaturePcd]
  gUefiOvmfPkgTokenSpaceGuid.PcdCsmEnable
  gUefiOvmfPkgTokenSpaceGuid.PcdSmmSmramRequire

[Ppis]
  gEfiPeiMasterBootModePpiGuid
  gEfiPeiMpServicesPpiGuid
  gEfiPeiReadOnlyVariable2PpiGuid

[Depex]
  TRUE

