From 3df4b6e7e96f671a0fc045119e44130936666030 Mon Sep 17 00:00:00 2001 From: mdkinney Date: Mon, 1 Mar 2010 05:32:59 +0000 Subject: Update PI SMM Core to ignore memory ranges from SMRAM Descriptors that are already allocated or not tested or not ECC initialized yet git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10132 6f19259b-4bc3-4df7-8a09-765794883524 --- MdeModulePkg/Core/PiSmmCore/Page.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'MdeModulePkg/Core') diff --git a/MdeModulePkg/Core/PiSmmCore/Page.c b/MdeModulePkg/Core/PiSmmCore/Page.c index ec4dd4fcb8..781707e244 100644 --- a/MdeModulePkg/Core/PiSmmCore/Page.c +++ b/MdeModulePkg/Core/PiSmmCore/Page.c @@ -312,6 +312,16 @@ SmmAddMemoryRegion ( { UINTN AlignedMemBase; + // + // Do not add memory regions that is already allocated, needs testing, or needs ECC initialization + // + if ((Attributes & (EFI_ALLOCATED | EFI_NEEDS_TESTING | EFI_NEEDS_ECC_INITIALIZATION)) != 0) { + return; + } + + // + // Align range on an EFI_PAGE_SIZE boundary + // AlignedMemBase = (UINTN)(MemBase + EFI_PAGE_MASK) & ~EFI_PAGE_MASK; MemLength -= AlignedMemBase - MemBase; SmmFreePages (AlignedMemBase, TRUNCATE_TO_PAGES ((UINTN)MemLength)); -- cgit v1.2.3