5 # Copyright (c) 2007 - 2021, Intel Corporation. All rights reserved.<BR>
6 # Copyright (c) 2012-2015, ARM Ltd. All rights reserved.<BR>
7 # Copyright (c) 2016, Linaro Ltd. All rights reserved.<BR>
9 # SPDX-License-Identifier: BSD-2-Clause-Patent
13 ################################################################################
15 # Defines Section - statements that will be processed to create a Makefile.
17 ################################################################################
19 PLATFORM_NAME = Embedded
20 PLATFORM_GUID = 8DBB580B-CF89-4D57-95C6-DFE96C44686E
21 PLATFORM_VERSION = 0.1
22 DSC_SPECIFICATION = 0x00010005
23 OUTPUT_DIRECTORY = Build/Embedded
24 SUPPORTED_ARCHITECTURES = IA32|X64|ARM|AARCH64
25 BUILD_TARGETS = DEBUG|RELEASE|NOOPT
26 SKUID_IDENTIFIER = DEFAULT
29 ################################################################################
31 # SKU Identification section - list of all SKU IDs supported by this
34 ################################################################################
36 0|DEFAULT # The entry: 0|DEFAULT is reserved and always required.
38 ################################################################################
40 # Library Class section - list of all Library Classes needed by this Platform.
42 ################################################################################
44 !include MdePkg/MdeLibs.dsc.inc
46 [LibraryClasses.common]
47 # DebugLib|MdePkg/Library/UefiDebugLibConOut/UefiDebugLibConOut.inf
48 DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
51 AndroidBootImgLib|EmbeddedPkg/Library/AndroidBootImgLib/AndroidBootImgLib.inf
52 BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
53 BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
54 PciLib|MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf
55 PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
56 PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
57 UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
59 ReportStatusCodeLib|MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
61 PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
62 PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
63 PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
64 CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf
65 PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
67 SerialPortLib|MdePkg/Library/BaseSerialPortLibNull/BaseSerialPortLibNull.inf
68 RealTimeClockLib|EmbeddedPkg/Library/TemplateRealTimeClockLib/TemplateRealTimeClockLib.inf
69 EfiResetSystemLib|EmbeddedPkg/Library/TemplateResetSystemLib/TemplateResetSystemLib.inf
70 GdbSerialLib|EmbeddedPkg/Library/GdbSerialLib/GdbSerialLib.inf
74 # Need to change this for IPF
76 IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
78 MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
79 UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
80 HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
81 UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
82 UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
83 DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
84 UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
85 ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
87 DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
88 UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
89 UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
91 PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
93 AcpiLib|EmbeddedPkg/Library/AcpiLib/AcpiLib.inf
94 FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf
97 ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
98 FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
99 SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
101 # Networking Requirements
102 !include NetworkPkg/NetworkLibs.dsc.inc
103 HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
104 UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
106 DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
107 DtPlatformDtbLoaderLib|EmbeddedPkg/Library/DxeDtPlatformDtbLoaderLibDefault/DxeDtPlatformDtbLoaderLibDefault.inf
109 TimeBaseLib|EmbeddedPkg/Library/TimeBaseLib/TimeBaseLib.inf
111 [LibraryClasses.common.DXE_DRIVER]
112 PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
113 ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
116 [LibraryClasses.common.UEFI_APPLICATION]
117 PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
118 ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
120 [LibraryClasses.common.UEFI_DRIVER]
121 PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
122 ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
124 [LibraryClasses.common.SEC]
125 ExtractGuidedSectionLib|EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf
127 [LibraryClasses.ARM, LibraryClasses.AARCH64]
128 ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf
129 ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf
130 SemihostLib|ArmPkg/Library/SemihostLib/SemihostLib.inf
131 NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
133 # Add support for GCC stack protector
134 NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf
136 ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
138 ################################################################################
140 # Pcd Section - list of all PCD Entries defined by this Platform
142 ################################################################################
144 [PcdsFeatureFlag.common]
145 gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable|FALSE
146 gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnosticsDisable|FALSE
147 gEfiMdePkgTokenSpaceGuid.PcdComponentName2Disable|FALSE
148 gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnostics2Disable|FALSE
150 gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob|FALSE
153 [PcdsFixedAtBuild.common]
154 gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1000000
155 gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength|1000000
156 gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|1000000
157 gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout|10000000
158 gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x0f
159 gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80000000
160 gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x06
161 gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue|0xAF
162 gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask|0
163 gEfiMdePkgTokenSpaceGuid.PcdPostCodePropertyMask|0
164 gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xE0000000
165 gEfiMdePkgTokenSpaceGuid.PcdFSBClock|200000000
166 gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320
167 gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80000000
168 gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xE0000000
169 gEfiMdePkgTokenSpaceGuid.PcdFSBClock|200000000
171 gEmbeddedTokenSpaceGuid.PcdPrePiStackBase|0
172 gEmbeddedTokenSpaceGuid.PcdPrePiStackSize|0
175 # Optinal feature to help prevent EFI memory map fragments
176 # Turned on and off via: PcdPrePiProduceMemoryTypeInformationHob
177 # Values are in EFI Pages (4K). DXE Core will make sure that
178 # at least this much of each type of memory can be allocated
179 # from a single memory range. This way you only end up with
180 # maximum of two fragments for each type in the memory map
181 # (the memory used, and the free memory that was prereserved
184 gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory|0
185 gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS|0
186 gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType|0
187 gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|0
188 gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|0
189 gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|0
190 gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesData|0
191 gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode|0
192 gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData|0
195 # Timer config for this platform
197 gEmbeddedTokenSpaceGuid.PcdTimerBaseAddress|0x3c700000
198 gEmbeddedTokenSpaceGuid.PcdTimerVector|7
199 gEmbeddedTokenSpaceGuid.PcdTimerPeriod|100000
202 RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu=7-A.security
203 *_*_*_CC_FLAGS = -DDISABLE_NEW_DEPRECATED_INTERFACES
205 ################################################################################
207 # Components Section - list of all Modules needed by this Platform
209 ################################################################################
211 EmbeddedPkg/Library/GdbSerialDebugPortLib/GdbSerialDebugPortLib.inf
212 EmbeddedPkg/Library/GdbSerialLib/GdbSerialLib.inf
213 EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf
214 EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
215 EmbeddedPkg/Library/TemplateResetSystemLib/TemplateResetSystemLib.inf
216 EmbeddedPkg/Library/TemplateRealTimeClockLib/TemplateRealTimeClockLib.inf
217 EmbeddedPkg/Library/CoherentDmaLib/CoherentDmaLib.inf
218 EmbeddedPkg/Library/NonCoherentDmaLib/NonCoherentDmaLib.inf
219 EmbeddedPkg/Library/DxeDtPlatformDtbLoaderLibDefault/DxeDtPlatformDtbLoaderLibDefault.inf
220 EmbeddedPkg/Library/VirtualRealTimeClockLib/VirtualRealTimeClockLib.inf
222 EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf
223 EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
224 EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
225 EmbeddedPkg/SimpleTextInOutSerial/SimpleTextInOutSerial.inf
226 EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf {
228 TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
231 EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
233 EmbeddedPkg/Library/AcpiLib/AcpiLib.inf
234 EmbeddedPkg/Library/DebugAgentTimerLibNull/DebugAgentTimerLibNull.inf
235 EmbeddedPkg/Library/FdtLib/FdtLib.inf
236 EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf
237 EmbeddedPkg/Library/PrePiMemoryAllocationLib/PrePiMemoryAllocationLib.inf
239 EmbeddedPkg/Drivers/ConsolePrefDxe/ConsolePrefDxe.inf
240 EmbeddedPkg/Drivers/DtPlatformDxe/DtPlatformDxe.inf
242 EmbeddedPkg/Drivers/NonCoherentIoMmuDxe/NonCoherentIoMmuDxe.inf {
244 DmaLib|EmbeddedPkg/Library/NonCoherentDmaLib/NonCoherentDmaLib.inf
247 [Components.ARM, Components.AARCH64]
248 EmbeddedPkg/Application/AndroidBoot/AndroidBootApp.inf
249 EmbeddedPkg/Application/AndroidFastboot/AndroidFastbootApp.inf
250 EmbeddedPkg/Drivers/AndroidFastbootTransportUsbDxe/FastbootTransportUsbDxe.inf
251 EmbeddedPkg/Drivers/AndroidFastbootTransportTcpDxe/FastbootTransportTcpDxe.inf
253 [Components.IA32, Components.X64, Components.ARM]
254 EmbeddedPkg/GdbStub/GdbStub.inf