summaryrefslogtreecommitdiff
path: root/QuarkPlatformPkg/Platform/Pei/PlatformInit/PlatformEarlyInit.inf
blob: dd373defdb58f7072c44e965287f3166ef010857 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
## @file
# This is the Platform PEIM to initialize whole platform on PEI phase.
#
# This PEIM includes 3 parts, pre memory initialization, MRC
#  wrapper and post memory initialization.
#  On pre memory, following action is performed,
#  1. Initizluize GMCH.
#  2. Detect boot mode.
#  3. Detect video adapter to determine whether we need pre allocated
#  memory.
#
#  After that MRC wrapper calls MRC to initialize memory and install a PPI
#  notify to do post memory
#  initialization. MRC wrapper performance following actions,
#  1. Install EFI Memory.
#  2. Create HOB of system memory.
#
#  On post memory, following action is performed,
#  1. QNC initialization after MRC.
#  2. SIO initialization.
#  3. Install ResetSystem and FinvFv PPI, relocate Stall to memory on
#   recovery boot mode.
#  4. Set MTRR for PEI
#  5. Create FV HOB and Flash HOB
#  6. Install RecoveryModule and AtaController PPI if on recovery boot mode.
#
#  This PEIM does not have any register access directly, it depends on
#  IntelQNCLib, QNCAccess libraries to access Chipset
#  registers.
#
#  Platform.c - Provide main flow and entrypoint of PEIM.
#  MemoryCallback.c - Includes a memory call back function notified when
#     MRC is done.
#  Recovery.c - provides the platform recoveyr functionality.
#  MrcWrapper.c - Contains the logic to call MRC PPI and do Framework
#     memory specific stuff like build memory map, build
#     resource description hob for DXE phase,etc.
#  Bootmode.c - Detect boot mode.
# Copyright (c) 2013 Intel Corporation.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution.  The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = PlatformEarlyInitPei
  FILE_GUID                      = 9618C0DC-50A4-496c-994F-7241F282ED01
  MODULE_TYPE                    = PEIM
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = PeiInitPlatform

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64
#

[Sources]
  Generic/Recovery.c
  PlatformErratas.c
  MrcWrapper.c
  MrcWrapper.h
  PlatformEarlyInit.c
  PlatformEarlyInit.h
  MemoryCallback.c
  BootMode.c
  CommonHeader.h
  PeiFvSecurity.c
  PeiFvSecurity.h

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  UefiCpuPkg/UefiCpuPkg.dec
  IntelFrameworkPkg/IntelFrameworkPkg.dec
  IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
  QuarkPlatformPkg/QuarkPlatformPkg.dec
  QuarkSocPkg/QuarkSocPkg.dec

[LibraryClasses]
  ResetSystemLib
  PrintLib
  TimerLib
  RecoveryOemHookLib
  PcdLib
  IntelQNCLib
  ReportStatusCodeLib
  PciLib
  PciExpressLib
  IoLib
  PciCf8Lib
  HobLib
  BaseMemoryLib
  PeiServicesTablePointerLib
  PeiServicesLib
  BaseLib
  PeimEntryPoint
  DebugLib
  MemoryAllocationLib
  PerformanceLib
  CacheMaintenanceLib
  MtrrLib
  QNCAccessLib
  PlatformHelperLib
  PlatformPcieHelperLib

[Guids]
  gEfiMemoryConfigDataGuid                      # ALWAYS_CONSUMED L"MemoryConfig"
  gEfiAcpiVariableGuid                          # ALWAYS_CONSUMED L"AcpiGlobalVariab"
  gEfiMemoryTypeInformationGuid                 # ALWAYS_CONSUMED L"MemoryTypeInformation"
  gEfiMemoryConfigDataGuid                      # SOMETIMES_PRODUCED  Hob: GUID_EXTENSION
  gEfiSmmPeiSmramMemoryReserveGuid              # ALWAYS_PRODUCED  Hob: GUID_EXTENSION
  gEfiFirmwareFileSystem2Guid                   # ALWAYS_CONSUMED
  gEfiCapsuleGuid                               # ALWAYS_CONSUMED
  gPeiCapsuleOnDataCDGuid
  gPeiCapsuleOnFatIdeDiskGuid
  gPeiCapsuleOnFatUsbDiskGuid
  gEfiMemoryOverwriteControlDataGuid            # SOMETIMES_CONSUMED
  gEfiQuarkCapsuleGuid

