## @file
#  Sec Core for FSP
#
#  Copyright (c) 2016 - 2022, Intel Corporation. All rights reserved.<BR>
#
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
##

[Defines]
  INF_VERSION                    = 1.30
  BASE_NAME                      = FspSecCoreM
  FILE_GUID                      = C2F9AE46-3437-4FEF-9CB1-9A568B282FEE
  MODULE_TYPE                    = SEC
  VERSION_STRING                 = 1.0

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64
#

[Sources]
  SecMain.c
  SecMain.h
  SecFsp.c
  SecFsp.h
  SecFspApiChk.c

[Sources.IA32]
  Ia32/Stack.nasm
  Ia32/FspApiEntryM.nasm
  Ia32/FspApiEntryCommon.nasm
  Ia32/FspHelper.nasm
  Ia32/ReadEsp.nasm

[Sources.X64]
  X64/Stack.nasm
  X64/FspApiEntryM.nasm
  X64/FspApiEntryCommon.nasm
  X64/FspHelper.nasm
  X64/ReadRsp.nasm

[Binaries.Ia32]
  RAW|Vtf0/Bin/ResetVec.ia32.raw |GCC

[Packages]
  MdePkg/MdePkg.dec
  IntelFsp2Pkg/IntelFsp2Pkg.dec
  UefiCpuPkg/UefiCpuPkg.dec

[LibraryClasses]
  BaseMemoryLib
  DebugLib
  BaseLib
  PciCf8Lib
  SerialPortLib
  FspSwitchStackLib
  FspCommonLib
  FspSecPlatformLib
  CpuLib
  FspPlatformLib
  StackCheckLib

[Pcd]
  gIntelFsp2PkgTokenSpaceGuid.PcdTemporaryRamBase              ## CONSUMES
  gIntelFsp2PkgTokenSpaceGuid.PcdTemporaryRamSize              ## CONSUMES
  gIntelFsp2PkgTokenSpaceGuid.PcdFspTemporaryRamSize           ## CONSUMES
  gIntelFsp2PkgTokenSpaceGuid.PcdFspHeapSizePercentage         ## CONSUMES
  gIntelFsp2PkgTokenSpaceGuid.PcdFspMaxInterruptSupported      ## CONSUMES
  gIntelFsp2PkgTokenSpaceGuid.PcdFspPrivateTemporaryRamSize    ## CONSUMES
  gIntelFsp2PkgTokenSpaceGuid.PcdFspSaveRestorePageTableEnable ## CONSUMES

[Ppis]
  gEfiTemporaryRamSupportPpiGuid                              ## PRODUCES
  gFspInApiModePpiGuid                                        ## PRODUCES
