REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1405 Background as below. Problem: As static configuration from the PCDs, the binary PeiCore (for example in FSP binary with dispatch mode) could not predict how many FVs, Files or PPIs for different platforms. Burden: Platform developers need configure the PCDs accordingly for different platforms. To solve the problem and remove the burden, we can update code to remove the using of PcdPeiCoreMaxFvSupported, PcdPeiCoreMaxPeimPerFv and PcdPeiCoreMaxPpiSupported by extending buffer dynamically for FV, File and PPI management. This patch removes the using of PcdPeiCoreMaxPpiSupported in PeiCore. Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Hao Wu <hao.a.wu@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Ruiyu Ni <ruiyu.ni@intel.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com> Cc: Chasel Chiu <chasel.chiu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Chasel Chiu <chasel.chiu@intel.com> Reviewed-by: Jian J Wang <jian.j.wang@intel.com>
134 lines
5.0 KiB
INI
134 lines
5.0 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 - 2018, 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 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
|
|
gEfiSecHobDataPpiGuid ## SOMETIMES_CONSUMES
|
|
|
|
[Pcd]
|
|
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
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdInitValueInTempStack ## 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
|