## @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

[Pcd]
  gIntelFsp2PkgTokenSpaceGuid.PcdTemporaryRamBase              ## CONSUMES
  gIntelFsp2PkgTokenSpaceGuid.PcdTemporaryRamSize              ## CONSUMES
  gIntelFsp2PkgTokenSpaceGuid.PcdFspTemporaryRamSize           ## CONSUMES
  gIntelFsp2PkgTokenSpaceGuid.PcdFspHeapSizePercentage         ## CONSUMES
  gIntelFsp2PkgTokenSpaceGuid.PcdFspMaxInterruptSupported      ## CONSUMES
  gIntelFsp2PkgTokenSpaceGuid.PcdFspPrivateTemporaryRamSize    ## CONSUMES

[Ppis]
  gEfiTemporaryRamSupportPpiGuid                              ## PRODUCES
  gFspInApiModePpiGuid                                        ## PRODUCES
