1## @file
2# Coreboot Payload Package
3#
4# Provides drivers and definitions to create uefi payload for coreboot.
5#
6# Copyright (c) 2014 - 2015, 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[BuildOptions]
37  GCC:*_UNIXGCC_*_CC_FLAGS       = -DMDEPKG_NDEBUG
38  GCC:RELEASE_*_*_CC_FLAGS       = -DMDEPKG_NDEBUG
39  INTEL:RELEASE_*_*_CC_FLAGS     = /D MDEPKG_NDEBUG
40  MSFT:RELEASE_*_*_CC_FLAGS      = /D MDEPKG_NDEBUG
41
42################################################################################
43#
44# SKU Identification section - list of all SKU IDs supported by this Platform.
45#
46################################################################################
47[SkuIds]
48  0|DEFAULT
49
50################################################################################
51#
52# Library Class section - list of all Library Classes needed by this Platform.
53#
54################################################################################
55[LibraryClasses]
56  #
57  # Entry point
58  #
59  PeiCoreEntryPoint|MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf
60  PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf
61  DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf
62  UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
63  UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
64
65  #
66  # Basic
67  #
68  BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
69  BaseMemoryLib|MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf
70  SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf
71  PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
72  CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf
73  IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
74  PciLib|MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf
75  PciCf8Lib|MdePkg/Library/BasePciCf8Lib/BasePciCf8Lib.inf
76  PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
77  PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
78  CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf
79
80  #
81  # UEFI & PI
82  #
83  UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
84  UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
85  UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
86  UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
87  UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
88  HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
89  DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
90  UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
91  PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLibIdt/PeiServicesTablePointerLibIdt.inf
92  PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
93  DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
94  DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
95  UefiCpuLib|UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib.inf
96
97  #
98  # Generic Modules
99  #
100  UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf
101  UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
102  OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
103  CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
104  SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
105  GenericBdsLib|IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf
106  CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
107
108  #
109  # CPU
110  #
111  MtrrLib|UefiCpuPkg/Library/MtrrLib/MtrrLib.inf
112  LocalApicLib|UefiCpuPkg/Library/BaseXApicLib/BaseXApicLib.inf
113
114  #
115  # Platform
116  #
117  TimerLib|CorebootPayloadPkg/Library/AcpiTimerLib/AcpiTimerLib.inf
118  ResetSystemLib|CorebootPayloadPkg/Library/ResetSystemLib/ResetSystemLib.inf
119  SerialPortLib|MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf
120  PlatformHookLib|CorebootPayloadPkg/Library/PlatformHookLib/PlatformHookLib.inf
121  PlatformBdsLib|CorebootPayloadPkg/Library/PlatformBdsLib/PlatformBdsLib.inf
122
123  #
124  # Misc
125  #
126  DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
127  PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
128  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
129!if $(SOURCE_DEBUG_ENABLE) == TRUE
130  PeCoffExtraActionLib|SourceLevelDebugPkg/Library/PeCoffExtraActionLibDebug/PeCoffExtraActionLibDebug.inf
131  DebugCommunicationLib|SourceLevelDebugPkg/Library/DebugCommunicationLibSerialPort/DebugCommunicationLibSerialPort.inf
132!else
133  PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
134  DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf
135!endif
136  CbParseLib|CorebootModulePkg/Library/CbParseLib/CbParseLib.inf
137  DebugLib|IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
138  LockBoxLib|MdeModulePkg/Library/LockBoxNullLib/LockBoxNullLib.inf
139
140[LibraryClasses.IA32.SEC]
141  DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
142  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
143  HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
144  MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
145  DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf
146  ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf
147
148[LibraryClasses.IA32.PEI_CORE, LibraryClasses.IA32.PEIM]
149  PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
150  HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
151  MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
152  ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
153  ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf
154!if $(SOURCE_DEBUG_ENABLE)
155  DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgentLib.inf
156!endif
157
158[LibraryClasses.common.DXE_CORE]
159  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
160  HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf
161  MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf
162  ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
163  ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
164!if $(SOURCE_DEBUG_ENABLE)
165  DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgentLib.inf
166!endif
167  CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf
168
169[LibraryClasses.common.DXE_DRIVER]
170  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
171  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
172  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
173  ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
174  ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
175  CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf
176
177[LibraryClasses.common.DXE_RUNTIME_DRIVER]
178  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
179  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
180  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
181  ReportStatusCodeLib|MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/RuntimeDxeReportStatusCodeLib.inf
182
183[LibraryClasses.common.UEFI_DRIVER,LibraryClasses.common.UEFI_APPLICATION]
184  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
185  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
186  ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
187  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
188
189################################################################################
190#
191# Pcd Section - list of all EDK II PCD Entries defined by this Platform.
192#
193################################################################################
194[PcdsFeatureFlag]
195  gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|TRUE
196  gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory|FALSE
197  gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode|TRUE
198  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
199  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE
200
201[PcdsFixedAtBuild]
202  gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x7
203  gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
204!if $(SOURCE_DEBUG_ENABLE)
205  gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17
206!else
207  gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2F
208!endif
209  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x10000
210  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxHardwareErrorVariableSize|0x8000
211  gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize|0x10000
212
213  gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress|0x0
214  gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable|TRUE
215
216!if $(SOURCE_DEBUG_ENABLE)
217  gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdDebugLoadImageMethod|0x2
218!endif
219
220[PcdsPatchableInModule.common]
221  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseMmio|FALSE
222  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x03F8
223
224################################################################################
225#
226# Pcd Dynamic Section - list of all EDK II PCD Entries defined by this Platform
227#
228################################################################################
229
230[PcdsDynamicDefault]
231  gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0
232  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0
233  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0
234  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0
235
236
237################################################################################
238#
239# Components Section - list of all EDK II Modules needed by this Platform.
240#
241################################################################################
242[Components.IA32]
243  #
244  # SEC Core
245  #
246  CorebootModulePkg/SecCore/SecCore.inf
247
248  #
249  # PEI Core
250  #
251  MdeModulePkg/Core/Pei/PeiMain.inf
252
253  #
254  # PEIM
255  #
256  MdeModulePkg/Universal/PCD/Pei/Pcd.inf {
257    <LibraryClasses>
258      PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
259  }
260  IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf
261
262  CorebootModulePkg/CbSupportPei/CbSupportPei.inf
263  MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
264
265[Components.X64]
266  #
267  # DXE Core
268  #
269  MdeModulePkg/Core/Dxe/DxeMain.inf {
270    <LibraryClasses>
271      NULL|IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
272  }
273
274  #
275  # Components that produce the architectural protocols
276  #
277  MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
278  UefiCpuPkg/CpuDxe/CpuDxe.inf
279  IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf
280  PcAtChipsetPkg/8254TimerDxe/8254Timer.inf
281  MdeModulePkg/Universal/Metronome/Metronome.inf
282  MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
283  MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
284  MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
285  MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
286  MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf
287  PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf
288  MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf
289
290  #
291  # Following are the DXE drivers
292  #
293  MdeModulePkg/Universal/PCD/Dxe/Pcd.inf {
294    <LibraryClasses>
295      PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
296  }
297
298  IntelFrameworkModulePkg/Universal/StatusCode/RuntimeDxe/StatusCodeRuntimeDxe.inf
299  UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf
300  MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
301  MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf
302  PcAtChipsetPkg/8259InterruptControllerDxe/8259.inf
303  MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
304  MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
305  MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
306
307  CorebootModulePkg/CbSupportDxe/CbSupportDxe.inf
308
309  #
310  # SMBIOS Support
311  #
312  MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
313
314  #
315  # ACPI Support
316  #
317  MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
318
319  #
320  # PCI Support
321  #
322  DuetPkg/PciRootBridgeNoEnumerationDxe/PciRootBridgeNoEnumeration.inf
323  DuetPkg/PciBusNoEnumerationDxe/PciBusNoEnumeration.inf
324
325  #
326  # SCSI/ATA/IDE/DISK Support
327  #
328  MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
329  MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
330  MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
331  DuetPkg/SataControllerDxe/SataControllerDxe.inf
332  MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf
333  MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf
334  MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
335  MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
336
337  #
338  # Usb Support
339  #
340  MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf
341  MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf
342  MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf
343  MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
344  MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf
345  MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
346
347  #
348  # ISA Support
349  #
350  MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
351
352  #
353  # Console Support
354  #
355  MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
356  MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
357  MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
358  MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
359
360
361  #
362  # Framebuffer Gop
363  #
364  CorebootPayloadPkg/FbGop/FbGop.inf
365
366
367