summaryrefslogtreecommitdiff
path: root/IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/Variable.c
diff options
context:
space:
mode:
Diffstat (limited to 'IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/Variable.c')
-rw-r--r--IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/Variable.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/Variable.c b/IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/Variable.c
index 63eeb54ccf..0e9dbda667 100644
--- a/IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/Variable.c
+++ b/IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/Variable.c
@@ -708,6 +708,16 @@ Var_UpdateDriverOption (
InsertTailList (&DriverOptionMenu.Head, &NewMenuEntry->Link);
DriverOptionMenu.MenuNumber++;
+ //
+ // Update "change boot order" page used data, append the new add boot
+ // option at the end.
+ //
+ Index = 0;
+ while (CallbackData->BmmFakeNvData.DriverOptionOrder[Index] != 0) {
+ Index++;
+ }
+ CallbackData->BmmFakeNvData.DriverOptionOrder[Index] = (UINT32) (NewMenuEntry->OptionNumber + 1);
+
*DescriptionData = 0x0000;
*OptionalData = 0x0000;
}
@@ -879,6 +889,16 @@ Var_UpdateBootOption (
InsertTailList (&BootOptionMenu.Head, &NewMenuEntry->Link);
BootOptionMenu.MenuNumber++;
+ //
+ // Update "change driver order" page used data, append the new add driver
+ // option at the end.
+ //
+ Index = 0;
+ while (CallbackData->BmmFakeNvData.BootOptionOrder[Index] != 0) {
+ Index++;
+ }
+ CallbackData->BmmFakeNvData.BootOptionOrder[Index] = (UINT32) (NewMenuEntry->OptionNumber + 1);
+
NvRamMap->BootDescriptionData[0] = 0x0000;
NvRamMap->BootOptionalData[0] = 0x0000;
}