]>
Commit | Line | Data |
---|---|---|
b303605e MK |
1 | ## @file\r |
2 | # This is the Platform PEIM to initialize whole platform on PEI phase.\r | |
3 | #\r | |
4 | # This PEIM includes 3 parts, pre memory initialization, MRC\r | |
5 | # wrapper and post memory initialization.\r | |
6 | # On pre memory, following action is performed,\r | |
7 | # 1. Initizluize GMCH.\r | |
8 | # 2. Detect boot mode.\r | |
9 | # 3. Detect video adapter to determine whether we need pre allocated\r | |
10 | # memory.\r | |
11 | #\r | |
12 | # After that MRC wrapper calls MRC to initialize memory and install a PPI\r | |
13 | # notify to do post memory\r | |
14 | # initialization. MRC wrapper performance following actions,\r | |
15 | # 1. Install EFI Memory.\r | |
16 | # 2. Create HOB of system memory.\r | |
17 | #\r | |
18 | # On post memory, following action is performed,\r | |
19 | # 1. QNC initialization after MRC.\r | |
20 | # 2. SIO initialization.\r | |
21 | # 3. Install ResetSystem and FinvFv PPI, relocate Stall to memory on\r | |
22 | # recovery boot mode.\r | |
23 | # 4. Set MTRR for PEI\r | |
24 | # 5. Create FV HOB and Flash HOB\r | |
25 | # 6. Install RecoveryModule and AtaController PPI if on recovery boot mode.\r | |
26 | #\r | |
27 | # This PEIM does not have any register access directly, it depends on\r | |
28 | # IntelQNCLib, QNCAccess libraries to access Chipset\r | |
29 | # registers.\r | |
30 | #\r | |
31 | # Platform.c - Provide main flow and entrypoint of PEIM.\r | |
32 | # MemoryCallback.c - Includes a memory call back function notified when\r | |
33 | # MRC is done.\r | |
34 | # Recovery.c - provides the platform recoveyr functionality.\r | |
35 | # MrcWrapper.c - Contains the logic to call MRC PPI and do Framework\r | |
36 | # memory specific stuff like build memory map, build\r | |
37 | # resource description hob for DXE phase,etc.\r | |
38 | # Bootmode.c - Detect boot mode.\r | |
1df91bb7 | 39 | # Copyright (c) 2013 - 2019 Intel Corporation.\r |
b303605e | 40 | #\r |
0eb3de2e | 41 | # SPDX-License-Identifier: BSD-2-Clause-Patent\r |
b303605e MK |
42 | #\r |
43 | ##\r | |
44 | \r | |
45 | [Defines]\r | |
46 | INF_VERSION = 0x00010005\r | |
47 | BASE_NAME = PlatformEarlyInitPei\r | |
48 | FILE_GUID = 9618C0DC-50A4-496c-994F-7241F282ED01\r | |
49 | MODULE_TYPE = PEIM\r | |
50 | VERSION_STRING = 1.0\r | |
51 | ENTRY_POINT = PeiInitPlatform\r | |
52 | \r | |
53 | #\r | |
54 | # The following information is for reference only and not required by the build tools.\r | |
55 | #\r | |
56 | # VALID_ARCHITECTURES = IA32 X64\r | |
57 | #\r | |
58 | \r | |
59 | [Sources]\r | |
60 | Generic/Recovery.c\r | |
61 | PlatformErratas.c\r | |
62 | MrcWrapper.c\r | |
63 | MrcWrapper.h\r | |
64 | PlatformEarlyInit.c\r | |
65 | PlatformEarlyInit.h\r | |
66 | MemoryCallback.c\r | |
67 | BootMode.c\r | |
68 | CommonHeader.h\r | |
69 | PeiFvSecurity.c\r | |
70 | PeiFvSecurity.h\r | |
71 | \r | |
72 | [Packages]\r | |
73 | MdePkg/MdePkg.dec\r | |
74 | MdeModulePkg/MdeModulePkg.dec\r | |
75 | UefiCpuPkg/UefiCpuPkg.dec\r | |
76 | IntelFrameworkPkg/IntelFrameworkPkg.dec\r | |
77 | IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec\r | |
78 | QuarkPlatformPkg/QuarkPlatformPkg.dec\r | |
79 | QuarkSocPkg/QuarkSocPkg.dec\r | |
80 | \r | |
81 | [LibraryClasses]\r | |
82 | ResetSystemLib\r | |
83 | PrintLib\r | |
84 | TimerLib\r | |
b303605e MK |
85 | PcdLib\r |
86 | IntelQNCLib\r | |
87 | ReportStatusCodeLib\r | |
88 | PciLib\r | |
89 | PciExpressLib\r | |
90 | IoLib\r | |
91 | PciCf8Lib\r | |
92 | HobLib\r | |
93 | BaseMemoryLib\r | |
94 | PeiServicesTablePointerLib\r | |
95 | PeiServicesLib\r | |
96 | BaseLib\r | |
97 | PeimEntryPoint\r | |
98 | DebugLib\r | |
99 | MemoryAllocationLib\r | |
100 | PerformanceLib\r | |
101 | CacheMaintenanceLib\r | |
102 | MtrrLib\r | |
103 | QNCAccessLib\r | |
104 | PlatformHelperLib\r | |
105 | PlatformPcieHelperLib\r | |
406d8575 | 106 | I2cLib\r |
b303605e MK |
107 | \r |
108 | [Guids]\r | |
109 | gEfiMemoryConfigDataGuid # ALWAYS_CONSUMED L"MemoryConfig"\r | |
110 | gEfiAcpiVariableGuid # ALWAYS_CONSUMED L"AcpiGlobalVariab"\r | |
111 | gEfiMemoryTypeInformationGuid # ALWAYS_CONSUMED L"MemoryTypeInformation"\r | |
112 | gEfiMemoryConfigDataGuid # SOMETIMES_PRODUCED Hob: GUID_EXTENSION\r | |
113 | gEfiSmmPeiSmramMemoryReserveGuid # ALWAYS_PRODUCED Hob: GUID_EXTENSION\r | |
114 | gEfiFirmwareFileSystem2Guid # ALWAYS_CONSUMED\r | |
115 | gEfiCapsuleGuid # ALWAYS_CONSUMED\r | |
116 | gPeiCapsuleOnDataCDGuid\r | |
117 | gPeiCapsuleOnFatIdeDiskGuid\r | |
118 | gPeiCapsuleOnFatUsbDiskGuid\r | |
119 | gEfiMemoryOverwriteControlDataGuid # SOMETIMES_CONSUMED\r | |
120 | gEfiQuarkCapsuleGuid\r | |
121 | \r | |
122 | [Ppis]\r | |
123 | gQNCMemoryInitPpiGuid # PPI ALWAYS_CONSUMED\r | |
124 | gEfiPeiMemoryDiscoveredPpiGuid # PPI ALWAYS_PRODUCED\r | |
125 | gPeiAtaControllerPpiGuid # PPI SOMETIMES_PRODUCED\r | |
126 | gEfiPeiStallPpiGuid # PPI ALWAYS_PRODUCED\r | |
127 | gEfiPeiDeviceRecoveryModulePpiGuid # PPI SOMETIMES_CONSUMED\r | |
128 | gEfiPeiRecoveryModulePpiGuid # PPI SOMETIMES_PRODUCED\r | |
129 | gEfiPeiResetPpiGuid # PPI ALWAYS_PRODUCED\r | |
130 | gEfiPeiReadOnlyVariable2PpiGuid # PPI ALWAYS_CONSUMED\r | |
131 | gEfiPeiBootInRecoveryModePpiGuid # PPI SOMETIMES_PRODUCED\r | |
132 | gEfiPeiMasterBootModePpiGuid # PPI ALWAYS_PRODUCED\r | |
133 | gEfiPeiFirmwareVolumeInfoPpiGuid\r | |
134 | gEfiEndOfPeiSignalPpiGuid\r | |
135 | gEfiPeiVirtualBlockIoPpiGuid\r | |
136 | gPeiCapsulePpiGuid # PPI ALWAYS_CONSUMED\r | |
137 | \r | |
138 | [FeaturePcd]\r | |
139 | gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnFatUsbDisk\r | |
140 | gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnDataCD\r | |
141 | gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnFatFloppyDisk\r | |
142 | gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnIdeDisk\r | |
b303605e MK |
143 | gQuarkPlatformTokenSpaceGuid.WaitIfResetDueToError\r |
144 | \r | |
145 | [Pcd]\r | |
146 | gQuarkPlatformTokenSpaceGuid.PcdEsramStage1Base\r | |
147 | gQuarkPlatformTokenSpaceGuid.PcdFlashAreaSize\r | |
148 | gQuarkPlatformTokenSpaceGuid.PcdFlashAreaBaseAddress\r | |
149 | gQuarkPlatformTokenSpaceGuid.PcdEccScrubBlkSize\r | |
150 | gQuarkPlatformTokenSpaceGuid.PcdEccScrubInterval\r | |
151 | gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase\r | |
152 | gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize\r | |
153 | gQuarkPlatformTokenSpaceGuid.PcdFlashQNCMicrocodeSize\r | |
154 | gEfiQuarkNcSocIdTokenSpaceGuid.PcdPmbaIoBaseAddress\r | |
155 | gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress\r | |
156 | gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeIoBase\r | |
157 | gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeIoSize\r | |
158 | gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohUartFunctionNumber\r | |
159 | gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohUartBusNumber\r | |
160 | gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohUartDevNumber\r | |
161 | gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioBusNumber\r | |
162 | gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioDevNumber\r | |
163 | gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioFunctionNumber\r | |
164 | gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioBarRegister\r | |
165 | gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioMmioBase\r | |
166 | gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohMac0MmioBase\r | |
167 | gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohMac1MmioBase\r | |
168 | gEfiQuarkSCSocIdTokenSpaceGuid.PcdPeiQNCUsbControllerMemoryBaseAddress\r | |
169 | gEfiQuarkNcSocIdTokenSpaceGuid.PcdRcbaMmioBaseAddress\r | |
170 | gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeMemory32Base\r | |
171 | gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeMemory32Size\r | |
172 | gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeMemory64Base\r | |
173 | gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeMemory64Size\r | |
174 | gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciExpressSize\r | |
175 | gEfiQuarkNcSocIdTokenSpaceGuid.PcdGbaIoBaseAddress\r | |
176 | gEfiQuarkNcSocIdTokenSpaceGuid.PcdQuarkMicrocodeFile\r | |
177 | gEfiQuarkNcSocIdTokenSpaceGuid.PcdTSegSize\r | |
178 | gEfiQuarkNcSocIdTokenSpaceGuid.PcdESramMemorySize\r | |
179 | gQuarkPlatformTokenSpaceGuid.PcdFlashFvRecoverySize\r | |
180 | gQuarkPlatformTokenSpaceGuid.PcdFlashFvRecoveryBase\r | |
181 | gQuarkPlatformTokenSpaceGuid.PcdFlashFvMainSize\r | |
182 | gQuarkPlatformTokenSpaceGuid.PcdFlashFvMainBase\r | |
183 | gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdBootState\r | |
184 | gQuarkPlatformTokenSpaceGuid.PcdFlashFvPayloadBase\r | |
185 | gQuarkPlatformTokenSpaceGuid.PcdFlashFvPayloadSize\r | |
186 | gQuarkPlatformTokenSpaceGuid.PcdEnableFastBoot\r | |
187 | gQuarkPlatformTokenSpaceGuid.PcdPlatformType\r | |
188 | gEfiQuarkNcSocIdTokenSpaceGuid.PcdMrcParameters\r | |
189 | gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohEthernetMac0\r | |
190 | gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohEthernetMac1\r | |
191 | \r | |
192 | [Depex]\r | |
193 | gEfiPeiReadOnlyVariable2PpiGuid AND gQNCMemoryInitPpiGuid\r |