blob: 4c721b48407f4311c0536f4afe1ba66b0966a3f6 [file] [log] [blame]
## @file
# Last PEIM executed in PEI phase to load DXE Core from a Firmware Volume.
#
# This module produces a special PPI named the DXE Initial Program Load (IPL)
# PPI to discover and dispatch the DXE Foundation and components that are
# needed to run the DXE Foundation.
#
# Copyright (c) 2013 Intel Corporation.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
# * Neither the name of Intel Corporation nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
##
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = DxeIpl
FILE_GUID = 86D70125-BAA3-4296-A62F-602BEBBB9081
MODULE_TYPE = PEIM
VERSION_STRING = 1.0
ENTRY_POINT = PeimInitializeDxeIpl
#
# 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]
../../../../../MdeModulePkg/Core/DxeIplPeim/DxeIpl.h
DxeLoad.c
[Sources.Ia32]
../../../../../MdeModulePkg/Core/DxeIplPeim/X64/VirtualMemory.h ||||gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode
../../../../../MdeModulePkg/Core/DxeIplPeim/X64/VirtualMemory.c ||||gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode
../../../../../MdeModulePkg/Core/DxeIplPeim/Ia32/DxeLoadFunc.c
../../../../../MdeModulePkg/Core/DxeIplPeim/Ia32/IdtVectorAsm.asm||||gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode
../../../../../MdeModulePkg/Core/DxeIplPeim/Ia32/IdtVectorAsm.S ||||gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode
[Sources.X64]
../../../../../MdeModulePkg/Core/DxeIplPeim/X64/VirtualMemory.h
../../../../../MdeModulePkg/Core/DxeIplPeim/X64/VirtualMemory.c
../../../../../MdeModulePkg/Core/DxeIplPeim/X64/DxeLoadFunc.c
[Sources.IPF]
../../../../../MdeModulePkg/Core/DxeIplPeim/Ipf/DxeLoadFunc.c
[Sources.EBC]
../../../../../MdeModulePkg/Core/DxeIplPeim/Ebc/DxeLoadFunc.c
[Sources.ARM]
../../../../../MdeModulePkg/Core/DxeIplPeim/Arm/DxeLoadFunc.c
[Packages]
MdePkg/MdePkg.dec
MdeModulePkg/MdeModulePkg.dec
[LibraryClasses]
PcdLib
MemoryAllocationLib
BaseMemoryLib
ExtractGuidedSectionLib
UefiDecompressLib
ReportStatusCodeLib
PeiServicesLib
HobLib
BaseLib
PeimEntryPoint
DebugLib
DebugAgentLib
PeiServicesTablePointerLib
[Ppis]
gEfiDxeIplPpiGuid ## PRODUCES
gEfiEndOfPeiSignalPpiGuid ## SOMETIMES_PRODUCES(Not produced on S3 boot path)
gEfiPeiDecompressPpiGuid ## SOMETIMES_PRODUCES
gEfiPeiReadOnlyVariable2PpiGuid ## SOMETIMES_CONSUMES
gEfiPeiLoadFilePpiGuid ## CONSUMES
gEfiPeiS3Resume2PpiGuid ## SOMETIMES_CONSUMES(Consumed on S3 boot path)
gEfiPeiRecoveryModulePpiGuid ## SOMETIMES_CONSUMES(Consumed on recovery boot path)
[Guids]
gEfiMemoryTypeInformationGuid ## SOMETIMES_CONSUMES ## Variable:L"MemoryTypeInformation"
gEfiMemoryTypeInformationGuid ## SOMETIMES_PRODUCES ## HOB
[FeaturePcd.IA32]
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode
[FeaturePcd.X64]
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplBuildPageTables
[FeaturePcd]
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSupportUefiDecompress
[Pcd.IA32,Pcd.X64]
gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable
[Depex]
gEfiPeiMemoryDiscoveredPpiGuid AND gEfiPeiLoadFilePpiGuid AND gEfiPeiMasterBootModePpiGuid
#
# [BootMode]
# S3_RESUME ## SOMETIMES_CONSUMES
# RECOVERY ## SOMETIMES_CONSUMES
#
#
# [Hob]
# ##
# # New Stack HoB
# MEMORY_ALLOCATION ## PRODUCES
# ##
# # Old Stack HOB
# MEMORY_ALLOCATION ## CONSUMES
#
# [Hob.IPF]
# ##
# # BSP Stack HOB for IPF
# MEMORY_ALLOCATION ## PRODUCES
#
#