QuarkPlatformPkg/PlatformInit: Fix recovery detection issues
[mirror_edk2.git] / QuarkPlatformPkg / Platform / Pei / PlatformInit / PlatformEarlyInit.inf
1 ## @file
2 # This is the Platform PEIM to initialize whole platform on PEI phase.
3 #
4 # This PEIM includes 3 parts, pre memory initialization, MRC
5 # wrapper and post memory initialization.
6 # On pre memory, following action is performed,
7 # 1. Initizluize GMCH.
8 # 2. Detect boot mode.
9 # 3. Detect video adapter to determine whether we need pre allocated
10 # memory.
11 #
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.
17 #
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
22 # recovery boot mode.
23 # 4. Set MTRR for PEI
24 # 5. Create FV HOB and Flash HOB
25 # 6. Install RecoveryModule and AtaController PPI if on recovery boot mode.
26 #
27 # This PEIM does not have any register access directly, it depends on
28 # IntelQNCLib, QNCAccess libraries to access Chipset
29 # registers.
30 #
31 # Platform.c - Provide main flow and entrypoint of PEIM.
32 # MemoryCallback.c - Includes a memory call back function notified when
33 # MRC is done.
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.
40 #
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
45 #
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.
48 #
49 ##
50
51 [Defines]
52 INF_VERSION = 0x00010005
53 BASE_NAME = PlatformEarlyInitPei
54 FILE_GUID = 9618C0DC-50A4-496c-994F-7241F282ED01
55 MODULE_TYPE = PEIM
56 VERSION_STRING = 1.0
57 ENTRY_POINT = PeiInitPlatform
58
59 #
60 # The following information is for reference only and not required by the build tools.
61 #
62 # VALID_ARCHITECTURES = IA32 X64
63 #
64
65 [Sources]
66 Generic/Recovery.c
67 PlatformErratas.c
68 MrcWrapper.c
69 MrcWrapper.h
70 PlatformEarlyInit.c
71 PlatformEarlyInit.h
72 MemoryCallback.c
73 BootMode.c
74 CommonHeader.h
75 PeiFvSecurity.c
76 PeiFvSecurity.h
77
78 [Packages]
79 MdePkg/MdePkg.dec
80 MdeModulePkg/MdeModulePkg.dec
81 UefiCpuPkg/UefiCpuPkg.dec
82 IntelFrameworkPkg/IntelFrameworkPkg.dec
83 IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
84 QuarkPlatformPkg/QuarkPlatformPkg.dec
85 QuarkSocPkg/QuarkSocPkg.dec
86
87 [LibraryClasses]
88 ResetSystemLib
89 PrintLib
90 TimerLib
91 PcdLib
92 IntelQNCLib
93 ReportStatusCodeLib
94 PciLib
95 PciExpressLib
96 IoLib
97 PciCf8Lib
98 HobLib
99 BaseMemoryLib
100 PeiServicesTablePointerLib
101 PeiServicesLib
102 BaseLib
103 PeimEntryPoint
104 DebugLib
105 MemoryAllocationLib
106 PerformanceLib
107 CacheMaintenanceLib
108 MtrrLib
109 QNCAccessLib
110 PlatformHelperLib
111 PlatformPcieHelperLib
112 I2cLib
113
114 [Guids]
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
126 gEfiQuarkCapsuleGuid
127
128 [Ppis]
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
143
144 [FeaturePcd]
145 gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnFatUsbDisk
146 gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnDataCD
147 gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnFatFloppyDisk
148 gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnIdeDisk
149 gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport
150 gQuarkPlatformTokenSpaceGuid.WaitIfResetDueToError
151
152 [Pcd]
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
198
199 [Depex]
200 gEfiPeiReadOnlyVariable2PpiGuid AND gQNCMemoryInitPpiGuid