Home | History | Annotate | Download | only in HiKey960
      1 #
      2 #  Copyright (c) 2016-2017, Linaro Limited. All rights reserved.
      3 #
      4 #  This program and the accompanying materials
      5 #  are licensed and made available under the terms and conditions of the BSD License
      6 #  which accompanies this distribution.  The full text of the license may be found at
      7 #  http://opensource.org/licenses/bsd-license.php
      8 #
      9 #  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     10 #  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     11 #
     12 
     13 ################################################################################
     14 #
     15 # Defines Section - statements that will be processed to create a Makefile.
     16 #
     17 ################################################################################
     18 [Defines]
     19   PLATFORM_NAME                  = HiKey960
     20   PLATFORM_GUID                  = ce90122d-5e18-4016-9030-5376535c81b6
     21   PLATFORM_VERSION               = 0.1
     22   DSC_SPECIFICATION              = 0x00010005
     23   OUTPUT_DIRECTORY               = Build/HiKey960
     24   SUPPORTED_ARCHITECTURES        = AARCH64
     25   BUILD_TARGETS                  = DEBUG|RELEASE
     26   SKUID_IDENTIFIER               = DEFAULT
     27   FLASH_DEFINITION               = OpenPlatformPkg/Platforms/Hisilicon/HiKey960/HiKey960.fdf
     28 
     29 [LibraryClasses.common]
     30 !if $(TARGET) == RELEASE
     31   DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
     32 !else
     33   DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
     34 !endif
     35   DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
     36 
     37   NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
     38 
     39   ArmDisassemblerLib|ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf
     40   ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf
     41   ArmGicArchLib|ArmPkg/Library/ArmGicArchLib/ArmGicArchLib.inf
     42   ArmHvcLib|ArmPkg/Library/ArmHvcLib/ArmHvcLib.inf
     43   ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf
     44 
     45   ArmPlatformLib|OpenPlatformPkg/Platforms/Hisilicon/HiKey960/Library/HiKey960Lib/HiKey960Lib.inf
     46   ArmPlatformStackLib|ArmPlatformPkg/Library/ArmPlatformStackLib/ArmPlatformStackLib.inf
     47   ArmPlatformSysConfigLib|ArmPlatformPkg/Library/ArmPlatformSysConfigLibNull/ArmPlatformSysConfigLibNull.inf
     48 
     49   BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
     50   CacheMaintenanceLib|ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf
     51   CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf
     52   CpuExceptionHandlerLib|ArmPkg/Library/ArmExceptionLib/ArmExceptionLib.inf
     53   DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLib.inf
     54 
     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   CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
     63   GenericBdsLib|IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf
     64   PlatformBdsLib|OpenPlatformPkg/Chips/Hisilicon/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf
     65   FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf
     66   HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
     67   IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
     68   HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
     69   UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
     70   TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
     71   UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
     72   UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
     73   UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
     74   UsbSerialNumberLib|OpenPlatformPkg/Library/UsbSerialNumberLib/UsbSerialNumberLib.inf
     75 
     76   PL011UartLib|ArmPlatformPkg/Drivers/PL011Uart/PL011Uart.inf
     77   SerialPortLib|ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf
     78   RealTimeClockLib|ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClockLib.inf
     79 
     80   NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf
     81 
     82   #
     83   # Allow dynamic PCDs
     84   #
     85   PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
     86 
     87   PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
     88   PeCoffExtraActionLib|ArmPkg/Library/DebugPeCoffExtraActionLib/DebugPeCoffExtraActionLib.inf
     89   PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
     90   PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
     91   PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
     92   UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
     93   UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
     94   UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
     95   UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
     96 
     97   # BDS Libraries
     98   UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf
     99   PlatformBootManagerLib|OpenPlatformPkg/Platforms/Hisilicon/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
    100   CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
    101 
    102   # UiApp dependencies
    103   ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
    104   FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf
    105   DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
    106 
    107   ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
    108   FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
    109   SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
    110 
    111   # USB Requirements
    112   UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf
    113   DmaLib|ArmPkg/Library/ArmDmaLib/ArmDmaLib.inf
    114 
    115   UncachedMemoryAllocationLib|ArmPkg/Library/UncachedMemoryAllocationLib/UncachedMemoryAllocationLib.inf
    116 
    117   # Network Libraries
    118   UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
    119   NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf
    120   DpcLib|MdeModulePkg/Library/DxeDpcLib/DxeDpcLib.inf
    121   IpIoLib|MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf
    122   UdpIoLib|MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf
    123 
    124 [LibraryClasses.AARCH64]
    125   ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
    126   ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexAEMv8Lib/ArmCortexAEMv8Lib.inf
    127   ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
    128   ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerPhyCounterLib/ArmGenericTimerPhyCounterLib.inf
    129   BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
    130 
    131 [LibraryClasses.common.SEC]
    132   PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
    133   PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
    134   ExtractGuidedSectionLib|EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf
    135   MemoryAllocationLib|EmbeddedPkg/Library/PrePiMemoryAllocationLib/PrePiMemoryAllocationLib.inf
    136   HobLib|EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf
    137   PrePiHobListPointerLib|ArmPlatformPkg/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf
    138   PerformanceLib|MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf
    139   PlatformPeiLib|ArmPlatformPkg/PlatformPei/PlatformPeiLib.inf
    140   MemoryInitPeiLib|ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.inf
    141   ArmGicArchLib|ArmPkg/Library/ArmGicArchSecLib/ArmGicArchSecLib.inf
    142   DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLibBase.inf
    143   LzmaDecompressLib|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
    144 
    145 [LibraryClasses.common.DXE_CORE]
    146   DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf
    147   DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
    148   ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
    149   HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf
    150   MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf
    151   ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
    152 
    153 [LibraryClasses.common.UEFI_DRIVER]
    154   ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
    155 
    156 [LibraryClasses.common.DXE_DRIVER]
    157   DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
    158   MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
    159   NonDiscoverableDeviceRegistrationLib|MdeModulePkg/Library/NonDiscoverableDeviceRegistrationLib/NonDiscoverableDeviceRegistrationLib.inf
    160   ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
    161   SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
    162   DtPlatformDtbLoaderLib|EmbeddedPkg/Library/DxeDtPlatformDtbLoaderLibDefault/DxeDtPlatformDtbLoaderLibDefault.inf
    163 
    164 [LibraryClasses.common.DXE_RUNTIME_DRIVER]
    165   HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
    166   MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
    167   ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
    168 
    169 [BuildOptions]
    170   GCC:*_*_*_PLATFORM_FLAGS == -I$(WORKSPACE)/MdeModulePkg/Include -I$(WORKSPACE)/OpenPlatformPkg/Include -I$(WORKSPACE)/OpenPlatformPkg/Platforms/Hisilicon/HiKey960/Include -I$(WORKSPACE)/EmbeddedPkg/Include
    171 
    172 [BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
    173   GCC:*_*_ARM_DLINK_FLAGS = -z common-page-size=0x1000
    174   GCC:*_*_AARCH64_DLINK_FLAGS = -z common-page-size=0x10000
    175 
    176 ################################################################################
    177 #
    178 # Pcd Section - list of all EDK II PCD Entries defined by this Platform
    179 #
    180 ################################################################################
    181 
    182 [PcdsFeatureFlag.common]
    183   gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable|TRUE
    184   gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnosticsDisable|TRUE
    185   gEfiMdePkgTokenSpaceGuid.PcdComponentName2Disable|TRUE
    186   gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnostics2Disable|TRUE
    187 
    188   #
    189   # Control what commands are supported from the UI
    190   # Turn these on and off to add features or save size
    191   #
    192   gEmbeddedTokenSpaceGuid.PcdEmbeddedMacBoot|TRUE
    193   gEmbeddedTokenSpaceGuid.PcdEmbeddedDirCmd|TRUE
    194   gEmbeddedTokenSpaceGuid.PcdEmbeddedHobCmd|TRUE
    195   gEmbeddedTokenSpaceGuid.PcdEmbeddedHwDebugCmd|TRUE
    196   gEmbeddedTokenSpaceGuid.PcdEmbeddedPciDebugCmd|TRUE
    197   gEmbeddedTokenSpaceGuid.PcdEmbeddedIoEnable|FALSE
    198   gEmbeddedTokenSpaceGuid.PcdEmbeddedScriptCmd|FALSE
    199 
    200   gEmbeddedTokenSpaceGuid.PcdCacheEnable|TRUE
    201 
    202   # Use the Vector Table location in CpuDxe. We will not copy the Vector Table at PcdCpuVectorBaseAddress
    203   gArmTokenSpaceGuid.PcdRelocateVectorTable|FALSE
    204 
    205   gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob|TRUE
    206 
    207   gArmPlatformTokenSpaceGuid.PcdSystemMemoryInitializeInSec|TRUE
    208 
    209   ## If TRUE, Graphics Output Protocol will be installed on virtual handle created by ConsplitterDxe.
    210   #  It could be set FALSE to save size.
    211   gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|FALSE
    212 
    213   gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
    214 
    215 [PcdsFixedAtBuild.common]
    216   gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1000000
    217   gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength|1000000
    218   gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|1000000
    219   gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout|10000000
    220   gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue|0xAF
    221   gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask|1
    222   gEfiMdePkgTokenSpaceGuid.PcdPostCodePropertyMask|0
    223   gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320
    224 
    225   # DEBUG_ASSERT_ENABLED       0x01
    226   # DEBUG_PRINT_ENABLED        0x02
    227   # DEBUG_CODE_ENABLED         0x04
    228   # CLEAR_MEMORY_ENABLED       0x08
    229   # ASSERT_BREAKPOINT_ENABLED  0x10
    230   # ASSERT_DEADLOOP_ENABLED    0x20
    231 !if $(TARGET) == RELEASE
    232   gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x21
    233 !else
    234   gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2f
    235 !endif
    236 
    237   #  DEBUG_INIT      0x00000001  // Initialization
    238   #  DEBUG_WARN      0x00000002  // Warnings
    239   #  DEBUG_LOAD      0x00000004  // Load events
    240   #  DEBUG_FS        0x00000008  // EFI File system
    241   #  DEBUG_POOL      0x00000010  // Alloc & Free's
    242   #  DEBUG_PAGE      0x00000020  // Alloc & Free's
    243   #  DEBUG_INFO      0x00000040  // Verbose
    244   #  DEBUG_DISPATCH  0x00000080  // PEI/DXE Dispatchers
    245   #  DEBUG_VARIABLE  0x00000100  // Variable
    246   #  DEBUG_BM        0x00000400  // Boot Manager
    247   #  DEBUG_BLKIO     0x00001000  // BlkIo Driver
    248   #  DEBUG_NET       0x00004000  // SNI Driver
    249   #  DEBUG_UNDI      0x00010000  // UNDI Driver
    250   #  DEBUG_LOADFILE  0x00020000  // UNDI Driver
    251   #  DEBUG_EVENT     0x00080000  // Event messages
    252   #  DEBUG_GCD       0x00100000  // Global Coherency Database changes
    253   #  DEBUG_CACHE     0x00200000  // Memory range cachability changes
    254   #  DEBUG_ERROR     0x80000000  // Error
    255   gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8008000F
    256 
    257   gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x07
    258 
    259   #
    260   # Optional feature to help prevent EFI memory map fragments
    261   # Turned on and off via: PcdPrePiProduceMemoryTypeInformationHob
    262   # Values are in EFI Pages (4K). DXE Core will make sure that
    263   # at least this much of each type of memory can be allocated
    264   # from a single memory range. This way you only end up with
    265   # maximum of two fragements for each type in the memory map
    266   # (the memory used, and the free memory that was prereserved
    267   # but not used).
    268   #
    269   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory|0
    270   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS|0
    271   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType|0
    272   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|80
    273   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|65
    274   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|400
    275   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesData|20000
    276   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode|20
    277   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData|0
    278 
    279   gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|4
    280 
    281   gEmbeddedTokenSpaceGuid.PcdEmbeddedAutomaticBootCommand|""
    282   gEmbeddedTokenSpaceGuid.PcdEmbeddedDefaultTextColor|0x07
    283   gEmbeddedTokenSpaceGuid.PcdEmbeddedMemVariableStoreSize|0x10000
    284 
    285   gArmPlatformTokenSpaceGuid.PcdFirmwareVendor|"hikey960"
    286   gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString|L"Alpha"
    287   gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt|"HiKey960"
    288 
    289   # TimerPeriod
    290   gEmbeddedTokenSpaceGuid.PcdTimerPeriod|1000
    291 
    292   # System Memory (3GB)
    293   gArmTokenSpaceGuid.PcdSystemMemoryBase|0x00000000
    294   gArmTokenSpaceGuid.PcdSystemMemorySize|0xC0000000
    295 
    296   # HiKey960 Dual-Cluster profile
    297   gArmPlatformTokenSpaceGuid.PcdCoreCount|8
    298   gArmPlatformTokenSpaceGuid.PcdClusterCount|2
    299 
    300   gArmTokenSpaceGuid.PcdVFPEnabled|1
    301 
    302   #
    303   # ARM Pcds
    304   #
    305   gArmTokenSpaceGuid.PcdArmUncachedMemoryMask|0x0000000000000000
    306 
    307   #
    308   # ARM PrimeCell
    309   #
    310 
    311   ## PL011 - Serial Terminal
    312   DEFINE SERIAL_BASE = 0xFFF32000
    313   gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|$(SERIAL_BASE)
    314   gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|115200
    315   gEfiMdePkgTokenSpaceGuid.PcdUartDefaultReceiveFifoDepth|0
    316   gArmPlatformTokenSpaceGuid.PL011UartInteger|10
    317   gArmPlatformTokenSpaceGuid.PL011UartFractional|26
    318 
    319   ## PL011 - Serial Debug UART
    320   gArmPlatformTokenSpaceGuid.PcdSerialDbgRegisterBase|$(SERIAL_BASE)
    321   gArmPlatformTokenSpaceGuid.PcdSerialDbgUartClkInHz|19200000
    322   gArmPlatformTokenSpaceGuid.PcdSerialDbgUartBaudRate|115200
    323 
    324   ## PL031 RealTimeClock
    325   gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0xFFF05000
    326 
    327   #
    328   # ARM General Interrupt Controller
    329   #
    330   gArmTokenSpaceGuid.PcdGicDistributorBase|0xE82B1000
    331   gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0xE82B2000
    332 
    333   # Use the serial console (ConIn & ConOut) and the Graphic driver (ConOut)
    334   gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(115200,8,N,1)/VenPcAnsi();VenHw(CE660500-824D-11E0-AC72-0002A5D5C51B)"
    335   gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(115200,8,N,1)/VenPcAnsi()"
    336 
    337   # GUID of the UEFI Shell
    338   gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile|{ 0x83, 0xA5, 0x04, 0x7C, 0x3E, 0x9E, 0x1C, 0x4F, 0xAD, 0x65, 0xE0, 0x52, 0x68, 0xD0, 0xB4, 0xD1 }
    339 
    340   # GUID of the UI app
    341   gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 }
    342 
    343   gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE
    344 
    345 
    346   gEmbeddedTokenSpaceGuid.PcdMetronomeTickPeriod|1000
    347 
    348   #
    349   # Ufs
    350   #
    351   gDwUfsHcDxeTokenSpaceGuid.PcdDwUfsHcDxeBaseAddress|0xFF3B0000
    352 
    353   #
    354   # DW USB3 controller
    355   #
    356   gDwUsb3DxeTokenSpaceGuid.PcdDwUsb3DxeBaseAddress|0xFF100000
    357 
    358   #
    359   #
    360   # Fastboot
    361   #
    362   gEmbeddedTokenSpaceGuid.PcdAndroidFastbootUsbVendorId|0x18d1
    363   gEmbeddedTokenSpaceGuid.PcdAndroidFastbootUsbProductId|0xd00d
    364   gHiKey960TokenSpaceGuid.PcdAndroidFastbootNvmDevicePath|L"VenHw(0D51905B-B77E-452A-A2C0-ECA0CC8D514A,00003BFF0000000000)/UFS(0x0,0x3)"
    365   # Flash limit 128M/time, for memory concern
    366   gHiKey960TokenSpaceGuid.PcdArmFastbootFlashLimit|"134217728"
    367   gHiKey960TokenSpaceGuid.PcdXloaderDevicePath|L"VenHw(0D51905B-B77E-452A-A2C0-ECA0CC8D514A,00003BFF0000000000)/UFS(0x0,0x0)"
    368 
    369   #
    370   # Android Loader
    371   #
    372   gEmbeddedTokenSpaceGuid.PcdAndroidBootDevicePath|L"VenHw(0D51905B-B77E-452A-A2C0-ECA0CC8D514A,00003BFF0000000000)/UFS(0x0,0x3)/HD(7,GPT,D3340696-9B95-4C64-8DF6-E6D4548FBA41,0x12100,0x4000)"
    373   gEmbeddedTokenSpaceGuid.PcdSdBootDevicePath|L"VenHw(0D51905B-B77E-452A-A2C0-ECA0CC8D514A,00F037FF0000000000)/SD(0x0)"
    374 
    375   gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|1
    376 
    377 ################################################################################
    378 #
    379 # Components Section - list of all EDK II Modules needed by this Platform
    380 #
    381 ################################################################################
    382 [Components.common]
    383   #
    384   # PEI Phase modules
    385   #
    386   ArmPlatformPkg/PrePi/PeiUniCore.inf
    387 
    388   #
    389   # DXE
    390   #
    391   MdeModulePkg/Core/Dxe/DxeMain.inf {
    392     <LibraryClasses>
    393       PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
    394       NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
    395   }
    396 
    397   #
    398   # Architectural Protocols
    399   #
    400   ArmPkg/Drivers/CpuDxe/CpuDxe.inf
    401   MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
    402   MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
    403   MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
    404   EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf
    405   EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
    406   EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
    407   EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
    408 
    409   MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
    410   MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
    411   MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
    412   MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
    413 
    414   MdeModulePkg/Universal/PCD/Dxe/Pcd.inf {
    415     <LibraryClasses>
    416       PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
    417   }
    418   MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
    419   MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf
    420 
    421   MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
    422 
    423   ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
    424   ArmPkg/Drivers/TimerDxe/TimerDxe.inf
    425 
    426   MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
    427 
    428   #
    429   # GPIO
    430   #
    431   OpenPlatformPkg/Platforms/Hisilicon/HiKey960/HiKey960GpioDxe/HiKey960GpioDxe.inf
    432   ArmPlatformPkg/Drivers/PL061GpioDxe/PL061GpioDxe.inf
    433 
    434   #
    435   # Virtual Keyboard
    436   #
    437   OpenPlatformPkg/Drivers/Keyboard/VirtualKeyboardDxe/VirtualKeyboardDxe.inf
    438 
    439   #
    440   # MMC/SD
    441   #
    442   OpenPlatformPkg/Platforms/Hisilicon/HiKey960/HiKey960MmcDxe/HiKey960MmcDxe.inf
    443   MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.inf
    444   OpenPlatformPkg/Drivers/SdMmc/DwMmcHcDxe/DwMmcHcDxe.inf
    445   MdeModulePkg/Bus/Sd/SdDxe/SdDxe.inf
    446 
    447   OpenPlatformPkg/Platforms/Hisilicon/HiKey960/HiKey960Dxe/HiKey960Dxe.inf
    448 
    449   #
    450   # USB Host Support
    451   #
    452   MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
    453 
    454   #
    455   # USB Mass Storage Support
    456   #
    457   MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
    458 
    459   #
    460   # UEFI Network Stack
    461   #
    462   MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
    463   MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
    464   MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
    465   MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
    466   MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
    467   MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
    468   MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
    469   MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
    470   MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf
    471 
    472   #
    473   # AX88772 Ethernet Driver
    474   #
    475   OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/Ax88772b.inf
    476 
    477   #
    478   # Ufs
    479   #
    480   OpenPlatformPkg/Drivers/Block/DwUfsHcDxe/DwUfsHcDxe.inf
    481   MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruDxe.inf
    482   MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
    483   MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
    484 
    485   #
    486   # FAT filesystem + GPT/MBR partitioning
    487   #
    488   MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
    489   MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
    490   MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
    491   FatPkg/EnhancedFatDxe/Fat.inf
    492 
    493   # DTB
    494   EmbeddedPkg/Drivers/DtPlatformDxe/DtPlatformDxe.inf
    495 
    496   #
    497   # USB Peripheral Support
    498   #
    499   OpenPlatformPkg/Platforms/Hisilicon/HiKey960/HiKey960UsbDxe/HiKey960UsbDxe.inf
    500   OpenPlatformPkg/Drivers/Usb/DwUsb3Dxe/DwUsb3Dxe.inf
    501   OpenPlatformPkg/Platforms/Hisilicon/HiKey960/HiKey960FastbootDxe/HiKey960FastbootDxe.inf
    502   EmbeddedPkg/Drivers/AndroidFastbootTransportUsbDxe/FastbootTransportUsbDxe.inf
    503 
    504   #
    505   # Fastboot
    506   #
    507   EmbeddedPkg/Application/AndroidFastboot/AndroidFastbootApp.inf {
    508     <LibraryClasses>
    509       AbootimgLib|EmbeddedPkg/Library/AbootimgLib/AbootimgLib.inf
    510       BdsLib|ArmPkg/Library/BdsLib/BdsLib.inf
    511       ZLib|EmbeddedPkg/Library/ZLib/ZLib.inf
    512   }
    513 
    514   #
    515   # Android Loader
    516   #
    517   EmbeddedPkg/Application/AndroidBoot/AndroidBootApp.inf {
    518     <LibraryClasses>
    519       AbootimgLib|EmbeddedPkg/Library/AbootimgLib/AbootimgLib.inf
    520       BdsLib|ArmPkg/Library/BdsLib/BdsLib.inf
    521       ZLib|EmbeddedPkg/Library/ZLib/ZLib.inf
    522   }
    523 
    524   #
    525   # Bds
    526   #
    527   MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
    528   MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
    529   MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
    530   MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
    531   MdeModulePkg/Application/UiApp/UiApp.inf {
    532     <LibraryClasses>
    533       NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf
    534       NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf
    535       NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf
    536   }
    537   ShellPkg/Application/Shell/Shell.inf {
    538     <LibraryClasses>
    539       ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf
    540       NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf
    541       NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf
    542       NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf
    543       NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf
    544       NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
    545       NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf
    546       NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
    547       NULL|ShellPkg/Library/UefiShellTftpCommandLib/UefiShellTftpCommandLib.inf
    548       HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
    549       PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
    550       BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf
    551     <PcdsFixedAtBuild>
    552       gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF
    553       gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
    554       gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000
    555   }
    556