Home | History | Annotate | Download | only in ArmVirtPkg
      1 #
      2 #  Copyright (c) 2011-2015, ARM Limited. All rights reserved.
      3 #  Copyright (c) 2014, Linaro Limited. All rights reserved.
      4 #  Copyright (c) 2015, Intel Corporation. All rights reserved.
      5 #
      6 #  This program and the accompanying materials
      7 #  are licensed and made available under the terms and conditions of the BSD License
      8 #  which accompanies this distribution.  The full text of the license may be found at
      9 #  http://opensource.org/licenses/bsd-license.php
     10 #
     11 #  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     12 #  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     13 #
     14 #
     15 
     16 [Defines]
     17   DEFINE DEBUG_PRINT_ERROR_LEVEL = 0x8000004F
     18   DEFINE TTY_TERMINAL            = FALSE
     19 
     20 [BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
     21   GCC:*_*_ARM_DLINK_FLAGS = -z common-page-size=0x1000
     22   GCC:*_*_AARCH64_DLINK_FLAGS = -z common-page-size=0x10000
     23   RVCT:*_*_ARM_DLINK_FLAGS = --scatter $(EDK_TOOLS_PATH)/Scripts/Rvct-Align4K.sct
     24 
     25 [LibraryClasses.common]
     26 !if $(TARGET) == RELEASE
     27   DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
     28   UncachedMemoryAllocationLib|ArmPkg/Library/UncachedMemoryAllocationLib/UncachedMemoryAllocationLib.inf
     29 !else
     30   DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
     31   UncachedMemoryAllocationLib|ArmPkg/Library/DebugUncachedMemoryAllocationLib/DebugUncachedMemoryAllocationLib.inf
     32 !endif
     33   DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
     34 
     35   BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
     36   SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf
     37   PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
     38   PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
     39   PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
     40   PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
     41   IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
     42   UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
     43   CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf
     44 
     45   UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
     46   HobLib|ArmVirtPkg/Library/ArmVirtDxeHobLib/ArmVirtDxeHobLib.inf
     47   UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
     48   DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
     49   UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
     50   DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
     51   UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
     52   UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
     53   HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
     54   UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
     55 
     56   UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
     57   OrderedCollectionLib|MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.inf
     58 
     59   #
     60   # Allow dynamic PCDs
     61   #
     62   PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
     63 
     64   # 1/123 faster than Stm or Vstm version
     65   #BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
     66   BaseMemoryLib|ArmPkg/Library/BaseMemoryLibStm/BaseMemoryLibStm.inf
     67 
     68   # Networking Requirements
     69   NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf
     70   DpcLib|MdeModulePkg/Library/DxeDpcLib/DxeDpcLib.inf
     71   UdpIoLib|MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf
     72   IpIoLib|MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf
     73 
     74   #
     75   # It is not possible to prevent the ARM compiler from inserting calls to intrinsic functions.
     76   # This library provides the instrinsic functions such a compiler may generate calls to.
     77   #
     78   NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
     79 
     80   # Add support for GCC stack protector
     81   NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf
     82 
     83   # ARM Architectural Libraries
     84   CacheMaintenanceLib|ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf
     85   DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLib.inf
     86   CpuExceptionHandlerLib|MdeModulePkg/Library/CpuExceptionHandlerLibNull/CpuExceptionHandlerLibNull.inf
     87   ArmDisassemblerLib|ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf
     88   DmaLib|ArmPkg/Library/ArmDmaLib/ArmDmaLib.inf
     89   ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf
     90   ArmGicArchLib|ArmVirtPkg/Library/ArmVirtGicArchLib/ArmVirtGicArchLib.inf
     91   ArmPlatformStackLib|ArmPlatformPkg/Library/ArmPlatformStackLib/ArmPlatformStackLib.inf
     92   ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf
     93   ArmHvcLib|ArmPkg/Library/ArmHvcLib/ArmHvcLib.inf
     94   ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerVirtCounterLib/ArmGenericTimerVirtCounterLib.inf
     95 
     96   PlatformPeiLib|ArmVirtPkg/Library/PlatformPeiLib/PlatformPeiLib.inf
     97   MemoryInitPeiLib|ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.inf
     98   EfiResetSystemLib|ArmVirtPkg/Library/ArmVirtPsciResetSystemLib/ArmVirtPsciResetSystemLib.inf
     99 
    100   # ARM PL031 RTC Driver
    101   RealTimeClockLib|ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClockLib.inf
    102   # ARM PL011 UART Driver
    103   PL011UartLib|ArmPlatformPkg/Drivers/PL011Uart/PL011Uart.inf
    104   SerialPortLib|ArmVirtPkg/Library/FdtPL011SerialPortLib/FdtPL011SerialPortLib.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   # Flattened Device Tree (FDT) access library
    120   FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf
    121 
    122   # PCI Libraries
    123   PciLib|MdePkg/Library/BasePciLibPciExpress/BasePciLibPciExpress.inf
    124   PciExpressLib|ArmVirtPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf
    125 
    126   # USB Libraries
    127   UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf
    128 
    129   XenIoMmioLib|OvmfPkg/Library/XenIoMmioLib/XenIoMmioLib.inf
    130 
    131   #
    132   # Secure Boot dependencies
    133   #
    134 !if $(SECURE_BOOT_ENABLE) == TRUE
    135   IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf
    136   OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf
    137   TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.inf
    138   AuthVariableLib|SecurityPkg/Library/AuthVariableLib/AuthVariableLib.inf
    139   BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
    140 
    141   # re-use the UserPhysicalPresent() dummy implementation from the ovmf tree
    142   PlatformSecureLib|OvmfPkg/Library/PlatformSecureLib/PlatformSecureLib.inf
    143 !else
    144   TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf
    145   AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf
    146 !endif
    147   VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf
    148 
    149 [LibraryClasses.common.SEC]
    150   PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
    151   ArmPlatformSecExtraActionLib|ArmPlatformPkg/Library/DebugSecExtraActionLib/DebugSecExtraActionLib.inf
    152 
    153   DebugAgentLib|ArmPkg/Library/DebugAgentSymbolsBaseLib/DebugAgentSymbolsBaseLib.inf
    154   DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLibBase.inf
    155   SerialPortLib|ArmVirtPkg/Library/FdtPL011SerialPortLib/EarlyFdtPL011SerialPortLib.inf
    156   HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
    157   PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
    158   PeiServicesTablePointerLib|ArmPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
    159   MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
    160 
    161 [LibraryClasses.common.PEI_CORE]
    162   PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
    163   HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
    164   PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
    165   MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
    166   PeiCoreEntryPoint|MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf
    167   PerformanceLib|MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf
    168   ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
    169   OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
    170   PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
    171   UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
    172   ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf
    173 
    174   PeiServicesTablePointerLib|ArmPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
    175   SerialPortLib|ArmVirtPkg/Library/FdtPL011SerialPortLib/EarlyFdtPL011SerialPortLib.inf
    176 
    177 [LibraryClasses.common.PEIM]
    178   PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
    179   HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
    180   PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
    181   MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
    182   PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf
    183   PerformanceLib|MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf
    184   ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
    185   OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
    186   PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
    187   PeiResourcePublicationLib|MdePkg/Library/PeiResourcePublicationLib/PeiResourcePublicationLib.inf
    188   UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
    189   ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf
    190 
    191   PeiServicesTablePointerLib|ArmPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
    192   SerialPortLib|ArmVirtPkg/Library/FdtPL011SerialPortLib/EarlyFdtPL011SerialPortLib.inf
    193 
    194 [LibraryClasses.common.DXE_CORE]
    195   HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf
    196   MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf
    197   DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf
    198   ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
    199   ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
    200   UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
    201   DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
    202   PerformanceLib|MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.inf
    203 
    204 [LibraryClasses.common.DXE_DRIVER]
    205   ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
    206   DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
    207   SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
    208   PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
    209   MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
    210 
    211 [LibraryClasses.common.UEFI_APPLICATION]
    212   UefiDecompressLib|IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf
    213   PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
    214   MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
    215   HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
    216   ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
    217   FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
    218   SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
    219 
    220 [LibraryClasses.common.UEFI_DRIVER]
    221   ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
    222   UefiDecompressLib|IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf
    223   ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
    224   PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
    225   DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
    226   MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
    227 
    228 [LibraryClasses.common.DXE_RUNTIME_DRIVER]
    229   MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
    230   ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
    231   CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
    232 
    233 !if $(SECURE_BOOT_ENABLE) == TRUE
    234   BaseCryptLib|CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf
    235 !endif
    236 
    237 [LibraryClasses.ARM]
    238   ArmSoftFloatLib|ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.inf
    239 
    240 [BuildOptions]
    241   RVCT:RELEASE_*_*_CC_FLAGS  = -DMDEPKG_NDEBUG
    242 
    243   GCC:RELEASE_*_*_CC_FLAGS  = -DMDEPKG_NDEBUG
    244 
    245 ################################################################################
    246 #
    247 # Pcd Section - list of all EDK II PCD Entries defined by this Platform
    248 #
    249 ################################################################################
    250 
    251 [PcdsFeatureFlag.common]
    252   gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable|TRUE
    253   gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnosticsDisable|TRUE
    254   gEfiMdePkgTokenSpaceGuid.PcdComponentName2Disable|TRUE
    255   gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnostics2Disable|TRUE
    256 
    257   #
    258   # Control what commands are supported from the UI
    259   # Turn these on and off to add features or save size
    260   #
    261   gEmbeddedTokenSpaceGuid.PcdEmbeddedMacBoot|TRUE
    262   gEmbeddedTokenSpaceGuid.PcdEmbeddedDirCmd|TRUE
    263   gEmbeddedTokenSpaceGuid.PcdEmbeddedHobCmd|TRUE
    264   gEmbeddedTokenSpaceGuid.PcdEmbeddedHwDebugCmd|TRUE
    265   gEmbeddedTokenSpaceGuid.PcdEmbeddedPciDebugCmd|TRUE
    266   gEmbeddedTokenSpaceGuid.PcdEmbeddedIoEnable|FALSE
    267   gEmbeddedTokenSpaceGuid.PcdEmbeddedScriptCmd|FALSE
    268 
    269   gEmbeddedTokenSpaceGuid.PcdCacheEnable|TRUE
    270 
    271   # Use the Vector Table location in CpuDxe. We will not copy the Vector Table at PcdCpuVectorBaseAddress
    272   gArmTokenSpaceGuid.PcdRelocateVectorTable|FALSE
    273 
    274   gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob|TRUE
    275 
    276   gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
    277 
    278 [PcdsFixedAtBuild.common]
    279   gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1000000
    280   gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength|1000000
    281   gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|1000000
    282   gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout|10000000
    283   gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue|0xAF
    284   gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask|1
    285   gEfiMdePkgTokenSpaceGuid.PcdPostCodePropertyMask|0
    286   gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320
    287 
    288   # DEBUG_ASSERT_ENABLED       0x01
    289   # DEBUG_PRINT_ENABLED        0x02
    290   # DEBUG_CODE_ENABLED         0x04
    291   # CLEAR_MEMORY_ENABLED       0x08
    292   # ASSERT_BREAKPOINT_ENABLED  0x10
    293   # ASSERT_DEADLOOP_ENABLED    0x20
    294 !if $(TARGET) == RELEASE
    295   gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x21
    296 !else
    297   gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2f
    298 !endif
    299 
    300   #  DEBUG_INIT      0x00000001  // Initialization
    301   #  DEBUG_WARN      0x00000002  // Warnings
    302   #  DEBUG_LOAD      0x00000004  // Load events
    303   #  DEBUG_FS        0x00000008  // EFI File system
    304   #  DEBUG_POOL      0x00000010  // Alloc & Free's
    305   #  DEBUG_PAGE      0x00000020  // Alloc & Free's
    306   #  DEBUG_INFO      0x00000040  // Informational debug messages
    307   #  DEBUG_DISPATCH  0x00000080  // PEI/DXE/SMM Dispatchers
    308   #  DEBUG_VARIABLE  0x00000100  // Variable
    309   #  DEBUG_BM        0x00000400  // Boot Manager
    310   #  DEBUG_BLKIO     0x00001000  // BlkIo Driver
    311   #  DEBUG_NET       0x00004000  // SNI Driver
    312   #  DEBUG_UNDI      0x00010000  // UNDI Driver
    313   #  DEBUG_LOADFILE  0x00020000  // UNDI Driver
    314   #  DEBUG_EVENT     0x00080000  // Event messages
    315   #  DEBUG_GCD       0x00100000  // Global Coherency Database changes
    316   #  DEBUG_CACHE     0x00200000  // Memory range cachability changes
    317   #  DEBUG_VERBOSE   0x00400000  // Detailed debug messages that may
    318   #                              // significantly impact boot performance
    319   #  DEBUG_ERROR     0x80000000  // Error
    320   gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|$(DEBUG_PRINT_ERROR_LEVEL)
    321 
    322   gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x07
    323 
    324   #
    325   # Optional feature to help prevent EFI memory map fragments
    326   # Turned on and off via: PcdPrePiProduceMemoryTypeInformationHob
    327   # Values are in EFI Pages (4K). DXE Core will make sure that
    328   # at least this much of each type of memory can be allocated
    329   # from a single memory range. This way you only end up with
    330   # maximum of two fragements for each type in the memory map
    331   # (the memory used, and the free memory that was prereserved
    332   # but not used).
    333   #
    334   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory|0
    335   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS|0
    336   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType|0
    337 !if $(SECURE_BOOT_ENABLE) == TRUE
    338   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|600
    339   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|400
    340   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|1500
    341 !else
    342   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|300
    343   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|150
    344   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|1000
    345 !endif
    346   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesData|12000
    347   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode|20
    348   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData|0
    349 
    350   #
    351   # ARM Pcds
    352   #
    353   gArmTokenSpaceGuid.PcdArmUncachedMemoryMask|0x0000000000000000
    354 
    355 !if $(SECURE_BOOT_ENABLE) == TRUE
    356   # override the default values from SecurityPkg to ensure images from all sources are verified in secure boot
    357   gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy|0x04
    358   gEfiSecurityPkgTokenSpaceGuid.PcdFixedMediaImageVerificationPolicy|0x04
    359   gEfiSecurityPkgTokenSpaceGuid.PcdRemovableMediaImageVerificationPolicy|0x04
    360 !endif
    361 
    362 !if $(TTY_TERMINAL) == TRUE
    363   # Set terminal type to TtyTerm, the value encoded is EFI_TTY_TERM_GUID
    364   gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer|{0x80, 0x6d, 0x91, 0x7d, 0xb1, 0x5b, 0x8c, 0x45, 0xa4, 0x8f, 0xe2, 0x5f, 0xdd, 0x51, 0xef, 0x94}
    365 !endif
    366 
    367 [PcdsFixedAtBuild.ARM]
    368   gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize|40
    369 
    370 [Components.common]
    371   #
    372   # Networking stack
    373   #
    374   MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
    375   MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
    376   MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
    377   MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
    378   MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
    379   MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
    380   MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
    381   MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
    382   MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
    383   MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf
    384   MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf
    385 
    386   #
    387   # UEFI application (Shell Embedded Boot Loader)
    388   #
    389   ShellPkg/Application/Shell/Shell.inf {
    390     <LibraryClasses>
    391       ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf
    392       NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf
    393       NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf
    394       NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf
    395       NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf
    396       NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
    397       NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf
    398       NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
    399       NULL|ShellPkg/Library/UefiShellTftpCommandLib/UefiShellTftpCommandLib.inf
    400       HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
    401       PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
    402       BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf
    403 
    404     <PcdsFixedAtBuild>
    405       gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF
    406       gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
    407       gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000
    408   }
    409