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
28  BUILD_TARGETS                       = DEBUG|RELEASE|NOOPT
29  SKUID_IDENTIFIER                    = DEFAULT
30  OUTPUT_DIRECTORY                    = Build/CorebootPayloadPkgIA32
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
139[LibraryClasses.IA32.SEC]
140  DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
141  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
142  HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
143  MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
144  DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf
145  ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf
146
147[LibraryClasses.IA32.PEI_CORE, LibraryClasses.IA32.PEIM]
148  PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
149  HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
150  MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
151  ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
152  ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf
153!if $(SOURCE_DEBUG_ENABLE)
154  DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgentLib.inf
155!endif
156
157[LibraryClasses.common.DXE_CORE]
158  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
159  HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf
160  MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf
161  ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
162  ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf  
163!if $(SOURCE_DEBUG_ENABLE)
164  DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgentLib.inf
165!endif 
166  CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf
167
168[LibraryClasses.common.DXE_DRIVER]  
169  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
170  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
171  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
172  ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
173  ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
174  CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf
175  
176[LibraryClasses.common.DXE_RUNTIME_DRIVER]
177  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
178  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
179  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
180  ReportStatusCodeLib|MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/RuntimeDxeReportStatusCodeLib.inf
181  
182[LibraryClasses.common.UEFI_DRIVER,LibraryClasses.common.UEFI_APPLICATION]
183  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
184  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
185  ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
186  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf  
187  
188################################################################################
189#
190# Pcd Section - list of all EDK II PCD Entries defined by this Platform.
191#
192################################################################################
193[PcdsFeatureFlag]
194  gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|TRUE
195  gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory|FALSE
196  gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode|FALSE
197  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
198  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE
199
200[PcdsFixedAtBuild]
201  gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x7
202  gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
203!if $(SOURCE_DEBUG_ENABLE)
204  gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17
205!else
206  gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2F
207!endif
208  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x10000
209  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxHardwareErrorVariableSize|0x8000
210  gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize|0x10000
211  
212  gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress|0x0  
213
214!if $(SOURCE_DEBUG_ENABLE)
215  gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdDebugLoadImageMethod|0x2
216!endif
217
218[PcdsPatchableInModule.common]
219  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseMmio|FALSE
220  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x03F8
221
222################################################################################
223#
224# Pcd Dynamic Section - list of all EDK II PCD Entries defined by this Platform
225#
226################################################################################
227
228[PcdsDynamicDefault]
229  gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0
230  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0
231  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0
232  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0
233
234
235################################################################################
236#
237# Components Section - list of all EDK II Modules needed by this Platform.
238#
239################################################################################
240[Components.IA32]
241  #
242  # SEC Core
243  #
244  CorebootModulePkg/SecCore/SecCore.inf
245  
246  #
247  # PEI Core
248  #
249  MdeModulePkg/Core/Pei/PeiMain.inf
250  
251  #
252  # PEIM
253  #
254  MdeModulePkg/Universal/PCD/Pei/Pcd.inf {
255    <LibraryClasses>
256      PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
257  }
258  IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf
259  
260  CorebootModulePkg/CbSupportPei/CbSupportPei.inf 
261  MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
262
263[Components.IA32]
264  #
265  # DXE Core
266  #
267  MdeModulePkg/Core/Dxe/DxeMain.inf {
268    <LibraryClasses>
269      NULL|IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
270  }
271  
272  #
273  # Components that produce the architectural protocols
274  #
275  MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
276  UefiCpuPkg/CpuDxe/CpuDxe.inf
277  IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf
278  PcAtChipsetPkg/8254TimerDxe/8254Timer.inf
279  MdeModulePkg/Universal/Metronome/Metronome.inf
280  MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
281  MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
282  MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
283  MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
284  MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf  
285  PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf 
286  MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf
287  
288  #
289  # Following are the DXE drivers 
290  #
291  MdeModulePkg/Universal/PCD/Dxe/Pcd.inf {
292    <LibraryClasses>
293      PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
294  }
295  
296  IntelFrameworkModulePkg/Universal/StatusCode/RuntimeDxe/StatusCodeRuntimeDxe.inf
297  UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf
298  MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
299  MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf
300  PcAtChipsetPkg/8259InterruptControllerDxe/8259.inf 
301  MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
302  MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf 
303  MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
304  
305  CorebootModulePkg/CbSupportDxe/CbSupportDxe.inf 
306  
307  #
308  # SMBIOS Support
309  #
310  MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
311  
312  #
313  # ACPI Support
314  #
315  MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf  
316  
317  #
318  # PCI Support
319  #
320  DuetPkg/PciRootBridgeNoEnumerationDxe/PciRootBridgeNoEnumeration.inf
321  DuetPkg/PciBusNoEnumerationDxe/PciBusNoEnumeration.inf 
322  
323  #
324  # SCSI/ATA/IDE/DISK Support
325  #
326  MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
327  MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
328  MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
329  DuetPkg/SataControllerDxe/SataControllerDxe.inf  
330  MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf
331  MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf 
332  MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
333  MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
334  
335  #
336  # Usb Support
337  #
338  MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf
339  MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf
340  MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf
341  MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
342  MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf
343  MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
344  
345  #
346  # ISA Support
347  #
348  MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
349  
350  #
351  # Console Support
352  #
353  MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
354  MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
355  MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
356  MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
357  
358  
359  #
360  # Framebuffer Gop 
361  #
362  CorebootPayloadPkg/FbGop/FbGop.inf
363  
364     
365