## @file
#  Sec Core for FSP to support MultiPhase (SeparatePhase) SiInitialization.
#
#  Copyright (c) 2022, Intel Corporation. All rights reserved.<BR>
#
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = Fsp24SecCoreS
  FILE_GUID                      = E039988B-0F21-4D95-AE34-C469B10E13F8
  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]
  SecFspApiChk.c
  SecFsp.h

[Sources.IA32]
  Ia32/Stack.nasm
  Ia32/Fsp24ApiEntryS.nasm
  Ia32/FspApiEntryCommon.nasm
  Ia32/FspHelper.nasm

[Sources.X64]
  X64/Stack.nasm
  X64/Fsp24ApiEntryS.nasm
  X64/FspApiEntryCommon.nasm
  X64/FspHelper.nasm

[Binaries.Ia32]
  RAW|Vtf0/Bin/ResetVec.ia32.raw |GCC

[Packages]
  MdePkg/MdePkg.dec
  IntelFsp2Pkg/IntelFsp2Pkg.dec

[LibraryClasses]
  BaseMemoryLib
  DebugLib
  BaseLib
  PciCf8Lib
  SerialPortLib
  FspSwitchStackLib
  FspCommonLib
  FspSecPlatformLib
  FspMultiPhaseLib

[Ppis]
  gEfiTemporaryRamSupportPpiGuid                              ## PRODUCES

