]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmVirtPkg/ArmVirt.dsc.inc
ArmVirtPkg: enable non-executable DXE stack for all platforms
[mirror_edk2.git] / ArmVirtPkg / ArmVirt.dsc.inc
index 6c6a52b5e6fb69b84f54d61053629b140ddf3503..e2d3dcce7945f560d9e0eb0ece0546b077c8b651 100644 (file)
@@ -17,6 +17,9 @@
   DEFINE DEBUG_PRINT_ERROR_LEVEL = 0x8000004F\r
   DEFINE TTY_TERMINAL            = FALSE\r
 \r
+[BuildOptions.common.EDKII.DXE_DRIVER,BuildOptions.common.EDKII.UEFI_DRIVER,BuildOptions.common.EDKII.UEFI_APPLICATION]\r
+  GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000\r
+\r
 [BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]\r
   GCC:*_*_ARM_DLINK_FLAGS = -z common-page-size=0x1000\r
   GCC:*_*_AARCH64_DLINK_FLAGS = -z common-page-size=0x10000\r
 [LibraryClasses.common]\r
 !if $(TARGET) == RELEASE\r
   DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf\r
-  UncachedMemoryAllocationLib|ArmPkg/Library/UncachedMemoryAllocationLib/UncachedMemoryAllocationLib.inf\r
 !else\r
   DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf\r
-  UncachedMemoryAllocationLib|ArmPkg/Library/DebugUncachedMemoryAllocationLib/DebugUncachedMemoryAllocationLib.inf\r
 !endif\r
   DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf\r
 \r
@@ -67,9 +68,8 @@
   #\r
   PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf\r
 \r
-  # 1/123 faster than Stm or Vstm version\r
-  #BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf\r
-  BaseMemoryLib|ArmPkg/Library/BaseMemoryLibStm/BaseMemoryLibStm.inf\r
+  # use the accelerated BaseMemoryLibOptDxe by default, overrides for SEC/PEI below\r
+  BaseMemoryLib|MdePkg/Library/BaseMemoryLibOptDxe/BaseMemoryLibOptDxe.inf\r
 \r
   # Networking Requirements\r
   NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf\r
   #\r
 !if $(SECURE_BOOT_ENABLE) == TRUE\r
   IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf\r
-  OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf\r
+  OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf\r
   TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.inf\r
   AuthVariableLib|SecurityPkg/Library/AuthVariableLib/AuthVariableLib.inf\r
   BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf\r
   AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf\r
 !endif\r
   VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf\r
+  UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf\r
 \r
 [LibraryClasses.common.SEC]\r
   PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf\r
+  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf\r
 \r
   DebugAgentLib|ArmPkg/Library/DebugAgentSymbolsBaseLib/DebugAgentSymbolsBaseLib.inf\r
   DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLibBase.inf\r
 \r
 [LibraryClasses.common.PEI_CORE]\r
   PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf\r
+  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf\r
   HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf\r
   PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf\r
   MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf\r
 \r
 [LibraryClasses.common.PEIM]\r
   PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf\r
+  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf\r
   HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf\r
   PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf\r
   MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf\r
 \r
   GCC:RELEASE_*_*_CC_FLAGS  = -DMDEPKG_NDEBUG\r
 \r
+  #\r
+  # Disable deprecated APIs.\r
+  #\r
+  RVCT:*_*_*_CC_FLAGS = -DDISABLE_NEW_DEPRECATED_INTERFACES\r
+  GCC:*_*_*_CC_FLAGS = -DDISABLE_NEW_DEPRECATED_INTERFACES\r
+\r
 ################################################################################\r
 #\r
 # Pcd Section - list of all EDK II PCD Entries defined by this Platform\r
 \r
 [PcdsFeatureFlag.common]\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdHiiOsRuntimeSupport|FALSE\r
-  gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable|TRUE\r
-  gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnosticsDisable|TRUE\r
-  gEfiMdePkgTokenSpaceGuid.PcdComponentName2Disable|TRUE\r
-  gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnostics2Disable|TRUE\r
 \r
   #\r
   # Control what commands are supported from the UI\r
   gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|1000000\r
   gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout|10000000\r
   gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue|0xAF\r
-  gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask|1\r
   gEfiMdePkgTokenSpaceGuid.PcdPostCodePropertyMask|0\r
   gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320\r
 \r
   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode|20\r
   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData|0\r
 \r
-  #\r
-  # ARM Pcds\r
-  #\r
-  gArmTokenSpaceGuid.PcdArmUncachedMemoryMask|0x0000000000000000\r
-\r
 !if $(SECURE_BOOT_ENABLE) == TRUE\r
   # override the default values from SecurityPkg to ensure images from all sources are verified in secure boot\r
   gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy|0x04\r
   gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer|{0x80, 0x6d, 0x91, 0x7d, 0xb1, 0x5b, 0x8c, 0x45, 0xa4, 0x8f, 0xe2, 0x5f, 0xdd, 0x51, 0xef, 0x94}\r
 !endif\r
 \r
+  #\r
+  # Enable strict image permissions for all images. (This applies\r
+  # only to images that were built with >= 4 KB section alignment.)\r
+  #\r
+  gEfiMdeModulePkgTokenSpaceGuid.PcdImageProtectionPolicy|0x3\r
+\r
+  #\r
+  # Enable NX memory protection for all non-code regions, including OEM and OS\r
+  # reserved ones, with the exception of LoaderData regions, of which OS loaders\r
+  # (i.e., GRUB) may assume that its contents are executable.\r
+  #\r
+  gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy|0xC000000000007FD1\r
+\r
+  #\r
+  # Enable the non-executable DXE stack. (This gets set up by DxeIpl)\r
+  #\r
+  gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack|TRUE\r
+\r
 [PcdsFixedAtBuild.ARM]\r
   gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize|40\r
 \r