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
100 PeiServicesTablePointerLib
111 PlatformPcieHelperLib
115 gEfiMemoryConfigDataGuid # ALWAYS_CONSUMED L"MemoryConfig"
116 gEfiAcpiVariableGuid # ALWAYS_CONSUMED L"AcpiGlobalVariab"
117 gEfiMemoryTypeInformationGuid # ALWAYS_CONSUMED L"MemoryTypeInformation"
118 gEfiMemoryConfigDataGuid # SOMETIMES_PRODUCED Hob: GUID_EXTENSION
119 gEfiSmmPeiSmramMemoryReserveGuid # ALWAYS_PRODUCED Hob: GUID_EXTENSION
120 gEfiFirmwareFileSystem2Guid # ALWAYS_CONSUMED
121 gEfiCapsuleGuid # ALWAYS_CONSUMED
122 gPeiCapsuleOnDataCDGuid
123 gPeiCapsuleOnFatIdeDiskGuid
124 gPeiCapsuleOnFatUsbDiskGuid
125 gEfiMemoryOverwriteControlDataGuid # SOMETIMES_CONSUMED
129 gQNCMemoryInitPpiGuid # PPI ALWAYS_CONSUMED
130 gEfiPeiMemoryDiscoveredPpiGuid # PPI ALWAYS_PRODUCED
131 gPeiAtaControllerPpiGuid # PPI SOMETIMES_PRODUCED
132 gEfiPeiStallPpiGuid # PPI ALWAYS_PRODUCED
133 gEfiPeiDeviceRecoveryModulePpiGuid # PPI SOMETIMES_CONSUMED
134 gEfiPeiRecoveryModulePpiGuid # PPI SOMETIMES_PRODUCED
135 gEfiPeiResetPpiGuid # PPI ALWAYS_PRODUCED
136 gEfiPeiReadOnlyVariable2PpiGuid # PPI ALWAYS_CONSUMED
137 gEfiPeiBootInRecoveryModePpiGuid # PPI SOMETIMES_PRODUCED
138 gEfiPeiMasterBootModePpiGuid # PPI ALWAYS_PRODUCED
139 gEfiPeiFirmwareVolumeInfoPpiGuid
140 gEfiEndOfPeiSignalPpiGuid
141 gEfiPeiVirtualBlockIoPpiGuid
142 gPeiCapsulePpiGuid # PPI ALWAYS_CONSUMED
145 gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnFatUsbDisk
146 gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnDataCD
147 gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnFatFloppyDisk
148 gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnIdeDisk
149 gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport
150 gQuarkPlatformTokenSpaceGuid.WaitIfResetDueToError
153 gQuarkPlatformTokenSpaceGuid.PcdEsramStage1Base
154 gQuarkPlatformTokenSpaceGuid.PcdFlashAreaSize
155 gQuarkPlatformTokenSpaceGuid.PcdFlashAreaBaseAddress
156 gQuarkPlatformTokenSpaceGuid.PcdEccScrubBlkSize
157 gQuarkPlatformTokenSpaceGuid.PcdEccScrubInterval
158 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase
159 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
160 gQuarkPlatformTokenSpaceGuid.PcdFlashQNCMicrocodeSize
161 gEfiQuarkNcSocIdTokenSpaceGuid.PcdPmbaIoBaseAddress
162 gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress
163 gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeIoBase
164 gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeIoSize
165 gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohUartFunctionNumber
166 gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohUartBusNumber
167 gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohUartDevNumber
168 gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioBusNumber
169 gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioDevNumber
170 gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioFunctionNumber
171 gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioBarRegister
172 gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioMmioBase
173 gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohMac0MmioBase
174 gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohMac1MmioBase
175 gEfiQuarkSCSocIdTokenSpaceGuid.PcdPeiQNCUsbControllerMemoryBaseAddress
176 gEfiQuarkNcSocIdTokenSpaceGuid.PcdRcbaMmioBaseAddress
177 gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeMemory32Base
178 gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeMemory32Size
179 gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeMemory64Base
180 gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeMemory64Size
181 gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciExpressSize
182 gEfiQuarkNcSocIdTokenSpaceGuid.PcdGbaIoBaseAddress
183 gEfiQuarkNcSocIdTokenSpaceGuid.PcdQuarkMicrocodeFile
184 gEfiQuarkNcSocIdTokenSpaceGuid.PcdTSegSize
185 gEfiQuarkNcSocIdTokenSpaceGuid.PcdESramMemorySize
186 gQuarkPlatformTokenSpaceGuid.PcdFlashFvRecoverySize
187 gQuarkPlatformTokenSpaceGuid.PcdFlashFvRecoveryBase
188 gQuarkPlatformTokenSpaceGuid.PcdFlashFvMainSize
189 gQuarkPlatformTokenSpaceGuid.PcdFlashFvMainBase
190 gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdBootState
191 gQuarkPlatformTokenSpaceGuid.PcdFlashFvPayloadBase
192 gQuarkPlatformTokenSpaceGuid.PcdFlashFvPayloadSize
193 gQuarkPlatformTokenSpaceGuid.PcdEnableFastBoot
194 gQuarkPlatformTokenSpaceGuid.PcdPlatformType
195 gEfiQuarkNcSocIdTokenSpaceGuid.PcdMrcParameters
196 gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohEthernetMac0
197 gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohEthernetMac1
200 gEfiPeiReadOnlyVariable2PpiGuid AND gQNCMemoryInitPpiGuid