From d26753f8358c47091f380b9c9cd8081c99715e50 Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Tue, 15 Sep 2015 08:35:03 +0000 Subject: OvmfPkg: make PcdSetNxForStack dynamic Plus, because PcdSetNxForStack is used by the DXE IPL PEIM (in the HandOffToDxeCore() function, and in the CreateIdentityMappingPageTables() function called by the former), we must change the PcdLib class resolution for that module, from the default BasePcdLibNull to PeiPcdLib. Cc: Jordan Justen Cc: Star Zeng Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek Reviewed-by: Jordan Justen git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18469 6f19259b-4bc3-4df7-8a09-765794883524 --- OvmfPkg/OvmfPkgIa32.dsc | 9 +++++++-- OvmfPkg/OvmfPkgIa32X64.dsc | 9 +++++++-- OvmfPkg/OvmfPkgX64.dsc | 9 +++++++-- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc index 685e72a570..0b873f62b6 100644 --- a/OvmfPkg/OvmfPkgIa32.dsc +++ b/OvmfPkg/OvmfPkgIa32.dsc @@ -308,7 +308,6 @@ !endif [PcdsFixedAtBuild] - gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack|TRUE gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|1 gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE gEfiMdePkgTokenSpaceGuid.PcdMaximumGuidedExtractHandler|0x10 @@ -372,6 +371,9 @@ gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev|0x0 gUefiOvmfPkgTokenSpaceGuid.PcdQemuSmbiosValidated|FALSE + # Noexec settings for DXE. + gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack|TRUE + ################################################################################ # # Components Section - list of all EDK II Modules needed by this Platform. @@ -397,7 +399,10 @@ PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf } IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf - MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf + MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf { + + PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf + } OvmfPkg/PlatformPei/PlatformPei.inf { diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc index 84cbb7ab4d..0017b46f20 100644 --- a/OvmfPkg/OvmfPkgIa32X64.dsc +++ b/OvmfPkg/OvmfPkgIa32X64.dsc @@ -313,7 +313,6 @@ !endif [PcdsFixedAtBuild] - gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack|TRUE gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|1 gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE gEfiMdePkgTokenSpaceGuid.PcdMaximumGuidedExtractHandler|0x10 @@ -378,6 +377,9 @@ gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev|0x0 gUefiOvmfPkgTokenSpaceGuid.PcdQemuSmbiosValidated|FALSE + # Noexec settings for DXE. + gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack|TRUE + ################################################################################ # # Components Section - list of all EDK II Modules needed by this Platform. @@ -403,7 +405,10 @@ PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf } IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf - MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf + MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf { + + PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf + } OvmfPkg/PlatformPei/PlatformPei.inf { diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc index 1d023a7527..5850b61b38 100644 --- a/OvmfPkg/OvmfPkgX64.dsc +++ b/OvmfPkg/OvmfPkgX64.dsc @@ -313,7 +313,6 @@ !endif [PcdsFixedAtBuild] - gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack|TRUE gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|1 gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE gEfiMdePkgTokenSpaceGuid.PcdMaximumGuidedExtractHandler|0x10 @@ -377,6 +376,9 @@ gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev|0x0 gUefiOvmfPkgTokenSpaceGuid.PcdQemuSmbiosValidated|FALSE + # Noexec settings for DXE. + gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack|TRUE + ################################################################################ # # Components Section - list of all EDK II Modules needed by this Platform. @@ -402,7 +404,10 @@ PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf } IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf - MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf + MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf { + + PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf + } OvmfPkg/PlatformPei/PlatformPei.inf { -- cgit v1.2.3