1#
2#  Copyright (c) 2014-2015, Linaro Limited. All rights reserved.
3#  Copyright (c) 2014-2015, Hisilicon Limited. All rights reserved.
4#
5#  This program and the accompanying materials
6#  are licensed and made available under the terms and conditions of the BSD License
7#  which accompanies this distribution.  The full text of the license may be found at
8#  http://opensource.org/licenses/bsd-license.php
9#
10#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12#
13
14################################################################################
15#
16# Defines Section - statements that will be processed to create a Makefile.
17#
18################################################################################
19[Defines]
20  PLATFORM_NAME                  = HiKey
21  PLATFORM_GUID                  = 8edf1480-da5c-4857-bc02-7530bd8e7b7a
22  PLATFORM_VERSION               = 0.2
23  DSC_SPECIFICATION              = 0x00010005
24  OUTPUT_DIRECTORY               = Build/HiKey
25  SUPPORTED_ARCHITECTURES        = AARCH64
26  BUILD_TARGETS                  = DEBUG|RELEASE
27  SKUID_IDENTIFIER               = DEFAULT
28  FLASH_DEFINITION               = OpenPlatformPkg/Platforms/Hisilicon/HiKey/HiKey.fdf
29
30[LibraryClasses.common]
31!if $(TARGET) == RELEASE
32  DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
33!else
34  DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
35!endif
36  DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
37
38  ArmDisassemblerLib|ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf
39  ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf
40  ArmGicArchLib|ArmPkg/Library/ArmGicArchLib/ArmGicArchLib.inf
41  ArmHvcLib|ArmPkg/Library/ArmHvcLib/ArmHvcLib.inf
42  ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf
43  ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerPhyCounterLib/ArmGenericTimerPhyCounterLib.inf
44
45  ArmPlatformLib|OpenPlatformPkg/Platforms/Hisilicon/HiKey/Library/HiKeyLib/HiKeyLib.inf
46  ArmPlatformStackLib|ArmPlatformPkg/Library/ArmPlatformStackLib/ArmPlatformStackLib.inf
47  ArmPlatformSysConfigLib|ArmPlatformPkg/Library/ArmPlatformSysConfigLibNull/ArmPlatformSysConfigLibNull.inf
48
49  BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
50  BaseMemoryLib|ArmPkg/Library/BaseMemoryLibStm/BaseMemoryLibStm.inf
51  CacheMaintenanceLib|ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf
52  CpuExceptionHandlerLib|MdeModulePkg/Library/CpuExceptionHandlerLibNull/CpuExceptionHandlerLibNull.inf
53  CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf
54  DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLib.inf
55  DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf
56  DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
57  DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
58  EfiResetSystemLib|ArmPkg/Library/ArmPsciResetSystemLib/ArmPsciResetSystemLib.inf
59  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
60  SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf
61
62  BdsLib|ArmPkg/Library/BdsLib/BdsLib.inf
63  FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf
64  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
65  IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
66  HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
67  UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
68  TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
69  UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
70  UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
71  UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
72
73  PL011UartLib|ArmPlatformPkg/Drivers/PL011Uart/PL011Uart.inf
74  SerialPortLib|ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf
75  RealTimeClockLib|ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClockLib.inf
76
77  NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf
78
79  #
80  # Assume everything is fixed at build
81  #
82  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
83
84  PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
85  PeCoffExtraActionLib|ArmPkg/Library/DebugPeCoffExtraActionLib/DebugPeCoffExtraActionLib.inf
86  PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
87  PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
88  PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
89  UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
90  UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
91  UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
92  UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
93
94  # USB Requirements
95  UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf
96  DmaLib|ArmPkg/Library/ArmDmaLib/ArmDmaLib.inf
97
98  UncachedMemoryAllocationLib|ArmPkg/Library/UncachedMemoryAllocationLib/UncachedMemoryAllocationLib.inf
99
100  # Network Libraries
101  UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
102  NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf
103  DpcLib|MdeModulePkg/Library/DxeDpcLib/DxeDpcLib.inf
104  IpIoLib|MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf
105  UdpIoLib|MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf
106
107[LibraryClasses.AARCH64]
108  ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf
109  ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexAEMv8Lib/ArmCortexAEMv8Lib.inf
110
111[LibraryClasses.common.SEC]
112  PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
113  ExtractGuidedSectionLib|EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf
114  LzmaDecompressLib|IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
115  MemoryAllocationLib|EmbeddedPkg/Library/PrePiMemoryAllocationLib/PrePiMemoryAllocationLib.inf
116  HobLib|EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf
117  PrePiHobListPointerLib|ArmPlatformPkg/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf
118  PerformanceLib|MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf
119  PlatformPeiLib|ArmPlatformPkg/PlatformPei/PlatformPeiLib.inf
120  MemoryInitPeiLib|ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.inf
121  ArmGicArchLib|ArmPkg/Library/ArmGicArchSecLib/ArmGicArchSecLib.inf
122
123[LibraryClasses.common.DXE_CORE]
124  DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf
125  DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
126  ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
127  HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf
128  MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf
129  ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
130
131[LibraryClasses.common.UEFI_DRIVER]
132  ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
133
134[LibraryClasses.common.DXE_DRIVER]
135  DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
136  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
137  ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
138  SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
139
140[LibraryClasses.common.DXE_RUNTIME_DRIVER]
141  CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
142  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
143  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
144  ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
145
146[BuildOptions]
147  GCC:*_*_*_PLATFORM_FLAGS == -I$(WORKSPACE)/MdeModulePkg/Include -I$(WORKSPACE)/OpenPlatformPkg/Include -I$(WORKSPACE)/OpenPlatformPkg/Chips/Hisilicon/Hi6220/Include -I$(WORKSPACE)/OpenPlatformPkg/Platforms/Hisilicon/HiKey/Include
148
149[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
150  GCC:*_*_ARM_DLINK_FLAGS = -z common-page-size=0x1000
151  GCC:*_*_AARCH64_DLINK_FLAGS = -z common-page-size=0x10000
152
153################################################################################
154#
155# Pcd Section - list of all EDK II PCD Entries defined by this Platform
156#
157################################################################################
158
159[PcdsFeatureFlag.common]
160  gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable|TRUE
161  gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnosticsDisable|TRUE
162  gEfiMdePkgTokenSpaceGuid.PcdComponentName2Disable|TRUE
163  gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnostics2Disable|TRUE
164
165  #
166  # Control what commands are supported from the UI
167  # Turn these on and off to add features or save size
168  #
169  gEmbeddedTokenSpaceGuid.PcdEmbeddedMacBoot|TRUE
170  gEmbeddedTokenSpaceGuid.PcdEmbeddedDirCmd|TRUE
171  gEmbeddedTokenSpaceGuid.PcdEmbeddedHobCmd|TRUE
172  gEmbeddedTokenSpaceGuid.PcdEmbeddedHwDebugCmd|TRUE
173  gEmbeddedTokenSpaceGuid.PcdEmbeddedPciDebugCmd|TRUE
174  gEmbeddedTokenSpaceGuid.PcdEmbeddedIoEnable|FALSE
175  gEmbeddedTokenSpaceGuid.PcdEmbeddedScriptCmd|FALSE
176
177  gEmbeddedTokenSpaceGuid.PcdCacheEnable|TRUE
178
179  # Use the Vector Table location in CpuDxe. We will not copy the Vector Table at PcdCpuVectorBaseAddress
180  gArmTokenSpaceGuid.PcdRelocateVectorTable|FALSE
181
182  gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob|TRUE
183
184  gArmPlatformTokenSpaceGuid.PcdSystemMemoryInitializeInSec|TRUE
185
186  ## If TRUE, Graphics Output Protocol will be installed on virtual handle created by ConsplitterDxe.
187  #  It could be set FALSE to save size.
188  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|FALSE
189
190  gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
191
192[PcdsFixedAtBuild.common]
193  gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1000000
194  gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength|1000000
195  gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|1000000
196  gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout|10000000
197  gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue|0xAF
198  gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask|1
199  gEfiMdePkgTokenSpaceGuid.PcdPostCodePropertyMask|0
200  gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320
201
202  # DEBUG_ASSERT_ENABLED       0x01
203  # DEBUG_PRINT_ENABLED        0x02
204  # DEBUG_CODE_ENABLED         0x04
205  # CLEAR_MEMORY_ENABLED       0x08
206  # ASSERT_BREAKPOINT_ENABLED  0x10
207  # ASSERT_DEADLOOP_ENABLED    0x20
208!if $(TARGET) == RELEASE
209  gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x21
210!else
211  gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2f
212!endif
213
214  #  DEBUG_INIT      0x00000001  // Initialization
215  #  DEBUG_WARN      0x00000002  // Warnings
216  #  DEBUG_LOAD      0x00000004  // Load events
217  #  DEBUG_FS        0x00000008  // EFI File system
218  #  DEBUG_POOL      0x00000010  // Alloc & Free's
219  #  DEBUG_PAGE      0x00000020  // Alloc & Free's
220  #  DEBUG_INFO      0x00000040  // Verbose
221  #  DEBUG_DISPATCH  0x00000080  // PEI/DXE Dispatchers
222  #  DEBUG_VARIABLE  0x00000100  // Variable
223  #  DEBUG_BM        0x00000400  // Boot Manager
224  #  DEBUG_BLKIO     0x00001000  // BlkIo Driver
225  #  DEBUG_NET       0x00004000  // SNI Driver
226  #  DEBUG_UNDI      0x00010000  // UNDI Driver
227  #  DEBUG_LOADFILE  0x00020000  // UNDI Driver
228  #  DEBUG_EVENT     0x00080000  // Event messages
229  #  DEBUG_GCD       0x00100000  // Global Coherency Database changes
230  #  DEBUG_CACHE     0x00200000  // Memory range cachability changes
231  #  DEBUG_ERROR     0x80000000  // Error
232  gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000000F
233
234  gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x07
235
236  #
237  # Optional feature to help prevent EFI memory map fragments
238  # Turned on and off via: PcdPrePiProduceMemoryTypeInformationHob
239  # Values are in EFI Pages (4K). DXE Core will make sure that
240  # at least this much of each type of memory can be allocated
241  # from a single memory range. This way you only end up with
242  # maximum of two fragements for each type in the memory map
243  # (the memory used, and the free memory that was prereserved
244  # but not used).
245  #
246  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory|0
247  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS|0
248  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType|0
249  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|80
250  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|65
251  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|400
252  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesData|20000
253  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode|20
254  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData|0
255
256  gEmbeddedTokenSpaceGuid.PcdEmbeddedAutomaticBootCommand|""
257  gEmbeddedTokenSpaceGuid.PcdEmbeddedDefaultTextColor|0x07
258  gEmbeddedTokenSpaceGuid.PcdEmbeddedMemVariableStoreSize|0x10000
259
260  gArmPlatformTokenSpaceGuid.PcdFirmwareVendor|"hikey"
261  gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString|L"Alpha"
262  gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt|"HiKey"
263
264  #
265  # NV Storage PCDs.
266  #
267  gBlockVariableDxeTokenSpaceGuid.PcdNvStorageVariableBlockCount|0x00001000
268  gBlockVariableDxeTokenSpaceGuid.PcdNvStorageVariableBlockSize|0x00000200
269  gBlockVariableDxeTokenSpaceGuid.PcdNvStorageVariableBlockLba|0x00006000
270  gBlockVariableDxeTokenSpaceGuid.PcdNvStorageVariableBlockDevicePath|L"VenHw(B549F005-4BD4-4020-A0CB-06F42BDA68C3)/HD(5,GPT,00354BCD-BBCB-4CB3-B5AE-CDEFCB5DAC43)"
271  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0x30000000
272  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize|0x00010000
273  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0x30010000
274  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize|0x00010000
275  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0x30020000
276  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize|0x00010000
277
278  # System Memory (1GB)
279  gArmTokenSpaceGuid.PcdSystemMemoryBase|0x00000000
280  gArmTokenSpaceGuid.PcdSystemMemorySize|0x3E000000
281
282  # HiKey Dual-Cluster profile
283  gArmPlatformTokenSpaceGuid.PcdCoreCount|8
284  gArmPlatformTokenSpaceGuid.PcdClusterCount|2
285
286  gArmTokenSpaceGuid.PcdVFPEnabled|1
287
288  #
289  # ARM Pcds
290  #
291  gArmTokenSpaceGuid.PcdArmUncachedMemoryMask|0x0000000000000000
292
293  #
294  # ARM PrimeCell
295  #
296
297  ## PL011 - Serial Terminal
298  DEFINE SERIAL_BASE = 0xF7113000 # UART3
299  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|$(SERIAL_BASE)
300  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|115200
301  gArmPlatformTokenSpaceGuid.PL011UartInteger|10
302  gArmPlatformTokenSpaceGuid.PL011UartFractional|26
303
304  ## PL031 RealTimeClock
305  gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0xF8003000
306
307  #
308  # ARM General Interrupt Controller
309  #
310  gArmTokenSpaceGuid.PcdGicDistributorBase|0xF6801000
311  gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0xF6802000
312
313  # Use the serial console (ConIn & ConOut) and the Graphic driver (ConOut)
314  gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(115200,8,N,1)/VenPcAnsi();VenHw(CE660500-824D-11E0-AC72-0002A5D5C51B)"
315  gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(115200,8,N,1)/VenPcAnsi()"
316  gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|10
317
318  #
319  # ARM Architectural Timer Frequency
320  #
321  gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|1200000
322  gEmbeddedTokenSpaceGuid.PcdMetronomeTickPeriod|1000
323  gEmbeddedTokenSpaceGuid.PcdTimerPeriod|10000
324  gEmbeddedTokenSpaceGuid.PcdTimerPeriod|10000 # expressed in 100ns units, 10,000 x 100 ns = 1,000,000 ns = 1 ms
325
326  #
327  # DW MMC/SD card controller
328  #
329  gDwEmmcDxeTokenSpaceGuid.PcdDwEmmcDxeBaseAddress|0xF723D000
330  gDwEmmcDxeTokenSpaceGuid.PcdDwEmmcDxeClockFrequencyInHz|100000000
331  gDwSdDxeTokenSpaceGuid.PcdDwSdDxeBaseAddress|0xF723E000
332  gDwSdDxeTokenSpaceGuid.PcdDwSdDxeClockFrequencyInHz|24000000
333
334  #
335  # DW USB controller
336  #
337  gDwUsbDxeTokenSpaceGuid.PcdDwUsbDxeBaseAddress|0xF72C0000
338
339  #
340  # Fastboot
341  #
342  gEmbeddedTokenSpaceGuid.PcdAndroidFastbootUsbVendorId|0x18d1
343  gEmbeddedTokenSpaceGuid.PcdAndroidFastbootUsbProductId|0xd00d
344  gHiKeyTokenSpaceGuid.PcdAndroidFastbootNvmDevicePath|L"VenHw(b549f005-4bd4-4020-a0cb-06f42bda68c3)"
345  # Flash limit 128M/time, for memory concern
346  gHiKeyTokenSpaceGuid.PcdArmFastbootFlashLimit|"134217728"
347
348  #
349  # HiKey Boot Image
350  #
351  gHiKeyTokenSpaceGuid.PcdBootImagePath|L"VenHw(B549F005-4BD4-4020-A0CB-06F42BDA68C3)/HD(6,GPT,5C0F213C-17E1-4149-88C8-8B50FB4EC70E)"
352
353[PcdsDynamicDefault.common]
354  #
355  # The size of a dynamic PCD of the (VOID*) type can not be increased at run
356  # time from its size at build time. Set the "PcdFdtDevicePaths" PCD to a 128
357  # character "empty" string, to allow to be able to set FDT text device paths
358  # up to 128 characters long.
359  #
360  gEmbeddedTokenSpaceGuid.PcdFdtDevicePaths|L"                                                                                                                                "
361
362################################################################################
363#
364# Components Section - list of all EDK II Modules needed by this Platform
365#
366################################################################################
367[Components.common]
368  #
369  # PEI Phase modules
370  #
371  ArmPlatformPkg/PrePi/PeiMPCore.inf
372
373  #
374  # DXE
375  #
376  MdeModulePkg/Core/Dxe/DxeMain.inf {
377    <LibraryClasses>
378      PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
379      NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
380  }
381
382  #
383  # Architectural Protocols
384  #
385  ArmPkg/Drivers/CpuDxe/CpuDxe.inf
386  MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
387  MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
388  MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
389  EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf
390  EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
391  EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
392  EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
393
394  MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
395  MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
396  MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
397  MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
398
399  MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
400  MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {
401    <LibraryClasses>
402      AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf
403      TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf
404      VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf
405      NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf
406  }
407  OpenPlatformPkg/Drivers/Variable/BlockVariableDxe/BlockVariableDxe.inf
408
409  MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
410
411  ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
412  ArmPkg/Drivers/TimerDxe/TimerDxe.inf
413
414  MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
415
416  #
417  # GPIO
418  #
419  ArmPlatformPkg/Drivers/PL061GpioDxe/PL061GpioDxe.inf
420  OpenPlatformPkg/Platforms/Hisilicon/HiKey/HiKeyGpio/HiKeyGpio.inf
421
422  #
423  # MMC/SD
424  #
425  EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
426  OpenPlatformPkg/Drivers/Mmc/DwEmmcDxe/DwEmmcDxe.inf
427  OpenPlatformPkg/Drivers/Mmc/DwSdDxe/DwSdDxe.inf
428
429  #
430  # USB Host Support
431  #
432  OpenPlatformPkg/Drivers/Usb/DwUsbHostDxe/DwUsbHostDxe.inf
433  MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
434
435  #
436  # USB Mass Storage Support
437  #
438  MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
439
440  #
441  # USB Peripheral Support
442  #
443  EmbeddedPkg/Drivers/AndroidFastbootTransportUsbDxe/FastbootTransportUsbDxe.inf
444  OpenPlatformPkg/Drivers/Usb/DwUsbDxe/DwUsbDxe.inf
445
446  #
447  # Fastboot
448  #
449  EmbeddedPkg/Application/AndroidFastboot/AndroidFastbootApp.inf
450  OpenPlatformPkg/Platforms/Hisilicon/HiKey/HiKeyFastbootDxe/HiKeyFastbootDxe.inf
451
452  #
453  # UEFI Network Stack
454  #
455  MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
456  MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
457  MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
458  MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
459  MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
460  MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
461  MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
462  MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
463  MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf
464
465  #
466  # AX88772 Ethernet Driver
467  #
468  OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/Ax88772b.inf
469
470  #
471  # FAT filesystem + GPT/MBR partitioning
472  #
473  MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
474  MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
475  MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
476
477  #
478  # Bds
479  #
480  MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
481  ArmPlatformPkg/Bds/Bds.inf
482
483  #
484  # Legacy Linux Loader
485  #
486  ArmPkg/Application/LinuxLoader/LinuxLoader.inf {
487    <LibraryClasses>
488      FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
489      ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
490      SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
491  }
492
493  #
494  # HiKey Platform
495  #
496  OpenPlatformPkg/Platforms/Hisilicon/HiKey/HiKeyDxe/HiKeyDxe.inf
497