Ah yes, I did forget to include that patch. Will add to v2. I was just setting the ResourceType to unaccepted and skipping the Prevalidate call in PlatformPei if the start address is greater or equal to SIZE_4GB. That seemed more self-contained than messing with PlatformInitLib. Would you prefer that I add SevSnp logic to PlatformInitLib?
On 9/22/22 15:50, Dionna Glaze wrote:
> These three patches build on the lazy-accept patch series
>
> "Introduce Lazy-accept for Tdx guest"
>
> by adding SEV-SNP support for the MemoryAccept protocol, and
> importantly making eager memory acceptance the default behavior.
>
> For unaccepted memory to be enabled, we must know that the booted image
> supports the unaccepted memory type. We add a trivial protocol that sets
> a dynamic Pcd to true when called in order for the booted image to
> signal its support for unaccepted memory. This does not need to be an
> OsIndications bit because it does not need to be persisted.
>
> We use the Pcd to disable a new ExitBootServices notification that
> accepts all unaccepted memory, removes the unaccepted memory entries in
> the memory space map, and then add the same memory ranges back as
> conventional memory.
>
> All images that support unaccepted memory must now locate and call this
> new ENABLE_UNACCEPTED_MEMORY_PROTOCOL.
This seems to be missing the creation of unaccepted memory under SEV-SNP.
Is that going to be part of a separate patch (to update
PlatformAddMemoryBaseSizeHob () and mark anything above 4GB as unaccepted)?
Thanks,
Tom
>
> Cc: Ard Biescheuvel <ardb@kernel.org>
> Cc: "Min M. Xu" <min.m.xu@intel.org>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Cc: James Bottomley <jejb@linux.ibm.com>
> Cc: Tom Lendacky <Thomas.Lendacky@amd.com>
> Cc: Jiewen Yao <jiewen.yao@intel.com>
> Cc: Erdem Aktas <erdemaktas@google.com>
>
> Signed-off-by: Dionna Glaze <dionnaglaze@google.com>
>
> Dionna Glaze (3):
> OvmfPkg: Realize EfiMemoryAcceptProtocol in AmdSevDxe
> DxeMain accepts all memory at EBS if needed
> MdeModulePkg: add EnableUnacceptedMemoryProtocol
>
> MdeModulePkg/Core/Dxe/DxeMain.h | 32 +++++
> MdeModulePkg/Core/Dxe/DxeMain.inf | 3 +
> MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c | 19 ++-
> MdeModulePkg/Core/Dxe/Mem/Page.c | 122 ++++++++++++++++++
> MdeModulePkg/MdeModulePkg.dec | 9 ++
> MdeModulePkg/MdeModulePkg.uni | 6 +
> OvmfPkg/AmdSev/AmdSevX64.dsc | 1 +
> OvmfPkg/AmdSevDxe/AmdSevDxe.c | 27 ++++
> OvmfPkg/AmdSevDxe/AmdSevDxe.inf | 3 +
> OvmfPkg/Bhyve/BhyveX64.dsc | 2 +
> OvmfPkg/CloudHv/CloudHvX64.dsc | 2 +
> OvmfPkg/Include/Library/MemEncryptSevLib.h | 14 ++
> OvmfPkg/IntelTdx/IntelTdxX64.dsc | 2 +
> .../Ia32/MemEncryptSevLib.c | 17 +++
> .../X64/DxeSnpSystemRamValidate.c | 35 +++++
> .../X64/PeiSnpSystemRamValidate.c | 17 +++
> .../X64/SecSnpSystemRamValidate.c | 18 +++
> OvmfPkg/OvmfPkgIa32X64.dsc | 2 +
> OvmfPkg/OvmfPkgX64.dsc | 2 +
> OvmfPkg/OvmfXen.dsc | 2 +
> 20 files changed, 334 insertions(+), 1 deletion(-)
>
--
-Dionna Glaze, PhD (she/her)