OvmfPkg: Add a runtime switch for PlatformRegisterFvBootOption

Add a new parameter to selectively enable or disable the BootOption.

Signed-off-by: Luigi Leonardi <leonardi@redhat.com>
This commit is contained in:
Luigi Leonardi 2024-12-13 12:18:04 +01:00 committed by mergify[bot]
parent b8f3199595
commit 07bb226542
1 changed files with 13 additions and 4 deletions

View File

@ -86,7 +86,8 @@ VOID
PlatformRegisterFvBootOption (
EFI_GUID *FileGuid,
CHAR16 *Description,
UINT32 Attributes
UINT32 Attributes,
BOOLEAN Enabled
)
{
EFI_STATUS Status;
@ -138,9 +139,15 @@ PlatformRegisterFvBootOption (
BootOptionCount
);
if (OptionIndex == -1) {
if ((OptionIndex == -1) && Enabled) {
Status = EfiBootManagerAddLoadOptionVariable (&NewOption, MAX_UINTN);
ASSERT_EFI_ERROR (Status);
} else if ((OptionIndex != -1) && !Enabled) {
Status = EfiBootManagerDeleteLoadOptionVariable (
BootOptions[OptionIndex].OptionNumber,
LoadOptionTypeBoot
);
ASSERT_EFI_ERROR (Status);
}
EfiBootManagerFreeLoadOption (&NewOption);
@ -1842,7 +1849,8 @@ PlatformBootManagerAfterConsole (
PlatformRegisterFvBootOption (
&gUefiShellFileGuid,
L"EFI Internal Shell",
LOAD_OPTION_ACTIVE
LOAD_OPTION_ACTIVE,
TRUE
);
//
@ -1851,7 +1859,8 @@ PlatformBootManagerAfterConsole (
PlatformRegisterFvBootOption (
&gGrubFileGuid,
L"Grub Bootloader",
LOAD_OPTION_ACTIVE
LOAD_OPTION_ACTIVE,
TRUE
);
RemoveStaleFvFileOptions ();