diff options
author | Sughosh Ganu <sughosh.ganu@linaro.org> | 2020-12-30 19:27:11 +0530 |
---|---|---|
committer | Heinrich Schuchardt <xypron.glpk@gmx.de> | 2020-12-31 14:41:31 +0100 |
commit | 7407595286f81d18eb14a9c4d8d90bdd159d6a5c (patch) | |
tree | 391bace6513374854705aa91f75bd497c776d1cb | |
parent | 88a2ef2720f58508d763c66e1033604edb97590b (diff) | |
download | u-boot-7407595286f81d18eb14a9c4d8d90bdd159d6a5c.zip u-boot-7407595286f81d18eb14a9c4d8d90bdd159d6a5c.tar.gz u-boot-7407595286f81d18eb14a9c4d8d90bdd159d6a5c.tar.bz2 |
efidebug: capsule: Add a command to update capsule on disk
Add a efidebug subcommand to initiate a firmware update using the efi
firmware management protocol(fmp) set_image routine.
The firmware update can be initiated through
'efidebug capsule disk-update'
This would locate the efi capsule file on the efi system partition,
and call the platform's set_image fmp routine to initiate the firmware
update.
Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
-rw-r--r-- | cmd/efidebug.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/cmd/efidebug.c b/cmd/efidebug.c index fa9d7fe..5fb7b1e 100644 --- a/cmd/efidebug.c +++ b/cmd/efidebug.c @@ -79,6 +79,16 @@ static int do_efi_capsule_update(struct cmd_tbl *cmdtp, int flag, return CMD_RET_SUCCESS; } +static int do_efi_capsule_on_disk_update(struct cmd_tbl *cmdtp, int flag, + int argc, char * const argv[]) +{ + efi_status_t ret; + + ret = efi_launch_capsules(); + + return ret == EFI_SUCCESS ? CMD_RET_SUCCESS : CMD_RET_FAILURE; +} + /** * do_efi_capsule_show() - show capsule information * @@ -207,6 +217,8 @@ static struct cmd_tbl cmd_efidebug_capsule_sub[] = { "", ""), U_BOOT_CMD_MKENT(show, CONFIG_SYS_MAXARGS, 1, do_efi_capsule_show, "", ""), + U_BOOT_CMD_MKENT(disk-update, 0, 0, do_efi_capsule_on_disk_update, + "", ""), U_BOOT_CMD_MKENT(result, CONFIG_SYS_MAXARGS, 1, do_efi_capsule_res, "", ""), }; @@ -1544,6 +1556,8 @@ static char efidebug_help_text[] = #ifdef CONFIG_EFI_HAVE_CAPSULE_SUPPORT "efidebug capsule update [-v] <capsule address>\n" " - process a capsule\n" + "efidebug capsule disk-update\n" + " - update a capsule from disk\n" "efidebug capsule show <capsule address>\n" " - show capsule information\n" "efidebug capsule result [<capsule result var>]\n" |