1## @file
2#  Last PEIM executed in PEI phase to load DXE Core from a Firmware Volume.
3#
4#  This module produces a special PPI named the DXE Initial Program Load (IPL)
5#  PPI to discover and dispatch the DXE Foundation and components that are
6#  needed to run the DXE Foundation.
7#
8#  Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
9#  This program and the accompanying materials
10#  are licensed and made available under the terms and conditions of the BSD License
11#  which accompanies this distribution.  The full text of the license may be found at
12#  http://opensource.org/licenses/bsd-license.php
13#
14#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
15#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
16#
17##
18
19[Defines]
20  INF_VERSION                    = 0x00010005
21  BASE_NAME                      = DxeIpl
22  MODULE_UNI_FILE                = DxeIpl.uni
23  FILE_GUID                      = 86D70125-BAA3-4296-A62F-602BEBBB9081
24  MODULE_TYPE                    = PEIM
25  VERSION_STRING                 = 1.0
26
27  ENTRY_POINT                    = PeimInitializeDxeIpl
28
29#
30# The following information is for reference only and not required by the build tools.
31#
32#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC (EBC is for build only) AARCH64
33#
34
35[Sources]
36  DxeIpl.h
37  DxeLoad.c
38
39[Sources.Ia32]
40  X64/VirtualMemory.h  ||||gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode
41  X64/VirtualMemory.c  ||||gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode
42  Ia32/DxeLoadFunc.c
43  Ia32/IdtVectorAsm.asm||||gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode
44  Ia32/IdtVectorAsm.S  ||||gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode
45
46[Sources.X64]
47  X64/VirtualMemory.h
48  X64/VirtualMemory.c
49  X64/DxeLoadFunc.c
50
51[Sources.IPF]
52  Ipf/DxeLoadFunc.c
53
54[Sources.EBC]
55  Ebc/DxeLoadFunc.c
56
57[Sources.ARM, Sources.AARCH64]
58  Arm/DxeLoadFunc.c
59
60[Packages]
61  MdePkg/MdePkg.dec
62  MdeModulePkg/MdeModulePkg.dec
63
64[Packages.ARM, Packages.AARCH64]
65  ArmPkg/ArmPkg.dec
66
67[LibraryClasses]
68  PcdLib
69  MemoryAllocationLib
70  BaseMemoryLib
71  ExtractGuidedSectionLib
72  UefiDecompressLib
73  ReportStatusCodeLib
74  PeiServicesLib
75  HobLib
76  BaseLib
77  PeimEntryPoint
78  DebugLib
79  DebugAgentLib
80  PeiServicesTablePointerLib
81
82[LibraryClasses.ARM, LibraryClasses.AARCH64]
83  ArmLib
84
85[Ppis]
86  gEfiDxeIplPpiGuid                 ## PRODUCES
87  gEfiPeiDecompressPpiGuid          ## PRODUCES
88  gEfiEndOfPeiSignalPpiGuid         ## SOMETIMES_PRODUCES # Not produced on S3 boot path
89  gEfiPeiReadOnlyVariable2PpiGuid   ## SOMETIMES_CONSUMES
90  gEfiPeiLoadFilePpiGuid            ## SOMETIMES_CONSUMES
91  gEfiPeiS3Resume2PpiGuid           ## SOMETIMES_CONSUMES # Consumed on S3 boot path
92  gEfiPeiRecoveryModulePpiGuid      ## SOMETIMES_CONSUMES # Consumed on recovery boot path
93  ## SOMETIMES_CONSUMES
94  ## UNDEFINED # HOB
95  gEfiVectorHandoffInfoPpiGuid
96
97[Guids]
98  ## SOMETIMES_CONSUMES ## Variable:L"MemoryTypeInformation"
99  ## SOMETIMES_PRODUCES ## HOB
100  gEfiMemoryTypeInformationGuid
101
102[FeaturePcd.IA32]
103  gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode      ## CONSUMES
104
105[FeaturePcd.X64]
106  gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplBuildPageTables       ## CONSUMES
107
108[FeaturePcd]
109  gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSupportUefiDecompress ## CONSUMES
110
111[Pcd.IA32,Pcd.X64]
112  gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable              ## SOMETIMES_CONSUMES
113
114[Pcd.IA32,Pcd.X64,Pcd.ARM,Pcd.AARCH64]
115  gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack               ## SOMETIMES_CONSUMES
116
117[Depex]
118  gEfiPeiMemoryDiscoveredPpiGuid AND gEfiPeiLoadFilePpiGuid AND gEfiPeiMasterBootModePpiGuid
119
120#
121# [BootMode]
122#  S3_RESUME                        ## SOMETIMES_CONSUMES
123#  RECOVERY_FULL                    ## SOMETIMES_CONSUMES
124#
125#
126# [Hob]
127# MEMORY_ALLOCATION                 ## SOMETIMES_PRODUCES # MEMORY_ALLOCATION_MODULE for DxeCore
128# MEMORY_ALLOCATION                 ## SOMETIMES_PRODUCES # New Stack HoB
129# MEMORY_ALLOCATION                 ## SOMETIMES_PRODUCES # Old Stack HOB
130#
131# [Hob.IPF]
132# MEMORY_ALLOCATION                 ## SOMETIMES_PRODUCES # MEMORY_ALLOCATION_BSP_STORE
133#
134
135[UserExtensions.TianoCore."ExtraFiles"]
136  DxeIplExtra.uni
137