[efi] Add ability to reboot to firmware setup menu

Add the ability to reboot to the firmware setup menu (if supported) by
setting the relevant value in the OsIndications variable.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown
2025-04-28 14:01:17 +01:00
parent 7eaa2daf6f
commit 083e273bbc
3 changed files with 30 additions and 0 deletions

View File

@@ -38,12 +38,16 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
struct reboot_options {
/** Perform a warm reboot */
int warm;
/** Reboot to firmware setup */
int setup;
};
/** "reboot" option list */
static struct option_descriptor reboot_opts[] = {
OPTION_DESC ( "warm", 'w', no_argument,
struct reboot_options, warm, parse_flag ),
OPTION_DESC ( "setup", 's', no_argument,
struct reboot_options, setup, parse_flag ),
};
/** "reboot" command descriptor */
@@ -69,6 +73,8 @@ static int reboot_exec ( int argc, char **argv ) {
/* Reboot system */
if ( opts.warm )
flags |= REBOOT_WARM;
if ( opts.setup )
flags |= REBOOT_SETUP;
reboot ( flags );
return 0;