]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Core/DxeIplPeim/Arm/DxeLoadFunc.c
MdeModulePkg/DxeIplPeim: implement non-exec stack for ARM/AARCH64
[mirror_edk2.git] / MdeModulePkg / Core / DxeIplPeim / Arm / DxeLoadFunc.c
index df2dc70b1732893b7a4ba55fcee3b01617c6ac02..d6581a3125413dbc66b813d59cabec23078977e6 100644 (file)
@@ -16,6 +16,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
 #include "DxeIpl.h"\r
 \r
+#include <Library/ArmLib.h>\r
+\r
 /**\r
    Transfers control to DxeCore.\r
 \r
@@ -43,6 +45,11 @@ HandOffToDxeCore (
   BaseOfStack = AllocatePages (EFI_SIZE_TO_PAGES (STACK_SIZE));\r
   ASSERT (BaseOfStack != NULL);\r
 \r
+  if (PcdGetBool (PcdSetNxForStack)) {\r
+    Status = ArmSetMemoryRegionNoExec ((UINTN)BaseOfStack, STACK_SIZE);\r
+    ASSERT_EFI_ERROR (Status);\r
+  }\r
+\r
   //\r
   // Compute the top of the stack we were allocated. Pre-allocate a UINTN\r
   // for safety.\r