Home | History | Annotate | Download | only in VExpress
      1 #
      2 #  Copyright (c) 2011-2015, ARM 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 [Defines]
     15   USE_ARM_BDS         = FALSE
     16   SECURE_BOOT_ENABLE  = FALSE
     17 
     18 [BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
     19   GCC:*_*_ARM_DLINK_FLAGS = -z common-page-size=0x1000
     20   GCC:*_*_AARCH64_DLINK_FLAGS = -z common-page-size=0x10000
     21 
     22 [LibraryClasses.common]
     23 !if $(TARGET) == RELEASE
     24   DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
     25   UncachedMemoryAllocationLib|ArmPkg/Library/UncachedMemoryAllocationLib/UncachedMemoryAllocationLib.inf
     26 !else
     27   DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
     28   UncachedMemoryAllocationLib|ArmPkg/Library/UncachedMemoryAllocationLib/UncachedMemoryAllocationLib.inf
     29 #  UncachedMemoryAllocationLib|ArmPkg/Library/DebugUncachedMemoryAllocationLib/DebugUncachedMemoryAllocationLib.inf
     30 !endif
     31   DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
     32 
     33   BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
     34   SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf
     35   PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
     36   PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
     37   PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
     38   PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
     39   IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
     40   UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
     41   CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf
     42 
     43   UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
     44   HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
     45   UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
     46   DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
     47   UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
     48   DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
     49   UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
     50   UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
     51   HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
     52   UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
     53 
     54   UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
     55 
     56   #
     57   # Assume everything is fixed at build
     58   #
     59   PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
     60 
     61   # 1/123 faster than Stm or Vstm version
     62   #BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
     63   BaseMemoryLib|ArmPkg/Library/BaseMemoryLibStm/BaseMemoryLibStm.inf
     64 
     65   # Networking Requirements
     66   NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf
     67   DpcLib|MdeModulePkg/Library/DxeDpcLib/DxeDpcLib.inf
     68   UdpIoLib|MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf
     69   IpIoLib|MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf
     70 
     71   # ARM Architectural Libraries
     72   CacheMaintenanceLib|ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf
     73   DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLib.inf
     74   CpuExceptionHandlerLib|MdeModulePkg/Library/CpuExceptionHandlerLibNull/CpuExceptionHandlerLibNull.inf
     75   ArmDisassemblerLib|ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf
     76   DmaLib|ArmPkg/Library/ArmDmaLib/ArmDmaLib.inf
     77   ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf
     78   ArmGicArchLib|ArmPkg/Library/ArmGicArchLib/ArmGicArchLib.inf
     79   ArmPlatformStackLib|ArmPlatformPkg/Library/ArmPlatformStackLib/ArmPlatformStackLib.inf
     80   ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf
     81   ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerPhyCounterLib/ArmGenericTimerPhyCounterLib.inf
     82 
     83   # Versatile Express Specific Libraries
     84   PlatformPeiLib|ArmPlatformPkg/PlatformPei/PlatformPeiLib.inf
     85   ArmPlatformSysConfigLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSysConfigLib/ArmVExpressSysConfigLib.inf
     86   NorFlashPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/NorFlashArmVExpressLib/NorFlashArmVExpressLib.inf
     87   EfiResetSystemLib|ArmPlatformPkg/ArmVExpressPkg/Library/ResetSystemLib/ResetSystemLib.inf
     88   # ARM PL111 Lcd Driver
     89   LcdPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpressLib.inf
     90   # ARM PL031 RTC Driver
     91   RealTimeClockLib|ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClockLib.inf
     92   # ARM PL354 SMC Driver
     93   PL35xSmcLib|ArmPlatformPkg/Drivers/PL35xSmc/PL35xSmc.inf
     94   # ARM PL011 UART Driver
     95   PL011UartLib|ArmPlatformPkg/Drivers/PL011Uart/PL011Uart.inf
     96   SerialPortLib|ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf
     97   # ARM SP804 Dual Timer Driver
     98   TimerLib|ArmPlatformPkg/Library/SP804TimerLib/SP804TimerLib.inf
     99 
    100   # EBL Related Libraries
    101   EblCmdLib|ArmPlatformPkg/Library/EblCmdLib/EblCmdLib.inf
    102   EfiFileLib|EmbeddedPkg/Library/EfiFileLib/EfiFileLib.inf
    103   EblAddExternalCommandLib|EmbeddedPkg/Library/EblAddExternalCommandLib/EblAddExternalCommandLib.inf
    104   EblNetworkLib|EmbeddedPkg/Library/EblNetworkLib/EblNetworkLib.inf
    105 
    106   #
    107   # Uncomment (and comment out the next line) For RealView Debugger. The Standard IO window
    108   # in the debugger will show load and unload commands for symbols. You can cut and paste this
    109   # into the command window to load symbols. We should be able to use a script to do this, but
    110   # the version of RVD I have does not support scripts accessing system memory.
    111   #
    112   #PeCoffExtraActionLib|ArmPkg/Library/RvdPeCoffExtraActionLib/RvdPeCoffExtraActionLib.inf
    113   PeCoffExtraActionLib|ArmPkg/Library/DebugPeCoffExtraActionLib/DebugPeCoffExtraActionLib.inf
    114   #PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
    115 
    116   DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf
    117   DebugAgentTimerLib|EmbeddedPkg/Library/DebugAgentTimerLibNull/DebugAgentTimerLibNull.inf
    118 
    119   SemihostLib|ArmPkg/Library/SemihostLib/SemihostLib.inf
    120 
    121   # BDS Libraries
    122   BdsLib|ArmPkg/Library/BdsLib/BdsLib.inf
    123 
    124   AcpiLib|EmbeddedPkg/Library/AcpiLib/AcpiLib.inf
    125   FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf
    126 
    127   # RunAxf support via Dynamic Shell Command protocol
    128   # It uses the Shell libraries.
    129   ArmShellCmdRunAxfLib|ArmPlatformPkg/Library/ArmShellCmdRunAxf/ArmShellCmdRunAxf.inf
    130   ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
    131   FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
    132   SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
    133 
    134   #
    135   # Secure Boot dependencies
    136   #
    137 !if $(SECURE_BOOT_ENABLE) == TRUE
    138   IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf
    139   OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf
    140   TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.inf
    141   AuthVariableLib|SecurityPkg/Library/AuthVariableLib/AuthVariableLib.inf
    142   BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
    143 
    144   # re-use the UserPhysicalPresent() dummy implementation from the ovmf tree
    145   PlatformSecureLib|OvmfPkg/Library/PlatformSecureLib/PlatformSecureLib.inf
    146 !else
    147   TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf
    148   AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf
    149 !endif
    150   VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf
    151 
    152 !if $(USE_ARM_BDS) == FALSE
    153   CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
    154   GenericBdsLib|IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf
    155   PlatformBdsLib|ArmPlatformPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf
    156   CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
    157 !endif
    158 
    159 [LibraryClasses.common.SEC]
    160   ArmPlatformSecExtraActionLib|ArmPlatformPkg/Library/DebugSecExtraActionLib/DebugSecExtraActionLib.inf
    161 
    162   DebugAgentLib|ArmPkg/Library/DebugAgentSymbolsBaseLib/DebugAgentSymbolsBaseLib.inf
    163   DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLibBase.inf
    164 
    165 !ifdef $(EDK2_SKIP_PEICORE)
    166   PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
    167   ExtractGuidedSectionLib|EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf
    168   LzmaDecompressLib|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
    169   MemoryAllocationLib|EmbeddedPkg/Library/PrePiMemoryAllocationLib/PrePiMemoryAllocationLib.inf
    170   HobLib|EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf
    171   PrePiHobListPointerLib|ArmPlatformPkg/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf
    172   PerformanceLib|MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf
    173 !endif
    174 
    175   # Trustzone Support
    176   ArmTrustedMonitorLib|ArmPlatformPkg/Library/ArmTrustedMonitorLibNull/ArmTrustedMonitorLibNull.inf
    177 
    178   ArmGicArchLib|ArmPkg/Library/ArmGicArchSecLib/ArmGicArchSecLib.inf
    179 
    180 [LibraryClasses.common.PEI_CORE]
    181   HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
    182   PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
    183   MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
    184   PeiCoreEntryPoint|MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf
    185   PerformanceLib|MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf
    186   ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
    187   OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
    188   PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
    189   UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
    190   ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf
    191 
    192   PeiServicesTablePointerLib|ArmPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
    193 
    194 [LibraryClasses.common.PEIM]
    195   HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
    196   PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
    197   MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
    198   PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf
    199   PerformanceLib|MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf
    200   ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
    201   OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
    202   PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
    203   PeiResourcePublicationLib|MdePkg/Library/PeiResourcePublicationLib/PeiResourcePublicationLib.inf
    204   UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
    205   ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf
    206 
    207   PeiServicesTablePointerLib|ArmPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
    208 
    209 [LibraryClasses.common.SEC, LibraryClasses.common.PEIM]
    210   MemoryInitPeiLib|ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.inf
    211 
    212 [LibraryClasses.common.DXE_CORE]
    213   HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf
    214   MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf
    215   DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf
    216   ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
    217   ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
    218   UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
    219   DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
    220   PerformanceLib|MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.inf
    221 
    222 [LibraryClasses.common.DXE_DRIVER]
    223   ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
    224   DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
    225   SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
    226   PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
    227   MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
    228 
    229 [LibraryClasses.common.UEFI_APPLICATION]
    230   UefiDecompressLib|IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf
    231   PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
    232   MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
    233   HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
    234 
    235 [LibraryClasses.common.UEFI_DRIVER]
    236   ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
    237   UefiDecompressLib|IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf
    238   ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
    239   PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
    240   DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
    241   MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
    242 
    243 [LibraryClasses.common.DXE_RUNTIME_DRIVER]
    244   HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
    245   MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
    246   ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
    247   CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
    248   ArmPlatformSysConfigLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSysConfigRuntimeLib/ArmVExpressSysConfigRuntimeLib.inf
    249 !if $(SECURE_BOOT_ENABLE) == TRUE
    250   BaseCryptLib|CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf
    251 !endif
    252 
    253 [LibraryClasses.AARCH64.DXE_RUNTIME_DRIVER]
    254   #
    255   # PSCI support in EL3 may not be available if we are not running under a PSCI
    256   # compliant secure firmware, but since the default VExpress EfiResetSystemLib
    257   # cannot be supported at runtime (due to the fact that the syscfg MMIO registers
    258   # cannot be runtime remapped), it is our best bet to get ResetSystem functionality
    259   # on these platforms.
    260   #
    261   EfiResetSystemLib|ArmPkg/Library/ArmPsciResetSystemLib/ArmPsciResetSystemLib.inf
    262 
    263 [LibraryClasses.ARM, LibraryClasses.AARCH64]
    264   #
    265   # It is not possible to prevent the ARM compiler for generic intrinsic functions.
    266   # This library provides the instrinsic functions generate by a given compiler.
    267   # [LibraryClasses.ARM] and NULL mean link this library into all ARM images.
    268   #
    269   NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
    270 
    271   # Add support for GCC stack protector
    272   NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf
    273 
    274 
    275 [BuildOptions]
    276   RVCT:RELEASE_*_*_CC_FLAGS  = -DMDEPKG_NDEBUG
    277 
    278   GCC:RELEASE_*_*_CC_FLAGS  = -DMDEPKG_NDEBUG
    279 
    280 ################################################################################
    281 #
    282 # Pcd Section - list of all EDK II PCD Entries defined by this Platform
    283 #
    284 ################################################################################
    285 
    286 [PcdsFeatureFlag.common]
    287   gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable|TRUE
    288   gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnosticsDisable|TRUE
    289   gEfiMdePkgTokenSpaceGuid.PcdComponentName2Disable|TRUE
    290   gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnostics2Disable|TRUE
    291 
    292   #
    293   # Control what commands are supported from the UI
    294   # Turn these on and off to add features or save size
    295   #
    296   gEmbeddedTokenSpaceGuid.PcdEmbeddedMacBoot|TRUE
    297   gEmbeddedTokenSpaceGuid.PcdEmbeddedDirCmd|TRUE
    298   gEmbeddedTokenSpaceGuid.PcdEmbeddedHobCmd|TRUE
    299   gEmbeddedTokenSpaceGuid.PcdEmbeddedHwDebugCmd|TRUE
    300   gEmbeddedTokenSpaceGuid.PcdEmbeddedPciDebugCmd|TRUE
    301   gEmbeddedTokenSpaceGuid.PcdEmbeddedIoEnable|FALSE
    302   gEmbeddedTokenSpaceGuid.PcdEmbeddedScriptCmd|FALSE
    303 
    304   gEmbeddedTokenSpaceGuid.PcdCacheEnable|TRUE
    305 
    306   # Use the Vector Table location in CpuDxe. We will not copy the Vector Table at PcdCpuVectorBaseAddress
    307   gArmTokenSpaceGuid.PcdRelocateVectorTable|FALSE
    308 
    309   gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob|TRUE
    310 
    311   gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
    312 
    313 [PcdsFixedAtBuild.common]
    314   gArmPlatformTokenSpaceGuid.PcdFirmwareVendor|"ARM Versatile Express"
    315 !ifdef $(FIRMWARE_VER)
    316   gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString|L"$(FIRMWARE_VER)"
    317 !endif
    318 
    319   gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt|"VExpress"
    320   gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1000000
    321   gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength|1000000
    322   gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|1000000
    323   gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout|10000000
    324   gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue|0xAF
    325   gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask|1
    326   gEfiMdePkgTokenSpaceGuid.PcdPostCodePropertyMask|0
    327   gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320
    328 
    329   # DEBUG_ASSERT_ENABLED       0x01
    330   # DEBUG_PRINT_ENABLED        0x02
    331   # DEBUG_CODE_ENABLED         0x04
    332   # CLEAR_MEMORY_ENABLED       0x08
    333   # ASSERT_BREAKPOINT_ENABLED  0x10
    334   # ASSERT_DEADLOOP_ENABLED    0x20
    335 !if $(TARGET) == RELEASE
    336   gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x21
    337 !else
    338   gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2f
    339 !endif
    340 
    341   #  DEBUG_INIT      0x00000001  // Initialization
    342   #  DEBUG_WARN      0x00000002  // Warnings
    343   #  DEBUG_LOAD      0x00000004  // Load events
    344   #  DEBUG_FS        0x00000008  // EFI File system
    345   #  DEBUG_POOL      0x00000010  // Alloc & Free's
    346   #  DEBUG_PAGE      0x00000020  // Alloc & Free's
    347   #  DEBUG_INFO      0x00000040  // Verbose
    348   #  DEBUG_DISPATCH  0x00000080  // PEI/DXE Dispatchers
    349   #  DEBUG_VARIABLE  0x00000100  // Variable
    350   #  DEBUG_BM        0x00000400  // Boot Manager
    351   #  DEBUG_BLKIO     0x00001000  // BlkIo Driver
    352   #  DEBUG_NET       0x00004000  // SNI Driver
    353   #  DEBUG_UNDI      0x00010000  // UNDI Driver
    354   #  DEBUG_LOADFILE  0x00020000  // UNDI Driver
    355   #  DEBUG_EVENT     0x00080000  // Event messages
    356   #  DEBUG_GCD       0x00100000  // Global Coherency Database changes
    357   #  DEBUG_CACHE     0x00200000  // Memory range cachability changes
    358   #  DEBUG_ERROR     0x80000000  // Error
    359   gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000000F
    360 
    361   gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x07
    362 
    363   gEmbeddedTokenSpaceGuid.PcdEmbeddedAutomaticBootCommand|""
    364   gEmbeddedTokenSpaceGuid.PcdEmbeddedDefaultTextColor|0x07
    365   gEmbeddedTokenSpaceGuid.PcdEmbeddedMemVariableStoreSize|0x10000
    366 
    367   #
    368   # Optional feature to help prevent EFI memory map fragments
    369   # Turned on and off via: PcdPrePiProduceMemoryTypeInformationHob
    370   # Values are in EFI Pages (4K). DXE Core will make sure that
    371   # at least this much of each type of memory can be allocated
    372   # from a single memory range. This way you only end up with
    373   # maximum of two fragements for each type in the memory map
    374   # (the memory used, and the free memory that was prereserved
    375   # but not used).
    376   #
    377   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory|0
    378   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS|0
    379   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType|0
    380   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|80
    381   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|65
    382   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|400
    383   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesData|20000
    384   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode|20
    385   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData|0
    386 
    387   # Device path of block device on which Android Fastboot should flash
    388   # partitions. We just use the SD card on VExpress.
    389   gArmVExpressTokenSpaceGuid.PcdAndroidFastbootNvmDevicePath|L"VenHw(09831032-6FA3-4484-AF4F-0A000A8D3A82)"
    390 
    391   #
    392   # ARM Pcds
    393   #
    394   gArmTokenSpaceGuid.PcdArmUncachedMemoryMask|0x0000000000000000
    395 
    396   #
    397   # ARM PrimeCell
    398   #
    399 
    400   #
    401   # FileSystem
    402   #
    403 
    404   # List of Device Paths that support BootMonFs
    405   gArmPlatformTokenSpaceGuid.PcdBootMonFsSupportedDevicePaths|L"VenHw(E7223039-5836-41E1-B542-D7EC736C5E59);VenHw(1F15DA3C-37FF-4070-B471-BB4AF12A724A)"
    406 
    407   #
    408   # ARM OS Loader
    409   #
    410   gArmPlatformTokenSpaceGuid.PcdDefaultBootDescription|L"Linux from NorFlash"
    411   gArmPlatformTokenSpaceGuid.PcdDefaultBootDevicePath|L"VenHw(E7223039-5836-41E1-B542-D7EC736C5E59)/Image"
    412 
    413   # Use the serial console (ConIn & ConOut) and the Graphic driver (ConOut)
    414   gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi();VenHw(CE660500-824D-11E0-AC72-0002A5D5C51B)"
    415   gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi()"
    416   gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|10
    417 
    418   # RunAxf support via Dynamic Shell Command protocol
    419   # We want to use the Shell Libraries but don't want it to initialise
    420   # automatically. We initialise the libraries when the command is called by the
    421   # Shell.
    422   gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
    423 
    424 !if $(USE_ARM_BDS) == FALSE
    425   gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE
    426   gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile|{ 0x83, 0xA5, 0x04, 0x7C, 0x3E, 0x9E, 0x1C, 0x4F, 0xAD, 0x65, 0xE0, 0x52, 0x68, 0xD0, 0xB4, 0xD1 }
    427 !endif
    428 
    429 !ifdef EDK2_ENABLE_SMSC_91X
    430   # Ethernet (SMSC 91C111)
    431   gLan91xDxeTokenSpaceGuid.PcdLan91xDxeBaseAddress|0x1A000000
    432 !endif
    433 
    434 !if $(SECURE_BOOT_ENABLE) == TRUE
    435   # override the default values from SecurityPkg to ensure images from all sources are verified in secure boot
    436   gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy|0x04
    437   gEfiSecurityPkgTokenSpaceGuid.PcdFixedMediaImageVerificationPolicy|0x04
    438   gEfiSecurityPkgTokenSpaceGuid.PcdRemovableMediaImageVerificationPolicy|0x04
    439 !endif
    440 
    441 [Components.common]
    442   MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
    443 
    444   # Versatile Express FileSystem
    445   ArmPlatformPkg/FileSystem/BootMonFs/BootMonFs.inf
    446 
    447   #
    448   # Networking stack
    449   #
    450   MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
    451   MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
    452   MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
    453   MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
    454   MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
    455   MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
    456   MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
    457   MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
    458   MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
    459   MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf
    460   MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf
    461 !ifdef EDK2_ENABLE_SMSC_91X
    462   # SMSC LAN 91C111
    463   OpenPlatformPkg/Drivers/Net/Lan91xDxe/Lan91xDxe.inf
    464 !endif
    465 
    466   # ISP1761 USB OTG Controller
    467   EmbeddedPkg/Drivers/Isp1761UsbDxe/Isp1761UsbDxe.inf
    468 
    469   #
    470   # Android Fastboot
    471   #
    472   EmbeddedPkg/Application/AndroidFastboot/AndroidFastbootApp.inf
    473   EmbeddedPkg/Drivers/AndroidFastbootTransportUsbDxe/FastbootTransportUsbDxe.inf
    474   ArmPlatformPkg/ArmVExpressPkg/ArmVExpressFastBootDxe/ArmVExpressFastBootDxe.inf
    475 
    476   # FV Filesystem
    477   MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystemDxe.inf
    478 
    479   #
    480   # FDT installation
    481   #
    482   EmbeddedPkg/Drivers/FdtPlatformDxe/FdtPlatformDxe.inf
    483 
    484   # Legacy Linux Loader
    485   ArmPkg/Application/LinuxLoader/LinuxLoader.inf
    486