From nobody Sun Feb 8 19:48:55 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+106827+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+106827+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1689119587; cv=none; d=zohomail.com; s=zohoarc; b=R06Gbh4EaocnKVscZaC4aQh7/3vRtb9tsxCJmT3gwqSryHejua0taV6/ZNek4SIriPBKelc+T17/HkQinbmT6RQphX6UiLUNELQcD4iOi/Gfa92OEeIYq39rw/I5EO0WOBziQxu7cF25MR/OSNptneClj+z3NZVdDASN9iUMdYw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1689119587; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=b2JWUU9gc8imr/ABRTpvTP18B7SekFWlDjO6lMy5b2U=; b=PBo6XGUJPiSxt3Fj1Pk8bBhD0GZxzRNMydoulGgR+Oh/NfBi3iwLrAO81389rsm9cYhvDwq11rzXiDTJo9n+QvUt4d3QijJf9eMV1BSqcD3MoMBBujWpz4qF3qv7P9IUH7NknCYSLjNNYQRJOGl9ybZ0G58ff4si7rrig9dgdmI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+106827+1787277+3901457@groups.io Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1689119587977977.8178913565343; Tue, 11 Jul 2023 16:53:07 -0700 (PDT) Return-Path: DKIM-Signature: a=rsa-sha256; bh=Sj9OUAxDYdoaC/ouo76Ylo+gq3rT1QYS5Ms5mzKXbQM=; c=relaxed/simple; d=groups.io; h=X-Received:X-Received:X-Received:X-Gm-Message-State:X-Google-Smtp-Source:X-Received:X-Received:From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:MIME-Version:Precedence:List-Unsubscribe:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:Content-Transfer-Encoding; s=20140610; t=1689119587; v=1; b=FInAXD9kOkLB32HnPMmp0xtE7+10W8577xALBMLsPRo9UbbryOnPtPqNNVbFuTO+F4OgjJAq UtzvtreSt35apF+eHaP33DlBQ+Dz4Q4X3cLssZEiqOCCo0bH+bSjUsCnvVR9vShcTRNq+Dj5oQZ 8YbMuPdO8O9HgGcuhfyGuows= X-Received: by 127.0.0.2 with SMTP id nwFjYY1788612xbX7d1bzHRG; Tue, 11 Jul 2023 16:53:07 -0700 X-Received: from mail-pf1-f177.google.com (mail-pf1-f177.google.com [209.85.210.177]) by mx.groups.io with SMTP id smtpd.web10.1851.1689119586604197135 for ; Tue, 11 Jul 2023 16:53:06 -0700 X-Received: by mail-pf1-f177.google.com with SMTP id d2e1a72fcca58-666ecf9a081so5577796b3a.2 for ; Tue, 11 Jul 2023 16:53:06 -0700 (PDT) X-Gm-Message-State: xWVJgakS1N0hwoMjQ9XQmByrx1787277AA= X-Google-Smtp-Source: APBJJlGgyt0mFerwSCQYairm31MkUy/99CzaJhfjAAYvbjRcX3MoknxcWFraiSDqR/Ob6NgO97a6fA== X-Received: by 2002:a05:6a00:22c9:b0:675:8f71:28ee with SMTP id f9-20020a056a0022c900b006758f7128eemr22279602pfj.34.1689119585936; Tue, 11 Jul 2023 16:53:05 -0700 (PDT) X-Received: from localhost.localdomain ([50.46.230.135]) by smtp.gmail.com with ESMTPSA id a13-20020a62e20d000000b00660d80087a8sm2232677pfi.187.2023.07.11.16.53.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Jul 2023 16:53:05 -0700 (PDT) From: "Taylor Beebe" To: devel@edk2.groups.io Cc: Ard Biesheuvel , Jiewen Yao , Jordan Justen , Gerd Hoffmann Subject: [edk2-devel] [PATCH 04/14] OvmfPkg: Create the memory protection settings HOB Date: Tue, 11 Jul 2023 16:52:41 -0700 Message-ID: In-Reply-To: References: MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,t@taylorbeebe.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1689119590015100023 Content-Type: text/plain; charset="utf-8" From: Taylor Beebe Create the memory protection settings HOB on Ovmf platforms with DEBUG settings. Signed-off-by: Taylor Beebe Cc: Ard Biesheuvel Cc: Jiewen Yao Cc: Jordan Justen Cc: Gerd Hoffmann --- OvmfPkg/AmdSev/AmdSevX64.dsc | 2 ++ OvmfPkg/Bhyve/BhyveX64.dsc | 2 ++ OvmfPkg/CloudHv/CloudHvX64.dsc | 2 ++ .../Dsc/MemoryProtectionLibraries.dsc.inc | 15 +++++++++++ OvmfPkg/IntelTdx/IntelTdxX64.dsc | 2 ++ OvmfPkg/Microvm/MicrovmX64.dsc | 2 ++ OvmfPkg/OvmfPkgIa32.dsc | 2 ++ OvmfPkg/OvmfPkgIa32X64.dsc | 2 ++ OvmfPkg/OvmfPkgX64.dsc | 2 ++ OvmfPkg/OvmfXen.dsc | 2 ++ OvmfPkg/PlatformPei/Platform.c | 27 +++++++++++++++++-- OvmfPkg/PlatformPei/PlatformPei.inf | 2 ++ OvmfPkg/RiscVVirt/RiscVVirtQemu.dsc | 1 + 13 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 OvmfPkg/Include/Dsc/MemoryProtectionLibraries.dsc.inc diff --git a/OvmfPkg/AmdSev/AmdSevX64.dsc b/OvmfPkg/AmdSev/AmdSevX64.dsc index 2c6ed7c974..ce028fcb5c 100644 --- a/OvmfPkg/AmdSev/AmdSevX64.dsc +++ b/OvmfPkg/AmdSev/AmdSevX64.dsc @@ -370,6 +370,8 @@ !endif PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf =20 +!include OvmfPkg/Include/Dsc/MemoryProtectionLibraries.dsc.inc + ##########################################################################= ###### # # Pcd Section - list of all EDK II PCD Entries defined by this Platform. diff --git a/OvmfPkg/Bhyve/BhyveX64.dsc b/OvmfPkg/Bhyve/BhyveX64.dsc index 7fa40998ae..248b6020ed 100644 --- a/OvmfPkg/Bhyve/BhyveX64.dsc +++ b/OvmfPkg/Bhyve/BhyveX64.dsc @@ -411,6 +411,8 @@ !endif PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf =20 +!include OvmfPkg/Include/Dsc/MemoryProtectionLibraries.dsc.inc + ##########################################################################= ###### # # Pcd Section - list of all EDK II PCD Entries defined by this Platform. diff --git a/OvmfPkg/CloudHv/CloudHvX64.dsc b/OvmfPkg/CloudHv/CloudHvX64.dsc index e000deed9e..8828e298ca 100644 --- a/OvmfPkg/CloudHv/CloudHvX64.dsc +++ b/OvmfPkg/CloudHv/CloudHvX64.dsc @@ -451,6 +451,8 @@ !endif PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf =20 +!include OvmfPkg/Include/Dsc/MemoryProtectionLibraries.dsc.inc + ##########################################################################= ###### # # Pcd Section - list of all EDK II PCD Entries defined by this Platform. diff --git a/OvmfPkg/Include/Dsc/MemoryProtectionLibraries.dsc.inc b/OvmfPk= g/Include/Dsc/MemoryProtectionLibraries.dsc.inc new file mode 100644 index 0000000000..cd8552de0d --- /dev/null +++ b/OvmfPkg/Include/Dsc/MemoryProtectionLibraries.dsc.inc @@ -0,0 +1,15 @@ +## +# SPDX-License-Identifier: BSD-2-Clause-Patent +## + +# +# Memory Protection Libraries +# +[LibraryClasses.common.DXE_DRIVER, LibraryClasses.common.DXE_CORE, Library= Classes.common.UEFI_APPLICATION, LibraryClasses.common.UEFI_DRIVER] + DxeMemoryProtectionHobLib|MdeModulePkg/Library/MemoryProtectionHobLib/Dx= eMemoryProtectionHobLib.inf + +[LibraryClasses.common.SMM_CORE, LibraryClasses.common.DXE_SMM_DRIVER] + MmMemoryProtectionHobLib|MdeModulePkg/Library/MemoryProtectionHobLib/Smm= MemoryProtectionHobLib.inf + +[LibraryClasses.common.MM_CORE_STANDALONE, LibraryClasses.common.MM_STANDA= LONE] + MmMemoryProtectionHobLib|MdeModulePkg/Library/MemoryProtectionHobLib/Sta= ndaloneMmMemoryProtectionHobLib.inf diff --git a/OvmfPkg/IntelTdx/IntelTdxX64.dsc b/OvmfPkg/IntelTdx/IntelTdxX6= 4.dsc index 193657ff2d..27b9d4bf26 100644 --- a/OvmfPkg/IntelTdx/IntelTdxX64.dsc +++ b/OvmfPkg/IntelTdx/IntelTdxX64.dsc @@ -363,6 +363,8 @@ !endif PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf =20 +!include OvmfPkg/Include/Dsc/MemoryProtectionLibraries.dsc.inc + ##########################################################################= ###### # # Pcd Section - list of all EDK II PCD Entries defined by this Platform. diff --git a/OvmfPkg/Microvm/MicrovmX64.dsc b/OvmfPkg/Microvm/MicrovmX64.dsc index 2f75856393..611d64a6a0 100644 --- a/OvmfPkg/Microvm/MicrovmX64.dsc +++ b/OvmfPkg/Microvm/MicrovmX64.dsc @@ -452,6 +452,8 @@ PciPcdProducerLib|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.= inf PciExpressLib|OvmfPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExp= ressLib.inf =20 +!include OvmfPkg/Include/Dsc/MemoryProtectionLibraries.dsc.inc + ##########################################################################= ###### # # Pcd Section - list of all EDK II PCD Entries defined by this Platform. diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc index ed36935770..810d69651c 100644 --- a/OvmfPkg/OvmfPkgIa32.dsc +++ b/OvmfPkg/OvmfPkgIa32.dsc @@ -458,6 +458,8 @@ !endif PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf =20 +!include OvmfPkg/Include/Dsc/MemoryProtectionLibraries.dsc.inc + ##########################################################################= ###### # # Pcd Section - list of all EDK II PCD Entries defined by this Platform. diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc index 919315e4cb..13e141a352 100644 --- a/OvmfPkg/OvmfPkgIa32X64.dsc +++ b/OvmfPkg/OvmfPkgIa32X64.dsc @@ -465,6 +465,8 @@ !endif PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf =20 +!include OvmfPkg/Include/Dsc/MemoryProtectionLibraries.dsc.inc + ##########################################################################= ###### # # Pcd Section - list of all EDK II PCD Entries defined by this Platform. diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc index 823de0d0f9..418c3a0f54 100644 --- a/OvmfPkg/OvmfPkgX64.dsc +++ b/OvmfPkg/OvmfPkgX64.dsc @@ -484,6 +484,8 @@ !endif PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf =20 +!include OvmfPkg/Include/Dsc/MemoryProtectionLibraries.dsc.inc + ##########################################################################= ###### # # Pcd Section - list of all EDK II PCD Entries defined by this Platform. diff --git a/OvmfPkg/OvmfXen.dsc b/OvmfPkg/OvmfXen.dsc index 210578c1d7..94d455e2d6 100644 --- a/OvmfPkg/OvmfXen.dsc +++ b/OvmfPkg/OvmfXen.dsc @@ -350,6 +350,8 @@ ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeRepor= tStatusCodeLib.inf PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf =20 +!include OvmfPkg/Include/Dsc/MemoryProtectionLibraries.dsc.inc + ##########################################################################= ###### # # Pcd Section - list of all EDK II PCD Entries defined by this Platform. diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c index f5dc41c3a8..075de3fce6 100644 --- a/OvmfPkg/PlatformPei/Platform.c +++ b/OvmfPkg/PlatformPei/Platform.c @@ -38,6 +38,8 @@ #include #include #include +#include +#include =20 #include "Platform.h" =20 @@ -304,8 +306,29 @@ InitializePlatform ( IN CONST EFI_PEI_SERVICES **PeiServices ) { - EFI_HOB_PLATFORM_INFO *PlatformInfoHob; - EFI_STATUS Status; + EFI_HOB_PLATFORM_INFO *PlatformInfoHob; + EFI_STATUS Status; + DXE_MEMORY_PROTECTION_SETTINGS DxeSettings; + MM_MEMORY_PROTECTION_SETTINGS MmSettings; + + DxeSettings =3D (DXE_MEMORY_PROTECTION_SETTINGS)DXE_MEMORY_PROTECTION_SE= TTINGS_DEBUG; + MmSettings =3D (MM_MEMORY_PROTECTION_SETTINGS)MM_MEMORY_PROTECTION_SETT= INGS_DEBUG; + + DxeSettings.NullPointerDetection.DisableEndOfDxe =3D TRUE; + MmSettings.HeapGuard.PageGuardEnabled =3D FALSE; + MmSettings.HeapGuard.PoolGuardEnabled =3D FALSE; + + BuildGuidDataHob ( + &gDxeMemoryProtectionSettingsGuid, + &DxeSettings, + sizeof (DxeSettings) + ); + + BuildGuidDataHob ( + &gMmMemoryProtectionSettingsGuid, + &MmSettings, + sizeof (MmSettings) + ); =20 DEBUG ((DEBUG_INFO, "Platform PEIM Loaded\n")); PlatformInfoHob =3D BuildPlatformInfoHob (); diff --git a/OvmfPkg/PlatformPei/PlatformPei.inf b/OvmfPkg/PlatformPei/Plat= formPei.inf index 3934aeed95..9e30d616eb 100644 --- a/OvmfPkg/PlatformPei/PlatformPei.inf +++ b/OvmfPkg/PlatformPei/PlatformPei.inf @@ -45,6 +45,8 @@ gEfiMemoryTypeInformationGuid gFdtHobGuid gUefiOvmfPkgPlatformInfoGuid + gDxeMemoryProtectionSettingsGuid + gMmMemoryProtectionSettingsGuid =20 [LibraryClasses] BaseLib diff --git a/OvmfPkg/RiscVVirt/RiscVVirtQemu.dsc b/OvmfPkg/RiscVVirt/RiscVV= irtQemu.dsc index 34b2037824..09bb83dc0f 100644 --- a/OvmfPkg/RiscVVirt/RiscVVirtQemu.dsc +++ b/OvmfPkg/RiscVVirt/RiscVVirtQemu.dsc @@ -126,6 +126,7 @@ PciExpressLib|OvmfPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExp= ressLib.inf =20 #!include NetworkPkg/NetworkBuildOptions.dsc.inc +!include OvmfPkg/Include/Dsc/MemoryProtectionLibraries.dsc.inc =20 ##########################################################################= ###### # --=20 2.41.0.windows.2 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#106827): https://edk2.groups.io/g/devel/message/106827 Mute This Topic: https://groups.io/mt/100090634/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-