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 
    163 [LibraryClasses.common.DXE_RUNTIME_DRIVER]
    164   HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
    165   MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
    166   ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
    167 
    168 [BuildOptions]
    169   GCC:*_*_*_PLATFORM_FLAGS == -I$(WORKSPACE)/MdeModulePkg/Include -I$(WORKSPACE)/OpenPlatformPkg/Include -I$(WORKSPACE)/OpenPlatformPkg/Platforms/Hisilicon/HiKey960/Include -I$(WORKSPACE)/EmbeddedPkg/Include
    170 
    171 [BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
    172   GCC:*_*_ARM_DLINK_FLAGS = -z common-page-size=0x1000
    173   GCC:*_*_AARCH64_DLINK_FLAGS = -z common-page-size=0x10000
    174 
    175 ################################################################################
    176 #
    177 # Pcd Section - list of all EDK II PCD Entries defined by this Platform
    178 #
    179 ################################################################################
    180 
    181 [PcdsFeatureFlag.common]
    182   gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable|TRUE
    183   gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnosticsDisable|TRUE
    184   gEfiMdePkgTokenSpaceGuid.PcdComponentName2Disable|TRUE
    185   gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnostics2Disable|TRUE
    186 
    187   #
    188   # Control what commands are supported from the UI
    189   # Turn these on and off to add features or save size
    190   #
    191   gEmbeddedTokenSpaceGuid.PcdEmbeddedMacBoot|TRUE
    192   gEmbeddedTokenSpaceGuid.PcdEmbeddedDirCmd|TRUE
    193   gEmbeddedTokenSpaceGuid.PcdEmbeddedHobCmd|TRUE
    194   gEmbeddedTokenSpaceGuid.PcdEmbeddedHwDebugCmd|TRUE
    195   gEmbeddedTokenSpaceGuid.PcdEmbeddedPciDebugCmd|TRUE
    196   gEmbeddedTokenSpaceGuid.PcdEmbeddedIoEnable|FALSE
    197   gEmbeddedTokenSpaceGuid.PcdEmbeddedScriptCmd|FALSE
    198 
    199   gEmbeddedTokenSpaceGuid.PcdCacheEnable|TRUE
    200 
    201   # Use the Vector Table location in CpuDxe. We will not copy the Vector Table at PcdCpuVectorBaseAddress
    202   gArmTokenSpaceGuid.PcdRelocateVectorTable|FALSE
    203 
    204   gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob|TRUE
    205 
    206   gArmPlatformTokenSpaceGuid.PcdSystemMemoryInitializeInSec|TRUE
    207 
    208   ## If TRUE, Graphics Output Protocol will be installed on virtual handle created by ConsplitterDxe.
    209   #  It could be set FALSE to save size.
    210   gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|FALSE
    211 
    212   gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
    213 
    214 [PcdsFixedAtBuild.common]
    215   gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1000000
    216   gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength|1000000
    217   gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|1000000
    218   gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout|10000000
    219   gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue|0xAF
    220   gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask|1
    221   gEfiMdePkgTokenSpaceGuid.PcdPostCodePropertyMask|0
    222   gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320
    223 
    224   # DEBUG_ASSERT_ENABLED       0x01
    225   # DEBUG_PRINT_ENABLED        0x02
    226   # DEBUG_CODE_ENABLED         0x04
    227   # CLEAR_MEMORY_ENABLED       0x08
    228   # ASSERT_BREAKPOINT_ENABLED  0x10
    229   # ASSERT_DEADLOOP_ENABLED    0x20
    230 !if $(TARGET) == RELEASE
    231   gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x21
    232 !else
    233   gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2f
    234 !endif
    235 
    236   #  DEBUG_INIT      0x00000001  // Initialization
    237   #  DEBUG_WARN      0x00000002  // Warnings
    238   #  DEBUG_LOAD      0x00000004  // Load events
    239   #  DEBUG_FS        0x00000008  // EFI File system
    240   #  DEBUG_POOL      0x00000010  // Alloc & Free's
    241   #  DEBUG_PAGE      0x00000020  // Alloc & Free's
    242   #  DEBUG_INFO      0x00000040  // Verbose
    243   #  DEBUG_DISPATCH  0x00000080  // PEI/DXE Dispatchers
    244   #  DEBUG_VARIABLE  0x00000100  // Variable
    245   #  DEBUG_BM        0x00000400  // Boot Manager
    246   #  DEBUG_BLKIO     0x00001000  // BlkIo Driver
    247   #  DEBUG_NET       0x00004000  // SNI Driver
    248   #  DEBUG_UNDI      0x00010000  // UNDI Driver
    249   #  DEBUG_LOADFILE  0x00020000  // UNDI Driver
    250   #  DEBUG_EVENT     0x00080000  // Event messages
    251   #  DEBUG_GCD       0x00100000  // Global Coherency Database changes
    252   #  DEBUG_CACHE     0x00200000  // Memory range cachability changes
    253   #  DEBUG_ERROR     0x80000000  // Error
    254   gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8008000F
    255 
    256   gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x07
    257 
    258   #
    259   # Optional feature to help prevent EFI memory map fragments
    260   # Turned on and off via: PcdPrePiProduceMemoryTypeInformationHob
    261   # Values are in EFI Pages (4K). DXE Core will make sure that
    262   # at least this much of each type of memory can be allocated
    263   # from a single memory range. This way you only end up with
    264   # maximum of two fragements for each type in the memory map
    265   # (the memory used, and the free memory that was prereserved
    266   # but not used).
    267   #
    268   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory|0
    269   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS|0
    270   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType|0
    271   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|80
    272   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|65
    273   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|400
    274   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesData|20000
    275   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode|20
    276   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData|0
    277 
    278   gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|4
    279 
    280   gEmbeddedTokenSpaceGuid.PcdEmbeddedAutomaticBootCommand|""
    281   gEmbeddedTokenSpaceGuid.PcdEmbeddedDefaultTextColor|0x07
    282   gEmbeddedTokenSpaceGuid.PcdEmbeddedMemVariableStoreSize|0x10000
    283 
    284   gArmPlatformTokenSpaceGuid.PcdFirmwareVendor|"Linaro"
    285   gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString|L"Alpha"
    286   gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt|"HiKey960"
    287 
    288   # TimerPeriod
    289   gEmbeddedTokenSpaceGuid.PcdTimerPeriod|1000
    290 
    291   # System Memory (3GB)
    292   gArmTokenSpaceGuid.PcdSystemMemoryBase|0x00000000
    293   gArmTokenSpaceGuid.PcdSystemMemorySize|0xC0000000
    294 
    295   # HiKey960 Dual-Cluster profile
    296   gArmPlatformTokenSpaceGuid.PcdCoreCount|8
    297   gArmPlatformTokenSpaceGuid.PcdClusterCount|2
    298 
    299   gArmTokenSpaceGuid.PcdVFPEnabled|1
    300 
    301   #
    302   # ARM Pcds
    303   #
    304   gArmTokenSpaceGuid.PcdArmUncachedMemoryMask|0x0000000000000000
    305 
    306   #
    307   # ARM PrimeCell
    308   #
    309 
    310   ## PL011 - Serial Terminal
    311   DEFINE SERIAL_BASE = 0xFFF32000
    312   gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|$(SERIAL_BASE)
    313   gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|115200
    314   gArmPlatformTokenSpaceGuid.PL011UartInteger|10
    315   gArmPlatformTokenSpaceGuid.PL011UartFractional|26
    316 
    317   ## PL011 - Serial Debug UART
    318   gArmPlatformTokenSpaceGuid.PcdSerialDbgRegisterBase|$(SERIAL_BASE)
    319   gArmPlatformTokenSpaceGuid.PcdSerialDbgUartClkInHz|19200000
    320   gArmPlatformTokenSpaceGuid.PcdSerialDbgUartBaudRate|115200
    321 
    322   ## PL031 RealTimeClock
    323   gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0xFFF05000
    324 
    325   #
    326   # ARM General Interrupt Controller
    327   #
    328   gArmTokenSpaceGuid.PcdGicDistributorBase|0xE82B1000
    329   gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0xE82B2000
    330 
    331   # Use the serial console (ConIn & ConOut) and the Graphic driver (ConOut)
    332   gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(115200,8,N,1)/VenPcAnsi();VenHw(CE660500-824D-11E0-AC72-0002A5D5C51B)"
    333   gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(115200,8,N,1)/VenPcAnsi()"
    334 
    335   # GUID of the UEFI Shell
    336   gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile|{ 0x83, 0xA5, 0x04, 0x7C, 0x3E, 0x9E, 0x1C, 0x4F, 0xAD, 0x65, 0xE0, 0x52, 0x68, 0xD0, 0xB4, 0xD1 }
    337 
    338   # GUID of the UI app
    339   gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 }
    340 
    341   gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE
    342 
    343 
    344   gEmbeddedTokenSpaceGuid.PcdMetronomeTickPeriod|1000
    345 
    346   #
    347   # Ufs
    348   #
    349   gDwUfsHcDxeTokenSpaceGuid.PcdDwUfsHcDxeBaseAddress|0xFF3B0000
    350 
    351   #
    352   # DW USB3 controller
    353   #
    354   gDwUsb3DxeTokenSpaceGuid.PcdDwUsb3DxeBaseAddress|0xFF100000
    355 
    356   #
    357   #
    358   # Fastboot
    359   #
    360   gEmbeddedTokenSpaceGuid.PcdAndroidFastbootUsbVendorId|0x18d1
    361   gEmbeddedTokenSpaceGuid.PcdAndroidFastbootUsbProductId|0xd00d
    362   gHiKey960TokenSpaceGuid.PcdAndroidFastbootNvmDevicePath|L"VenHw(0D51905B-B77E-452A-A2C0-ECA0CC8D514A,00003BFF0000000000)/UFS(0x0,0x3)"
    363   # Flash limit 128M/time, for memory concern
    364   gHiKey960TokenSpaceGuid.PcdArmFastbootFlashLimit|"134217728"
    365   gHiKey960TokenSpaceGuid.PcdXloaderDevicePath|L"VenHw(0D51905B-B77E-452A-A2C0-ECA0CC8D514A,00003BFF0000000000)/UFS(0x0,0x0)"
    366 
    367   #
    368   # Android Loader
    369   #
    370   gEmbeddedTokenSpaceGuid.PcdAndroidBootDevicePath|L"VenHw(0D51905B-B77E-452A-A2C0-ECA0CC8D514A,00003BFF0000000000)/UFS(0x0,0x3)/HD(7,GPT,D3340696-9B95-4C64-8DF6-E6D4548FBA41,0x12100,0x4000)"
    371   gEmbeddedTokenSpaceGuid.PcdSdBootDevicePath|L"VenHw(0D51905B-B77E-452A-A2C0-ECA0CC8D514A,00F037FF0000000000)/SD(0x0)/HD(1,MBR,0x263000B1,0x3F,0x21FC0)"
    372 
    373   gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|1
    374 
    375 ################################################################################
    376 #
    377 # Components Section - list of all EDK II Modules needed by this Platform
    378 #
    379 ################################################################################
    380 [Components.common]
    381   #
    382   # PEI Phase modules
    383   #
    384   ArmPlatformPkg/PrePi/PeiUniCore.inf
    385 
    386   #
    387   # DXE
    388   #
    389   MdeModulePkg/Core/Dxe/DxeMain.inf {
    390     <LibraryClasses>
    391       PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
    392       NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
    393   }
    394 
    395   #
    396   # Architectural Protocols
    397   #
    398   ArmPkg/Drivers/CpuDxe/CpuDxe.inf
    399   MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
    400   MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
    401   MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
    402   EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf
    403   EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
    404   EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
    405   EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
    406 
    407   MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
    408   MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
    409   MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
    410   MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
    411 
    412   MdeModulePkg/Universal/PCD/Dxe/Pcd.inf {
    413     <LibraryClasses>
    414       PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
    415   }
    416   MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
    417   MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf
    418 
    419   MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
    420 
    421   ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
    422   ArmPkg/Drivers/TimerDxe/TimerDxe.inf
    423 
    424   MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
    425 
    426   #
    427   # GPIO
    428   #
    429   OpenPlatformPkg/Platforms/Hisilicon/HiKey960/HiKey960GpioDxe/HiKey960GpioDxe.inf
    430   ArmPlatformPkg/Drivers/PL061GpioDxe/PL061GpioDxe.inf
    431 
    432   #
    433   # Virtual Keyboard
    434   #
    435   OpenPlatformPkg/Drivers/Keyboard/VirtualKeyboardDxe/VirtualKeyboardDxe.inf
    436 
    437   #
    438   # MMC/SD
    439   #
    440   OpenPlatformPkg/Platforms/Hisilicon/HiKey960/HiKey960MmcDxe/HiKey960MmcDxe.inf
    441   MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.inf
    442   OpenPlatformPkg/Drivers/SdMmc/DwMmcHcDxe/DwMmcHcDxe.inf
    443   MdeModulePkg/Bus/Sd/SdDxe/SdDxe.inf
    444 
    445   OpenPlatformPkg/Platforms/Hisilicon/HiKey960/HiKey960Dxe/HiKey960Dxe.inf
    446 
    447   #
    448   # USB Host Support
    449   #
    450   MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
    451 
    452   #
    453   # USB Mass Storage Support
    454   #
    455   MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
    456 
    457   #
    458   # UEFI Network Stack
    459   #
    460   MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
    461   MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
    462   MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
    463   MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
    464   MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
    465   MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
    466   MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
    467   MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
    468   MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf
    469 
    470   #
    471   # AX88772 Ethernet Driver
    472   #
    473   OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/Ax88772b.inf
    474 
    475   #
    476   # Ufs
    477   #
    478   OpenPlatformPkg/Drivers/Block/DwUfsHcDxe/DwUfsHcDxe.inf
    479   MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruDxe.inf
    480   MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
    481   MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
    482 
    483   #
    484   # FAT filesystem + GPT/MBR partitioning
    485   #
    486   MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
    487   MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
    488   MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
    489 
    490   #
    491   # USB Peripheral Support
    492   #
    493   OpenPlatformPkg/Platforms/Hisilicon/HiKey960/HiKey960UsbDxe/HiKey960UsbDxe.inf
    494   OpenPlatformPkg/Drivers/Usb/DwUsb3Dxe/DwUsb3Dxe.inf
    495   OpenPlatformPkg/Platforms/Hisilicon/HiKey960/HiKey960FastbootDxe/HiKey960FastbootDxe.inf
    496   EmbeddedPkg/Drivers/AndroidFastbootTransportUsbDxe/FastbootTransportUsbDxe.inf
    497 
    498   #
    499   # Fastboot
    500   #
    501   EmbeddedPkg/Application/AndroidFastboot/AndroidFastbootApp.inf {
    502     <LibraryClasses>
    503       AbootimgLib|EmbeddedPkg/Library/AbootimgLib/AbootimgLib.inf
    504       BdsLib|ArmPkg/Library/BdsLib/BdsLib.inf
    505       ZLib|EmbeddedPkg/Library/ZLib/ZLib.inf
    506   }
    507 
    508   #
    509   # Android Loader
    510   #
    511   EmbeddedPkg/Application/AndroidBoot/AndroidBootApp.inf {
    512     <LibraryClasses>
    513       AbootimgLib|EmbeddedPkg/Library/AbootimgLib/AbootimgLib.inf
    514       BdsLib|ArmPkg/Library/BdsLib/BdsLib.inf
    515       ZLib|EmbeddedPkg/Library/ZLib/ZLib.inf
    516   }
    517 
    518   #
    519   # Bds
    520   #
    521   MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
    522   MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
    523   MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
    524   MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
    525   MdeModulePkg/Application/UiApp/UiApp.inf {
    526     <LibraryClasses>
    527       NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf
    528       NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf
    529       NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf
    530   }
    531   ShellPkg/Application/Shell/Shell.inf {
    532     <LibraryClasses>
    533       ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf
    534       NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf
    535       NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf
    536       NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf
    537       NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf
    538       NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
    539       NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf
    540       NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
    541       NULL|ShellPkg/Library/UefiShellTftpCommandLib/UefiShellTftpCommandLib.inf
    542       HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
    543       PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
    544       BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf
    545     <PcdsFixedAtBuild>
    546       gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF
    547       gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
    548       gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000
    549   }
    550