diff options
author | Star Zeng <star.zeng@intel.com> | 2016-04-20 17:27:40 +0800 |
---|---|---|
committer | Star Zeng <star.zeng@intel.com> | 2016-04-22 13:39:56 +0800 |
commit | 74a88770337121b046ec5f055d4ae06abc37fa60 (patch) | |
tree | d6c2c1909a8a78c86534eb9a72ff639ee1fb06c9 /MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c | |
parent | 925f0d1ae144a0b57b70fe89a26d47660cf488c7 (diff) | |
download | edk2-platforms-74a88770337121b046ec5f055d4ae06abc37fa60.tar.xz |
MdeModulePkg DxeCore: Enhance MemoryAttributesTable installation
Current MemoryAttributesTable will be installed on ReadyToBoot event
at TPL_NOTIFY level, it maybe incorrect when PcdHiiOsRuntimeSupport
= TRUE as HiiDatabaseDxe will have runtime memory allocation for HII
OS runtime support on and after ReadyToBoot. The issue was exposed at
http://article.gmane.org/gmane.comp.bios.edk2.devel/10125.
To make sure the correctness of MemoryAttributesTable, this patch is
to enhance MemoryAttributesTable installation to install
MemoryAttributesTable on ReadyToBoot event at TPL_CALLBACK - 1 level
to make sure it is at the last of ReadyToBoot event, and also hook
runtime memory allocation after ReadyToBoot.
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Feng Tian <feng.tian@intel.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Diffstat (limited to 'MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c')
-rw-r--r-- | MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c b/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c index a458d6b64f..70a283bc2b 100644 --- a/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c +++ b/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c @@ -207,6 +207,7 @@ EFI_SYSTEM_TABLE *gDxeCoreST = NULL; EFI_RUNTIME_SERVICES *gDxeCoreRT = &mEfiRuntimeServicesTableTemplate;
EFI_HANDLE gDxeCoreImageHandle = NULL;
+BOOLEAN gMemoryMapTerminated = FALSE;
//
// EFI Decompress Protocol
@@ -751,6 +752,8 @@ CoreExitBootServices ( return Status;
}
+ gMemoryMapTerminated = TRUE;
+
//
// Notify other drivers that we are exiting boot services.
//
|