1#/** @file
2# Embedded Package
3#
4#
5# Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.<BR>
6# Copyright (c) 2012-2015, ARM Ltd. All rights reserved.<BR>
7#
8#    This program and the accompanying materials
9#    are licensed and made available under the terms and conditions of the BSD License
10#    which accompanies this distribution. The full text of the license may be found at
11#    http://opensource.org/licenses/bsd-license.php
12#
13#    THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
14#    WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
15#
16#**/
17
18################################################################################
19#
20# Defines Section - statements that will be processed to create a Makefile.
21#
22################################################################################
23[Defines]
24  PLATFORM_NAME                  = Embedded
25  PLATFORM_GUID                  = 8DBB580B-CF89-4D57-95C6-DFE96C44686E
26  PLATFORM_VERSION               = 0.1
27  DSC_SPECIFICATION              = 0x00010005
28  OUTPUT_DIRECTORY               = Build/Embedded
29  SUPPORTED_ARCHITECTURES        = IA32|X64|IPF|ARM|AARCH64
30  BUILD_TARGETS                  = DEBUG|RELEASE
31  SKUID_IDENTIFIER               = DEFAULT
32  FLASH_DEFINITION               = EmbeddedPkg/EmbeddedPkg.fdf
33
34
35################################################################################
36#
37# SKU Identification section - list of all SKU IDs supported by this
38#                              Platform.
39#
40################################################################################
41[SkuIds]
42  0|DEFAULT              # The entry: 0|DEFAULT is reserved and always required.
43
44################################################################################
45#
46# Library Class section - list of all Library Classes needed by this Platform.
47#
48################################################################################
49[LibraryClasses.common]
50#  DebugLib|MdePkg/Library/UefiDebugLibConOut/UefiDebugLibConOut.inf
51  DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
52
53
54  BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
55  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
56  PciLib|MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf
57  PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
58  PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
59  UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
60  EfiFileLib|EmbeddedPkg/Library/EfiFileLib/EfiFileLib.inf
61
62  ReportStatusCodeLib|IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
63
64  PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
65  PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
66  PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
67  CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf
68  PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
69
70  SerialPortLib|MdePkg/Library/BaseSerialPortLibNull/BaseSerialPortLibNull.inf
71  RealTimeClockLib|EmbeddedPkg/Library/TemplateRealTimeClockLib/TemplateRealTimeClockLib.inf
72  EfiResetSystemLib|EmbeddedPkg/Library/TemplateResetSystemLib/TemplateResetSystemLib.inf
73  GdbSerialLib|EmbeddedPkg/Library/GdbSerialLib/GdbSerialLib.inf
74
75
76 #
77 # Need to change this for IPF
78 #
79  IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
80
81  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
82  UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
83  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
84  UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
85  DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
86  UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
87  ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
88
89  DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
90  UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
91  UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
92
93  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
94  EblCmdLib|EmbeddedPkg/Library/EblCmdLibNull/EblCmdLibNull.inf
95
96  EblNetworkLib|EmbeddedPkg/Library/EblNetworkLib/EblNetworkLib.inf
97
98  AcpiLib|EmbeddedPkg/Library/AcpiLib/AcpiLib.inf
99  FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf
100
101  # Shell libraries
102  ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
103  FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
104  SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
105
106  # Networking Requirements
107  NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf
108  HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
109  UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
110
111[LibraryClasses.common.DXE_DRIVER]
112  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
113  ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
114
115
116[LibraryClasses.common.UEFI_APPLICATION]
117  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
118  ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
119
120[LibraryClasses.common.UEFI_DRIVER]
121  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
122  ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
123
124[LibraryClasses.common.SEC]
125  ExtractGuidedSectionLib|EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf
126
127[LibraryClasses.ARM, LibraryClasses.AARCH64]
128  ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf
129  ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf
130  BdsLib|ArmPkg/Library/BdsLib/BdsLib.inf
131  SemihostLib|ArmPkg/Library/SemihostLib/SemihostLib.inf
132  NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
133
134  # Add support for GCC stack protector
135  NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf
136
137[LibraryClasses.ARM]
138  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
139
140[LibraryClasses.AARCH64]
141  ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf
142
143
144################################################################################
145#
146# Pcd Section - list of all PCD Entries defined by this Platform
147#
148################################################################################
149
150[PcdsFeatureFlag.common]
151  gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable|FALSE
152  gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnosticsDisable|FALSE
153  gEfiMdePkgTokenSpaceGuid.PcdComponentName2Disable|FALSE
154  gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnostics2Disable|FALSE
155
156  #
157  # Control what commands are supported from the UI
158  # Turn these on and off to add features or save size
159  #
160  gEmbeddedTokenSpaceGuid.PcdEmbeddedMacBoot|TRUE
161  gEmbeddedTokenSpaceGuid.PcdEmbeddedDirCmd|TRUE
162  gEmbeddedTokenSpaceGuid.PcdEmbeddedHobCmd|TRUE
163  gEmbeddedTokenSpaceGuid.PcdEmbeddedHwDebugCmd|TRUE
164  gEmbeddedTokenSpaceGuid.PcdEmbeddedIoEnable|FALSE
165  gEmbeddedTokenSpaceGuid.PcdEmbeddedScriptCmd|FALSE
166  gEmbeddedTokenSpaceGuid.PcdEmbeddedPciDebugCmd|TRUE
167
168  gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob|FALSE
169
170
171[PcdsFixedAtBuild.common]
172  gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1000000
173  gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength|1000000
174  gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|1000000
175  gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout|10000000
176  gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x0f
177  gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80000000
178  gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x06
179  gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue|0xAF
180  gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask|0
181  gEfiMdePkgTokenSpaceGuid.PcdPostCodePropertyMask|0
182  gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xE0000000
183  gEfiMdePkgTokenSpaceGuid.PcdFSBClock|200000000
184  gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320
185  gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80000000
186  gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xE0000000
187  gEfiMdePkgTokenSpaceGuid.PcdFSBClock|200000000
188  gEmbeddedTokenSpaceGuid.PcdEmbeddedAutomaticBootCommand|L""
189  gEmbeddedTokenSpaceGuid.PcdEmbeddedDefaultTextColor|0x07
190  gEmbeddedTokenSpaceGuid.PcdEmbeddedMemVariableStoreSize|0x10000
191
192  gEmbeddedTokenSpaceGuid.PcdPrePiHobBase|0
193  gEmbeddedTokenSpaceGuid.PcdPrePiStackBase|0
194  gEmbeddedTokenSpaceGuid.PcdPrePiStackSize|0
195
196#
197# Optinal feature to help prevent EFI memory map fragments
198# Turned on and off via: PcdPrePiProduceMemoryTypeInformationHob
199# Values are in EFI Pages (4K). DXE Core will make sure that
200# at least this much of each type of memory can be allocated
201# from a single memory range. This way you only end up with
202# maximum of two fragements for each type in the memory map
203# (the memory used, and the free memory that was prereserved
204# but not used).
205#
206  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory|0
207  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS|0
208  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType|0
209  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|0
210  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|0
211  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|0
212  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesData|0
213  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode|0
214  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData|0
215
216#
217# Timer config for this platform
218#
219  gEmbeddedTokenSpaceGuid.PcdTimerBaseAddress|0x3c700000
220  gEmbeddedTokenSpaceGuid.PcdTimerVector|7
221  gEmbeddedTokenSpaceGuid.PcdTimerPeriod|100000
222
223[PcdsFixedAtBuild.IPF]
224  gEfiMdePkgTokenSpaceGuid.PcdIoBlockBaseAddressForIpf|0x0ffffc000000
225
226#
227# This makes it so you can source level debug with NT32. VC++ debugger limitiation!
228#
229#[BuildOptions]
230#  DEBUG_*_IA32_DLINK_FLAGS = /EXPORT:InitializeDriver=$(IMAGE_ENTRY_POINT) /ALIGN:4096 /SUBSYSTEM:CONSOLE
231#  RELEASE_*_IA32_DLINK_FLAGS = /ALIGN:4096
232#  *_*_IA32_CC_FLAGS = /D EFI_SPECIFICATION_VERSION=0x0002000A /D TIANO_RELEASE_VERSION=0x00080006
233
234[BuildOptions]
235  RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu=7-A.security
236
237
238################################################################################
239#
240# Components Section - list of all Modules needed by this Platform
241#
242################################################################################
243[Components.common]
244  EmbeddedPkg/Library/EblAddExternalCommandLib/EblAddExternalCommandLib.inf
245  EmbeddedPkg/Library/EblCmdLibNull/EblCmdLibNull.inf
246  EmbeddedPkg/Library/EfiFileLib/EfiFileLib.inf
247  EmbeddedPkg/Library/GdbSerialDebugPortLib/GdbSerialDebugPortLib.inf
248  EmbeddedPkg/Library/GdbSerialLib/GdbSerialLib.inf
249  EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf
250  EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
251  EmbeddedPkg/Library/TemplateResetSystemLib/TemplateResetSystemLib.inf
252  EmbeddedPkg/Library/TemplateRealTimeClockLib/TemplateRealTimeClockLib.inf
253  EmbeddedPkg/Library/LzmaHobCustomDecompressLib/LzmaHobCustomDecompressLib.inf
254  EmbeddedPkg/Library/NullDmaLib/NullDmaLib.inf
255
256  EmbeddedPkg/Ebl/Ebl.inf
257####  EmbeddedPkg/EblExternCmd/EblExternCmd.inf
258  EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf
259  EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
260  EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
261  EmbeddedPkg/SimpleTextInOutSerial/SimpleTextInOutSerial.inf
262  EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf {
263    <LibraryClasses>
264      TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
265  }
266
267  EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
268
269  # FDT installation
270  EmbeddedPkg/Drivers/FdtPlatformDxe/FdtPlatformDxe.inf {
271    <LibraryClasses>
272      # It depends on BdsLib that depends on TimerLib
273      TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
274  }
275
276  EmbeddedPkg/Application/AndroidFastboot/AndroidFastbootApp.inf {
277    <LibraryClasses>
278      # It depends on BdsLib that depends on TimerLib
279      TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
280  }
281  EmbeddedPkg/Drivers/AndroidFastbootTransportUsbDxe/FastbootTransportUsbDxe.inf
282  EmbeddedPkg/Drivers/AndroidFastbootTransportTcpDxe/FastbootTransportTcpDxe.inf
283
284  # Drivers
285  EmbeddedPkg/Drivers/Isp1761UsbDxe/Isp1761UsbDxe.inf
286  EmbeddedPkg/Drivers/Lan9118Dxe/Lan9118Dxe.inf
287  EmbeddedPkg/Drivers/SataSiI3132Dxe/SataSiI3132Dxe.inf
288
289[Components.IA32, Components.X64, Components.IPF, Components.ARM]
290  EmbeddedPkg/GdbStub/GdbStub.inf
291