1## @file
2# Coreboot Payload Package
3#
4# Provides drivers and definitions to create uefi payload for coreboot.
5#
6# Copyright (c) 2014 - 2016, Intel Corporation. All rights reserved.<BR>
7# This program and the accompanying materials are licensed and made available under
8# the terms and conditions of the BSD License that accompanies this distribution.
9# The full text of the license may be found at
10# http://opensource.org/licenses/bsd-license.php.
11#
12# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14#
15##
16
17################################################################################
18#
19# Defines Section - statements that will be processed to create a Makefile.
20#
21################################################################################
22[Defines]
23  PLATFORM_NAME                       = CorebootPayloadPkg
24  PLATFORM_GUID                       = F71608AB-D63D-4491-B744-A99998C8CD96
25  PLATFORM_VERSION                    = 0.1
26  DSC_SPECIFICATION                   = 0x00010005
27  SUPPORTED_ARCHITECTURES             = IA32|X64
28  BUILD_TARGETS                       = DEBUG|RELEASE|NOOPT
29  SKUID_IDENTIFIER                    = DEFAULT
30  OUTPUT_DIRECTORY                    = Build/CorebootPayloadPkgX64
31  FLASH_DEFINITION                    = CorebootPayloadPkg/CorebootPayloadPkg.fdf
32
33  DEFINE SECURE_BOOT_ENABLE      = FALSE
34  DEFINE SOURCE_DEBUG_ENABLE     = FALSE
35
36  #
37  # CPU options
38  #
39  DEFINE MAX_LOGICAL_PROCESSORS  = 64
40
41  #
42  # PCI options
43  #
44  DEFINE PCIE_BASE                        = 0xE0000000
45
46  #
47  # Serial port set up
48  #
49  DEFINE BAUD_RATE                        = 115200
50  DEFINE SERIAL_CLOCK_RATE                = 1843200
51  DEFINE SERIAL_LINE_CONTROL              = 3 # 8-bits, no parity
52  DEFINE SERIAL_HARDWARE_FLOW_CONTROL     = FALSE
53  DEFINE SERIAL_DETECT_CABLE              = FALSE
54  DEFINE SERIAL_FIFO_CONTROL              = 7 # Enable FIFO
55  DEFINE SERIAL_EXTENDED_TX_FIFO_SIZE     = 16
56  DEFINE UART_DEFAULT_BAUD_RATE           = $(BAUD_RATE)
57  DEFINE UART_DEFAULT_DATA_BITS           = 8
58  DEFINE UART_DEFAULT_PARITY              = 1
59  DEFINE UART_DEFAULT_STOP_BITS           = 1
60  DEFINE DEFAULT_TERMINAL_TYPE            = 0
61
62  #
63  #  typedef struct {
64  #    UINT16  VendorId;          ///< Vendor ID to match the PCI device.  The value 0xFFFF terminates the list of entries.
65  #    UINT16  DeviceId;          ///< Device ID to match the PCI device
66  #    UINT32  ClockRate;         ///< UART clock rate.  Set to 0 for default clock rate of 1843200 Hz
67  #    UINT64  Offset;            ///< The byte offset into to the BAR
68  #    UINT8   BarIndex;          ///< Which BAR to get the UART base address
69  #    UINT8   RegisterStride;    ///< UART register stride in bytes.  Set to 0 for default register stride of 1 byte.
70  #    UINT16  ReceiveFifoDepth;  ///< UART receive FIFO depth in bytes. Set to 0 for a default FIFO depth of 16 bytes.
71  #    UINT16  TransmitFifoDepth; ///< UART transmit FIFO depth in bytes. Set to 0 for a default FIFO depth of 16 bytes.
72  #    UINT8   Reserved[2];
73  #  } PCI_SERIAL_PARAMETER;
74  #
75  # Vendor FFFF Device 0000 Prog Interface 1, BAR #0, Offset 0, Stride = 1, Clock 1843200 (0x1c2000)
76  #
77  #                                           [Vendor]   [Device]  [----ClockRate---]  [------------Offset-----------] [Bar] [Stride] [RxFifo] [TxFifo]   [Rsvd]   [Vendor]
78  DEFINE PCI_SERIAL_PARAMETERS            = {0xff,0xff, 0x00,0x00, 0x0,0x20,0x1c,0x00, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x00,    0x01, 0x0,0x0, 0x0,0x0, 0x0,0x0, 0xff,0xff}
79
80  #
81  # Chipset options
82  #
83  DEFINE USE_HPET_TIMER                   = FALSE
84
85  #
86  # Shell options: [BUILD_SHELL, FULL_BIN, MIN_BIN, NONE, UEFI]
87  #
88  DEFINE SHELL_TYPE              = FULL_BIN
89
90[BuildOptions]
91  *_*_*_CC_FLAGS                 = -D DISABLE_NEW_DEPRECATED_INTERFACES
92  GCC:DEBUG_*_*_CC_FLAGS         = -Og -flto
93  GCC:DEBUG_*_*_DLINK_FLAGS      = -flto
94  GCC:*_UNIXGCC_*_CC_FLAGS       = -DMDEPKG_NDEBUG
95  GCC:RELEASE_*_*_CC_FLAGS       = -DMDEPKG_NDEBUG
96  INTEL:RELEASE_*_*_CC_FLAGS     = /D MDEPKG_NDEBUG
97  MSFT:RELEASE_*_*_CC_FLAGS      = /D MDEPKG_NDEBUG
98
99[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
100  MSFT:*_*_*_DLINK_FLAGS         = /ALIGN:4096
101
102################################################################################
103#
104# SKU Identification section - list of all SKU IDs supported by this Platform.
105#
106################################################################################
107[SkuIds]
108  0|DEFAULT
109
110################################################################################
111#
112# Library Class section - list of all Library Classes needed by this Platform.
113#
114################################################################################
115[LibraryClasses]
116  #
117  # Entry point
118  #
119  PeiCoreEntryPoint|MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf
120  PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf
121  DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf
122  UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
123  UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
124
125  #
126  # Basic
127  #
128  BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
129  BaseMemoryLib|MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf
130  SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf
131  PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
132  CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf
133  IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
134!if $(PCIE_BASE) == 0
135  PciLib|MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf
136  PciCf8Lib|MdePkg/Library/BasePciCf8Lib/BasePciCf8Lib.inf
137!else
138  PciLib|MdePkg/Library/BasePciLibPciExpress/BasePciLibPciExpress.inf
139  PciExpressLib|MdePkg/Library/BasePciExpressLib/BasePciExpressLib.inf
140!endif
141  PciSegmentLib|MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibPci.inf
142  PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
143  PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
144  CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf
145
146  #
147  # UEFI & PI
148  #
149  UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
150  UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
151  UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
152  UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
153  UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
154  HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
155  DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
156  UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
157  PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLibIdt/PeiServicesTablePointerLibIdt.inf
158  PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
159  DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
160  DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
161  UefiCpuLib|UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib.inf
162  SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
163
164  #
165  # Generic Modules
166  #
167  UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf
168  UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
169  OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
170  CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
171  SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
172  UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf
173  CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
174
175  #
176  # CPU
177  #
178  MtrrLib|UefiCpuPkg/Library/MtrrLib/MtrrLib.inf
179  LocalApicLib|UefiCpuPkg/Library/BaseXApicLib/BaseXApicLib.inf
180
181  #
182  # Platform
183  #
184  TimerLib|CorebootPayloadPkg/Library/AcpiTimerLib/AcpiTimerLib.inf
185  ResetSystemLib|CorebootPayloadPkg/Library/ResetSystemLib/ResetSystemLib.inf
186  SerialPortLib|CorebootModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf
187  PlatformHookLib|CorebootPayloadPkg/Library/PlatformHookLib/PlatformHookLib.inf
188  PlatformBootManagerLib|CorebootPayloadPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
189  IoApicLib|PcAtChipsetPkg/Library/BaseIoApicLib/BaseIoApicLib.inf
190  CbPlatformSupportLib|CorebootModulePkg/Library/CbPlatformSupportLibNull/CbPlatformSupportLibNull.inf
191
192  #
193  # Misc
194  #
195  DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
196  PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
197!if $(SOURCE_DEBUG_ENABLE) == TRUE
198  PeCoffExtraActionLib|SourceLevelDebugPkg/Library/PeCoffExtraActionLibDebug/PeCoffExtraActionLibDebug.inf
199  DebugCommunicationLib|SourceLevelDebugPkg/Library/DebugCommunicationLibSerialPort/DebugCommunicationLibSerialPort.inf
200!else
201  PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
202  DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf
203!endif
204  CbParseLib|CorebootModulePkg/Library/CbParseLib/CbParseLib.inf
205  DebugLib|MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
206  LockBoxLib|MdeModulePkg/Library/LockBoxNullLib/LockBoxNullLib.inf
207  FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf
208
209[LibraryClasses.IA32.SEC]
210  DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
211  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
212  HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
213  MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
214  DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf
215  ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf
216
217[LibraryClasses.IA32.PEI_CORE, LibraryClasses.IA32.PEIM]
218  PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
219  HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
220  MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
221  ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
222  ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf
223!if $(SOURCE_DEBUG_ENABLE)
224  DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgentLib.inf
225!endif
226
227[LibraryClasses.common.DXE_CORE]
228  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
229  HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf
230  MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf
231  ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
232  ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
233!if $(SOURCE_DEBUG_ENABLE)
234  DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgentLib.inf
235!endif
236  CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf
237
238[LibraryClasses.common.DXE_DRIVER]
239  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
240  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
241  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
242  ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
243  ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
244  CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf
245  MpInitLib|UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf
246
247[LibraryClasses.common.DXE_RUNTIME_DRIVER]
248  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
249  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
250  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
251  ReportStatusCodeLib|MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/RuntimeDxeReportStatusCodeLib.inf
252
253[LibraryClasses.common.UEFI_DRIVER,LibraryClasses.common.UEFI_APPLICATION]
254  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
255  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
256  ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
257  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
258
259################################################################################
260#
261# Pcd Section - list of all EDK II PCD Entries defined by this Platform.
262#
263################################################################################
264[PcdsFeatureFlag]
265  gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|TRUE
266  gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory|FALSE
267  gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode|TRUE
268  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
269  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE
270
271[PcdsFixedAtBuild]
272  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x10000
273  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxHardwareErrorVariableSize|0x8000
274  gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize|0x10000
275
276  gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress|0x0
277  gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable|TRUE
278  gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 }
279
280  gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|$(PCIE_BASE)
281
282!if $(SOURCE_DEBUG_ENABLE)
283  gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdDebugLoadImageMethod|0x2
284!endif
285
286[PcdsPatchableInModule.common]
287  gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x7
288  gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
289!if $(SOURCE_DEBUG_ENABLE)
290  gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17
291!else
292  gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2F
293!endif
294
295  #
296  # The following parameters are set by Library/PlatformHookLib
297  #
298  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseMmio|FALSE
299  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x3f8
300  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialBaudRate|$(BAUD_RATE)
301  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterStride|1
302
303  #
304  # Enable these parameters to be set on the command line
305  #
306  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialClockRate|$(SERIAL_CLOCK_RATE)
307  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialLineControl|$(SERIAL_LINE_CONTROL)
308  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseHardwareFlowControl|$(SERIAL_HARDWARE_FLOW_CONTROL)
309  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialDetectCable|$(SERIAL_DETECT_CABLE)
310  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialFifoControl|$(SERIAL_FIFO_CONTROL)
311  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialExtendedTxFifoSize|$(SERIAL_EXTENDED_TX_FIFO_SIZE)
312
313  gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|TRUE
314  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|$(UART_DEFAULT_BAUD_RATE)
315  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits|$(UART_DEFAULT_DATA_BITS)
316  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity|$(UART_DEFAULT_PARITY)
317  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits|$(UART_DEFAULT_STOP_BITS)
318  gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|$(DEFAULT_TERMINAL_TYPE)
319  gEfiMdeModulePkgTokenSpaceGuid.PcdPciSerialParameters|$(PCI_SERIAL_PARAMETERS)
320
321  gUefiCpuPkgTokenSpaceGuid.PcdCpuMaxLogicalProcessorNumber|$(MAX_LOGICAL_PROCESSORS)
322
323  #
324  # Set the proper Shell file GUID
325  #
326  !if $(SHELL_TYPE) == FULL_BIN
327  # c57ad6b7-0515-40a8-9d21-551652854e37
328  gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile|{ 0xB7, 0xD6, 0x7A, 0xC5, 0x15, 0x05, 0xA8, 0x40, 0x9D, 0x21, 0x55, 0x16, 0x52, 0x85, 0x4E, 0x37 }
329  !else
330  # 7C04A583-9E3E-4f1c-AD65-E05268D0B4D1
331  gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile|{ 0x83, 0xA5, 0x04, 0x7C, 0x3E, 0x9E, 0x1c, 0x4f, 0xAD, 0x65, 0xE0, 0x52, 0x68, 0xD0, 0xB4, 0xD1 }
332  !endif
333
334################################################################################
335#
336# Pcd Dynamic Section - list of all EDK II PCD Entries defined by this Platform
337#
338################################################################################
339
340[PcdsDynamicDefault]
341  gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0
342  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0
343  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0
344  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0
345  gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|3
346
347  ## This PCD defines the video horizontal resolution.
348  #  This PCD could be set to 0 then video resolution could be at highest resolution.
349  gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|0
350  ## This PCD defines the video vertical resolution.
351  #  This PCD could be set to 0 then video resolution could be at highest resolution.
352  gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|0
353
354  ## The PCD is used to specify the video horizontal resolution of text setup.
355  gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoHorizontalResolution|0
356  ## The PCD is used to specify the video vertical resolution of text setup.
357  gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution|0
358
359################################################################################
360#
361# Components Section - list of all EDK II Modules needed by this Platform.
362#
363################################################################################
364[Components.IA32]
365  #
366  # SEC Core
367  #
368  CorebootModulePkg/SecCore/SecCore.inf
369
370  #
371  # PEI Core
372  #
373  MdeModulePkg/Core/Pei/PeiMain.inf
374
375  #
376  # PEIM
377  #
378  MdeModulePkg/Universal/PCD/Pei/Pcd.inf {
379    <LibraryClasses>
380      PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
381  }
382  MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCodeRouterPei.inf
383  MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf
384
385  CorebootModulePkg/CbSupportPei/CbSupportPei.inf
386  MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
387
388[Components.X64]
389  #
390  # DXE Core
391  #
392  MdeModulePkg/Core/Dxe/DxeMain.inf {
393    <LibraryClasses>
394      NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
395  }
396
397  #
398  # Components that produce the architectural protocols
399  #
400  MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
401  UefiCpuPkg/CpuDxe/CpuDxe.inf
402  MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
403  MdeModulePkg/Application/UiApp/UiApp.inf {
404    <LibraryClasses>
405      NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf
406      NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf
407      NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf
408  }
409!if $(USE_HPET_TIMER) == TRUE
410  PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf
411!else
412  PcAtChipsetPkg/8254TimerDxe/8254Timer.inf
413!endif
414  MdeModulePkg/Universal/Metronome/Metronome.inf
415  MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
416  MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
417  MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
418  MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
419  MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf
420  PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf
421  MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf
422
423  #
424  # Following are the DXE drivers
425  #
426  MdeModulePkg/Universal/PCD/Dxe/Pcd.inf {
427    <LibraryClasses>
428      PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
429  }
430
431  MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf
432  MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf
433  UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf
434  MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
435  MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf
436  PcAtChipsetPkg/8259InterruptControllerDxe/8259.inf
437  MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
438  MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
439  MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
440
441  CorebootModulePkg/CbSupportDxe/CbSupportDxe.inf
442
443  #
444  # SMBIOS Support
445  #
446  MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
447
448  #
449  # ACPI Support
450  #
451  MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
452
453  #
454  # PCI Support
455  #
456  MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf
457  MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf {
458    <LibraryClasses>
459      PciHostBridgeLib|CorebootPayloadPkg/Library/PciHostBridgeLib/PciHostBridgeLib.inf
460  }
461
462  #
463  # SCSI/ATA/IDE/DISK Support
464  #
465  MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
466  MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
467  MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
468  FatPkg/EnhancedFatDxe/Fat.inf
469  CorebootModulePkg/SataControllerDxe/SataControllerDxe.inf
470  MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf
471  MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf
472  MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
473  MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
474
475  #
476  # SD/eMMC Support
477  #
478  MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.inf
479  MdeModulePkg/Bus/Sd/EmmcDxe/EmmcDxe.inf
480  MdeModulePkg/Bus/Sd/SdDxe/SdDxe.inf
481
482  #
483  # Usb Support
484  #
485  MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf
486  MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf
487  MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf
488  MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
489  MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf
490  MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
491
492  #
493  # OHCI support
494  #
495  QuarkSocPkg/QuarkSouthCluster/Usb/Ohci/Dxe/OhciDxe.inf
496
497  #
498  # ISA Support
499  #
500  MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
501
502  #
503  # Console Support
504  #
505  MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
506  MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
507  MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
508  MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
509
510  #
511  # Framebuffer Gop
512  #
513  CorebootPayloadPkg/FbGop/FbGop.inf
514
515  #------------------------------
516  #  Build the shell
517  #------------------------------
518
519!if $(SHELL_TYPE) == BUILD_SHELL
520
521[PcdsFixedAtBuild]
522  ## This flag is used to control initialization of the shell library
523  #  This should be FALSE for compiling the shell application itself only.
524  gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
525
526  #
527  # Shell Lib
528  #
529[LibraryClasses]
530  BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf
531  DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
532  FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
533
534[Components.X64]
535  ShellPkg/Application/Shell/Shell.inf {
536
537    #------------------------------
538    #  Basic commands
539    #------------------------------
540
541    <LibraryClasses>
542      NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf
543      NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf
544      NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf
545      NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf
546      NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf
547      NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
548
549    #------------------------------
550    #  Networking commands
551    #------------------------------
552
553    <LibraryClasses>
554      NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
555      NULL|ShellPkg/Library/UefiShellTftpCommandLib/UefiShellTftpCommandLib.inf
556
557    #------------------------------
558    #  Performance command
559    #------------------------------
560
561    <LibraryClasses>
562      NULL|ShellPkg/Library/UefiDpLib/UefiDpLib.inf
563
564    #------------------------------
565    #  Support libraries
566    #------------------------------
567
568    <LibraryClasses>
569      DebugLib|MdePkg/Library/UefiDebugLibConOut/UefiDebugLibConOut.inf
570      DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
571      FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
572      HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
573      NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf
574      PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
575      ShellCEntryLib|ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf
576      ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf
577      ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
578      SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
579  }
580
581!endif
582