mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 15:14:43 +00:00
bootstd: Make efi_mgr bootmeth work for non-sandbox setups
Enable the bootflow based on this bootmeth if the BootOrder EFI variable is set. Signed-off-by: Mark Kettenis <kettenis@openbsd.org> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
073bf4a57d
commit
f2bfa0cb17
1 changed files with 16 additions and 1 deletions
|
@ -14,6 +14,8 @@
|
|||
#include <bootmeth.h>
|
||||
#include <command.h>
|
||||
#include <dm.h>
|
||||
#include <efi_loader.h>
|
||||
#include <efi_variable.h>
|
||||
|
||||
/**
|
||||
* struct efi_mgr_priv - private info for the efi-mgr driver
|
||||
|
@ -46,13 +48,26 @@ static int efi_mgr_check(struct udevice *dev, struct bootflow_iter *iter)
|
|||
static int efi_mgr_read_bootflow(struct udevice *dev, struct bootflow *bflow)
|
||||
{
|
||||
struct efi_mgr_priv *priv = dev_get_priv(dev);
|
||||
efi_status_t ret;
|
||||
efi_uintn_t size;
|
||||
u16 *bootorder;
|
||||
|
||||
if (priv->fake_dev) {
|
||||
bflow->state = BOOTFLOWST_READY;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* To be implemented */
|
||||
ret = efi_init_obj_list();
|
||||
if (ret)
|
||||
return log_msg_ret("init", ret);
|
||||
|
||||
/* Enable this method if the "BootOrder" UEFI exists. */
|
||||
bootorder = efi_get_var(u"BootOrder", &efi_global_variable_guid,
|
||||
&size);
|
||||
if (bootorder) {
|
||||
bflow->state = BOOTFLOWST_READY;
|
||||
return 0;
|
||||
}
|
||||
|
||||
return -EINVAL;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue