Liming Gao 3d44658ca8 MdeModulePkg PeiCore: Add PCD to specify PEIM Shadow
v2 changelog:
Check CurrentPeimHandle to check the matched PeimHandle.
Add check point to ShadowPeiCore based on PCD.

v1 changelog:
PeiCore LoadImage always shadow itself and PEIM on normal boot after
the physical memory is installed. On the emulator platform, the shadow
may be not necessary. To support such usage, new PCD PcdShadowPeimOnBoot
is introduced to specify whether loads PEIM in memory by default.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18125 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-03 03:18:37 +00:00

135 lines
5.1 KiB
INI

## @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 - 2015, 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
[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