summaryrefslogtreecommitdiff
path: root/IntelFrameworkModulePkg/Universal/BdsDxe/FrontPage.c
diff options
context:
space:
mode:
Diffstat (limited to 'IntelFrameworkModulePkg/Universal/BdsDxe/FrontPage.c')
-rw-r--r--IntelFrameworkModulePkg/Universal/BdsDxe/FrontPage.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/IntelFrameworkModulePkg/Universal/BdsDxe/FrontPage.c b/IntelFrameworkModulePkg/Universal/BdsDxe/FrontPage.c
index 3bbe71a8fe..aaada9738f 100644
--- a/IntelFrameworkModulePkg/Universal/BdsDxe/FrontPage.c
+++ b/IntelFrameworkModulePkg/Universal/BdsDxe/FrontPage.c
@@ -1144,6 +1144,12 @@ PlatformBdsEnterFrontPage (
BootLogo->SetBootLogo (BootLogo, NULL, 0, 0, 0, 0);
}
+ //
+ // Install BM HiiPackages.
+ // Keep BootMaint HiiPackage, so that it can be covered by global setting.
+ //
+ InitBMPackage ();
+
Status = EFI_SUCCESS;
do {
//
@@ -1200,9 +1206,19 @@ PlatformBdsEnterFrontPage (
case FRONT_PAGE_KEY_BOOT_MANAGER:
//
+ // Remove the installed BootMaint HiiPackages when exit.
+ //
+ FreeBMPackage ();
+
+ //
// User chose to run the Boot Manager
//
CallBootManager ();
+
+ //
+ // Reinstall BootMaint HiiPackages after exiting from Boot Manager.
+ //
+ InitBMPackage ();
break;
case FRONT_PAGE_KEY_DEVICE_MANAGER:
@@ -1233,6 +1249,11 @@ PlatformBdsEnterFrontPage (
//
SetupResetReminder ();
+ //
+ // Remove the installed BootMaint HiiPackages when exit.
+ //
+ FreeBMPackage ();
+
Exit:
//
// Automatically load current entry