## @file
# PeiMain module is core module in PEI phase.
#
# It takes responsibilities of:
# 1) Initialize memory, PPI, image services etc, to establish PEIM runtime environment.
# 2) Dispatch PEIM from discovered FV.
# 3) Handoff control to DxeIpl to load DXE core and enter DXE phase.
#
# Copyright (c) 2006 - 2017, 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                      = PeiCore
  MODULE_UNI_FILE                = PeiCore.uni
  FILE_GUID                      = 52C05B14-0B98-496c-BC3B-04B50211D680
  MODULE_TYPE                    = PEI_CORE
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = PeiCore

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC (EBC is for build only)
#

[Sources]
  StatusCode/StatusCode.c
  Security/Security.c
  Reset/Reset.c
  Ppi/Ppi.c
  PeiMain/PeiMain.c
  Memory/MemoryServices.c
  Image/Image.c
  Hob/Hob.c
  FwVol/FwVol.c
  FwVol/FwVol.h
  Dispatcher/Dispatcher.c
  Dependency/Dependency.c
  Dependency/Dependency.h
  BootMode/BootMode.c
  CpuIo/CpuIo.c
  PciCfg2/PciCfg2.c
  PeiMain.h

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  BaseMemoryLib
  PeCoffGetEntryPointLib
  ReportStatusCodeLib
  PeiServicesLib
  PerformanceLib
  HobLib
  BaseLib
  PeiCoreEntryPoint
  DebugLib
  MemoryAllocationLib
  CacheMaintenanceLib
  PeCoffLib
  PeiServicesTablePointerLib
  PcdLib

[Guids]
  gPeiAprioriFileNameGuid       ## SOMETIMES_CONSUMES   ## File
  ## PRODUCES   ## UNDEFINED # Install ppi
  ## CONSUMES   ## UNDEFINED # Locate ppi
  gEfiFirmwareFileSystem2Guid
  ## PRODUCES   ## UNDEFINED # Install ppi
  ## CONSUMES   ## UNDEFINED # Locate ppi
  ## CONSUMES   ## GUID      # Used to compare with FV's file system guid and get the FV's file system format
  gEfiFirmwareFileSystem3Guid
//Override:Start
  gZeroGuid
//Override:End  
[Ppis]
  gEfiPeiStatusCodePpiGuid                      ## SOMETIMES_CONSUMES # PeiReportStatusService is not ready if this PPI doesn't exist
  gEfiPeiResetPpiGuid                           ## SOMETIMES_CONSUMES # PeiResetService is not ready if this PPI doesn't exist 
  gEfiDxeIplPpiGuid                             ## CONSUMES
  gEfiPeiMemoryDiscoveredPpiGuid                ## PRODUCES
  gEfiPeiDecompressPpiGuid                      ## SOMETIMES_CONSUMES
  ## NOTIFY
  ## SOMETIMES_PRODUCES # Produce FvInfoPpi if the encapsulated FvImage is found
  gEfiPeiFirmwareVolumeInfoPpiGuid
  ## NOTIFY
  ## SOMETIMES_PRODUCES # Produce FvInfoPpi2 if the encapsulated FvImage is found
  gEfiPeiFirmwareVolumeInfo2PpiGuid
  ## PRODUCES
  ## CONSUMES
  gEfiPeiLoadFilePpiGuid
  gEfiPeiSecurity2PpiGuid                       ## NOTIFY
  gEfiTemporaryRamSupportPpiGuid                ## SOMETIMES_CONSUMES
  gEfiTemporaryRamDonePpiGuid                   ## SOMETIMES_CONSUMES
  gEfiPeiReset2PpiGuid                          ## SOMETIMES_CONSUMES

[Pcd]  
  gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxFvSupported                   ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPeimPerFv                     ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPpiSupported                  ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPeiStackSize                  ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreImageLoaderSearchTeSectionFirst  ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport           ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressPeiCodePageNumber         ## SOMETIMES_CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressBootTimeCodePageNumber    ## SOMETIMES_CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressRuntimeCodePageNumber     ## SOMETIMES_CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdLoadModuleAtFixAddressEnable            ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdShadowPeimOnS3Boot                      ## CONSUMES 
  gEfiMdeModulePkgTokenSpaceGuid.PcdShadowPeimOnBoot                        ## CONSUMES 

# [BootMode]
# S3_RESUME             ## SOMETIMES_CONSUMES

# [Hob]
# PHIT                  ## PRODUCES
# RESOURCE_DESCRIPTOR   ## SOMETIMES_PRODUCES
# RESOURCE_DESCRIPTOR   ## SOMETIMES_CONSUMES
# MEMORY_ALLOCATION     ## SOMETIMES_CONSUMES
# FIRMWARE_VOLUME       ## SOMETIMES_PRODUCES
# FIRMWARE_VOLUME       ## SOMETIMES_CONSUMES
# MEMORY_ALLOCATION     ## SOMETIMES_PRODUCES
# MEMORY_ALLOCATION     ## PRODUCES # MEMORY_ALLOCATION_STACK
# UNDEFINED             ## PRODUCES # MEMORY_POOL

[UserExtensions.TianoCore."ExtraFiles"]
  PeiCoreExtra.uni