[Ppis]
  gQNCMemoryInitPpiGuid                         # PPI ALWAYS_CONSUMED
  gEfiPeiMemoryDiscoveredPpiGuid                # PPI ALWAYS_PRODUCED
  gPeiAtaControllerPpiGuid                      # PPI SOMETIMES_PRODUCED
  gEfiPeiStallPpiGuid                           # PPI ALWAYS_PRODUCED
  gEfiPeiDeviceRecoveryModulePpiGuid            # PPI SOMETIMES_CONSUMED
  gEfiPeiRecoveryModulePpiGuid                  # PPI SOMETIMES_PRODUCED
  gEfiPeiResetPpiGuid                           # PPI ALWAYS_PRODUCED
  gEfiPeiReadOnlyVariable2PpiGuid               # PPI ALWAYS_CONSUMED
  gEfiPeiBootInRecoveryModePpiGuid              # PPI SOMETIMES_PRODUCED
  gEfiPeiMasterBootModePpiGuid                  # PPI ALWAYS_PRODUCED
  gEfiPeiFirmwareVolumeInfoPpiGuid
  gEfiEndOfPeiSignalPpiGuid
  gEfiPeiVirtualBlockIoPpiGuid
  gPeiCapsulePpiGuid                            # PPI ALWAYS_CONSUMED

[FeaturePcd]
  gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnFatUsbDisk
  gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnDataCD
  gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnFatFloppyDisk
  gEfiMdeModulePkgTokenSpaceGuid.PcdRecoveryOnIdeDisk
  gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport
  gQuarkPlatformTokenSpaceGuid.WaitIfResetDueToError

[Pcd]
  gQuarkPlatformTokenSpaceGuid.PcdEsramStage1Base
  gQuarkPlatformTokenSpaceGuid.PcdFlashAreaSize
  gQuarkPlatformTokenSpaceGuid.PcdFlashAreaBaseAddress
  gQuarkPlatformTokenSpaceGuid.PcdEccScrubBlkSize
  gQuarkPlatformTokenSpaceGuid.PcdEccScrubInterval
  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase
  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
  gQuarkPlatformTokenSpaceGuid.PcdFlashQNCMicrocodeSize
  gEfiQuarkNcSocIdTokenSpaceGuid.PcdPmbaIoBaseAddress
  gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress
  gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeIoBase
  gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeIoSize
  gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohUartFunctionNumber
  gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohUartBusNumber
  gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohUartDevNumber
  gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioBusNumber
  gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioDevNumber
  gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioFunctionNumber
  gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioBarRegister
  gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioMmioBase
  gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohMac0MmioBase
  gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohMac1MmioBase
  gEfiQuarkSCSocIdTokenSpaceGuid.PcdPeiQNCUsbControllerMemoryBaseAddress
  gEfiQuarkNcSocIdTokenSpaceGuid.PcdRcbaMmioBaseAddress
  gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeMemory32Base
  gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeMemory32Size
  gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeMemory64Base
  gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeMemory64Size
  gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciExpressSize
  gEfiQuarkNcSocIdTokenSpaceGuid.PcdGbaIoBaseAddress
  gEfiQuarkNcSocIdTokenSpaceGuid.PcdQuarkMicrocodeFile
  gEfiQuarkNcSocIdTokenSpaceGuid.PcdTSegSize
  gEfiQuarkNcSocIdTokenSpaceGuid.PcdESramMemorySize
  gQuarkPlatformTokenSpaceGuid.PcdFlashFvRecoverySize
  gQuarkPlatformTokenSpaceGuid.PcdFlashFvRecoveryBase
  gQuarkPlatformTokenSpaceGuid.PcdFlashFvMainSize
  gQuarkPlatformTokenSpaceGuid.PcdFlashFvMainBase
  gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdBootState
  gQuarkPlatformTokenSpaceGuid.PcdFlashFvPayloadBase
  gQuarkPlatformTokenSpaceGuid.PcdFlashFvPayloadSize
  gQuarkPlatformTokenSpaceGuid.PcdEnableFastBoot
  gQuarkPlatformTokenSpaceGuid.PcdPlatformType
  gEfiQuarkNcSocIdTokenSpaceGuid.PcdMrcParameters
  gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohEthernetMac0
  gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohEthernetMac1

[Depex]
  gEfiPeiReadOnlyVariable2PpiGuid AND gQNCMemoryInitPpiGuid