## @file
# This is the first module taking control from the coreboot.
#
#  Copyright (c) 2013, Intel Corporation. All rights reserved.<BR>
#
#  This program and the accompanying materials
#  are licensed and made available under the terms and conditions of the BSD License
#  which accompanies this distribution. The full text of the license may be found at
#  http://opensource.org/licenses/bsd-license.php.
#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = SecCore
  FILE_GUID                      = BA7BE337-6CFB-4dbb-B26C-21EC2FC16073
  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 IPF EBC
#

[Sources]
  SecMain.c
  SecMain.h
  FindPeiCore.c

[Sources.IA32]
  Ia32/Stack.asm     | MSFT
  Ia32/Stack.S       | GCC
  Ia32/SecEntry.asm  | MSFT
  Ia32/SecEntry.S    | GCC

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  UefiCpuPkg/UefiCpuPkg.dec
  CorebootModulePkg/CorebootModulePkg.dec

[LibraryClasses]
  BaseMemoryLib
  DebugLib
  BaseLib
  PcdLib
  DebugAgentLib
  UefiCpuLib
  PeCoffGetEntryPointLib
  PeCoffExtraActionLib

[Ppis]
  gEfiSecPlatformInformationPpiGuid             # PPI ALWAYS_PRODUCED
  gEfiTemporaryRamSupportPpiGuid                # PPI ALWAYS_PRODUCED

[Pcd]
  gUefiCorebootModulePkgTokenSpaceGuid.PcdPayloadFdMemBase
  gUefiCorebootModulePkgTokenSpaceGuid.PcdPayloadFdMemSize

