2 # This is the Platform PEIM to initialize whole platform on PEI phase.
4 # This PEIM includes 3 parts, pre memory initialization, MRC
5 # wrapper and post memory initialization.
6 # On pre memory, following action is performed,
9 # 3. Detect video adapter to determine whether we need pre allocated
12 # After that MRC wrapper calls MRC to initialize memory and install a PPI
13 # notify to do post memory
14 # initialization. MRC wrapper performance following actions,
15 # 1. Install EFI Memory.
16 # 2. Create HOB of system memory.
18 # On post memory, following action is performed,
19 # 1. QNC initialization after MRC.
20 # 2. SIO initialization.
21 # 3. Install ResetSystem and FinvFv PPI, relocate Stall to memory on
24 # 5. Create FV HOB and Flash HOB
25 # 6. Install RecoveryModule and AtaController PPI if on recovery boot mode.
27 # This PEIM does not have any register access directly, it depends on
28 # IntelQNCLib, QNCAccess libraries to access Chipset
31 # Platform.c - Provide main flow and entrypoint of PEIM.
32 # MemoryCallback.c - Includes a memory call back function notified when
34 # Recovery.c - provides the platform recoveyr functionality.
35 # MrcWrapper.c - Contains the logic to call MRC PPI and do Framework
36 # memory specific stuff like build memory map, build
37 # resource description hob for DXE phase,etc.
38 # Bootmode.c - Detect boot mode.
39 # Copyright (c) 2013 - 2016 Intel Corporation.
41 # This program and the accompanying materials
42 # are licensed and made available under the terms and conditions of the BSD License
43 # which accompanies this distribution. The full text of the license may be found at
44 # http://opensource.org/licenses/bsd-license.php
46 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
47 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
52 INF_VERSION = 0x00010005
53 BASE_NAME = PlatformEarlyInitPei
54 FILE_GUID = 9618C0DC-50A4-496c-994F-7241F282ED01
57 ENTRY_POINT = PeiInitPlatform
60 # The following information is for reference only and not required by the build tools.
62 # VALID_ARCHITECTURES = IA32 X64
80 MdeModulePkg/MdeModulePkg.dec
81 UefiCpuPkg/UefiCpuPkg.dec
82 IntelFrameworkPkg/IntelFrameworkPkg.dec
83 IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
84 QuarkPlatformPkg/QuarkPlatformPkg.dec
85 QuarkSocPkg/QuarkSocPkg.dec
101 PeiServicesTablePointerLib
112 PlatformPcieHelperLib
116 gEfiMemoryConfigDataGuid # ALWAYS_CONSUMED L"MemoryConfig"
117 gEfiAcpiVariableGuid # ALWAYS_CONSUMED L"AcpiGlobalVariab"
118 gEfiMemoryTypeInformationGuid # ALWAYS_CONSUMED L"MemoryTypeInformation"
119 gEfiMemoryConfigDataGuid # SOMETIMES_PRODUCED Hob: GUID_EXTENSION
120 gEfiSmmPeiSmramMemoryReserveGuid # ALWAYS_PRODUCED Hob: GUID_EXTENSION
121 gEfiFirmwareFileSystem2Guid # ALWAYS_CONSUMED
122 gEfiCapsuleGuid # ALWAYS_CONSUMED
123 gPeiCapsuleOnDataCDGuid
124 gPeiCapsuleOnFatIdeDiskGuid
125 gPeiCapsuleOnFatUsbDiskGuid
126 gEfiMemoryOverwriteControlDataGuid # SOMETIMES_CONSUMED
130 gQNCMemoryInitPpiGuid # PPI ALWAYS_CONSUMED
131 gEfiPeiMemoryDiscoveredPpiGuid # PPI ALWAYS_PRODUCED
132 gPeiAtaControllerPpiGuid # PPI SOMETIMES_PRODUCED
133 gEfiPeiStallPpiGuid # PPI ALWAYS_PRODUCED
134 gEfiPeiDeviceRecoveryModulePpiGuid # PPI SOMETIMES_CONSUMED
135 gEfiPeiRecoveryModulePpiGuid # PPI SOMETIMES_PRODUCED
136 gEfiPeiResetPpiGuid # PPI ALWAYS_PRODUCED
137 gEfiPeiReadOnlyVariable2PpiGuid # PPI ALWAYS_CONSUMED
138 gEfiPeiBootInRecoveryModePpiGuid # PPI SOMETIMES_PRODUCED
139 gEfiPeiMasterBootModePpiGuid # PPI ALWAYS_PRODUCED
140 gEfiPeiFirmwareVolumeInfoPpiGuid
141 gEfiEndOfPeiSignalPpiGuid
142 gEfiPeiVirtualBlockIoPpiGuid
143 gPeiCapsulePpiGuid # PPI ALWAYS_CONSUMED
146 gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnFatUsbDisk
147 gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnDataCD
148 gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnFatFloppyDisk
149 gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnIdeDisk
150 gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport
151 gQuarkPlatformTokenSpaceGuid.WaitIfResetDueToError
154 gQuarkPlatformTokenSpaceGuid.PcdEsramStage1Base
155 gQuarkPlatformTokenSpaceGuid.PcdFlashAreaSize
156 gQuarkPlatformTokenSpaceGuid.PcdFlashAreaBaseAddress
157 gQuarkPlatformTokenSpaceGuid.PcdEccScrubBlkSize
158 gQuarkPlatformTokenSpaceGuid.PcdEccScrubInterval
159 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase
160 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
161 gQuarkPlatformTokenSpaceGuid.PcdFlashQNCMicrocodeSize
162 gEfiQuarkNcSocIdTokenSpaceGuid.PcdPmbaIoBaseAddress
163 gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress
164 gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeIoBase
165 gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeIoSize
166 gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohUartFunctionNumber
167 gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohUartBusNumber
168 gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohUartDevNumber
169 gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioBusNumber
170 gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioDevNumber
171 gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioFunctionNumber
172 gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioBarRegister
173 gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioMmioBase
174 gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohMac0MmioBase
175 gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohMac1MmioBase
176 gEfiQuarkSCSocIdTokenSpaceGuid.PcdPeiQNCUsbControllerMemoryBaseAddress
177 gEfiQuarkNcSocIdTokenSpaceGuid.PcdRcbaMmioBaseAddress
178 gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeMemory32Base
179 gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeMemory32Size
180 gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeMemory64Base
181 gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeMemory64Size
182 gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciExpressSize
183 gEfiQuarkNcSocIdTokenSpaceGuid.PcdGbaIoBaseAddress
184 gEfiQuarkNcSocIdTokenSpaceGuid.PcdQuarkMicrocodeFile
185 gEfiQuarkNcSocIdTokenSpaceGuid.PcdTSegSize
186 gEfiQuarkNcSocIdTokenSpaceGuid.PcdESramMemorySize
187 gQuarkPlatformTokenSpaceGuid.PcdFlashFvRecoverySize
188 gQuarkPlatformTokenSpaceGuid.PcdFlashFvRecoveryBase
189 gQuarkPlatformTokenSpaceGuid.PcdFlashFvMainSize
190 gQuarkPlatformTokenSpaceGuid.PcdFlashFvMainBase
191 gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdBootState
192 gQuarkPlatformTokenSpaceGuid.PcdFlashFvPayloadBase
193 gQuarkPlatformTokenSpaceGuid.PcdFlashFvPayloadSize
194 gQuarkPlatformTokenSpaceGuid.PcdEnableFastBoot
195 gQuarkPlatformTokenSpaceGuid.PcdPlatformType
196 gEfiQuarkNcSocIdTokenSpaceGuid.PcdMrcParameters
197 gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohEthernetMac0
198 gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohEthernetMac1
201 gEfiPeiReadOnlyVariable2PpiGuid AND gQNCMemoryInitPpiGuid