• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 - 2016, 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.nasm||||gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode
44  Ia32/IdtVectorAsm.asm||||gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode
45  Ia32/IdtVectorAsm.S  ||||gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode
46
47[Sources.X64]
48  X64/VirtualMemory.h
49  X64/VirtualMemory.c
50  X64/DxeLoadFunc.c
51
52[Sources.IPF]
53  Ipf/DxeLoadFunc.c
54
55[Sources.EBC]
56  Ebc/DxeLoadFunc.c
57
58[Sources.ARM, Sources.AARCH64]
59  Arm/DxeLoadFunc.c
60
61[Packages]
62  MdePkg/MdePkg.dec
63  MdeModulePkg/MdeModulePkg.dec
64
65[Packages.ARM, Packages.AARCH64]
66  ArmPkg/ArmPkg.dec
67
68[LibraryClasses]
69  PcdLib
70  MemoryAllocationLib
71  BaseMemoryLib
72  ExtractGuidedSectionLib
73  UefiDecompressLib
74  ReportStatusCodeLib
75  PeiServicesLib
76  HobLib
77  BaseLib
78  PeimEntryPoint
79  DebugLib
80  DebugAgentLib
81  PeiServicesTablePointerLib
82
83[LibraryClasses.ARM, LibraryClasses.AARCH64]
84  ArmMmuLib
85
86[Ppis]
87  gEfiDxeIplPpiGuid                 ## PRODUCES
88  gEfiPeiDecompressPpiGuid          ## PRODUCES
89  gEfiEndOfPeiSignalPpiGuid         ## SOMETIMES_PRODUCES # Not produced on S3 boot path
90  gEfiPeiReadOnlyVariable2PpiGuid   ## SOMETIMES_CONSUMES
91  gEfiPeiLoadFilePpiGuid            ## SOMETIMES_CONSUMES
92  gEfiPeiS3Resume2PpiGuid           ## SOMETIMES_CONSUMES # Consumed on S3 boot path
93  gEfiPeiRecoveryModulePpiGuid      ## SOMETIMES_CONSUMES # Consumed on recovery boot path
94  ## SOMETIMES_CONSUMES
95  ## UNDEFINED # HOB
96  gEfiVectorHandoffInfoPpiGuid
97  gEfiPeiMemoryDiscoveredPpiGuid    ## SOMETIMES_CONSUMES
98
99[Guids]
100  ## SOMETIMES_CONSUMES ## Variable:L"MemoryTypeInformation"
101  ## SOMETIMES_PRODUCES ## HOB
102  gEfiMemoryTypeInformationGuid
103
104[FeaturePcd.IA32]
105  gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode      ## CONSUMES
106
107[FeaturePcd.X64]
108  gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplBuildPageTables       ## CONSUMES
109
110[FeaturePcd]
111  gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSupportUefiDecompress ## CONSUMES
112
113[Pcd.IA32,Pcd.X64]
114  gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable              ## SOMETIMES_CONSUMES
115
116[Pcd.IA32,Pcd.X64,Pcd.ARM,Pcd.AARCH64]
117  gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack               ## SOMETIMES_CONSUMES
118
119[Depex]
120  gEfiPeiLoadFilePpiGuid AND gEfiPeiMasterBootModePpiGuid
121
122#
123# [BootMode]
124#  S3_RESUME                        ## SOMETIMES_CONSUMES
125#  RECOVERY_FULL                    ## SOMETIMES_CONSUMES
126#
127#
128# [Hob]
129# MEMORY_ALLOCATION                 ## SOMETIMES_PRODUCES # MEMORY_ALLOCATION_MODULE for DxeCore
130# MEMORY_ALLOCATION                 ## SOMETIMES_PRODUCES # New Stack HoB
131# MEMORY_ALLOCATION                 ## SOMETIMES_PRODUCES # Old Stack HOB
132#
133# [Hob.IPF]
134# MEMORY_ALLOCATION                 ## SOMETIMES_PRODUCES # MEMORY_ALLOCATION_BSP_STORE
135#
136
137[UserExtensions.TianoCore."ExtraFiles"]
138  DxeIplExtra.uni
139