From ee88eacbdd840199a3dec707234579fb15ddd46a Mon Sep 17 00:00:00 2001 From: Mian Yousaf Kaukab Date: Tue, 18 Jun 2019 15:03:44 +0200 Subject: [PATCH] fs: do_load: pass device path for efi payload MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit fatload command can be used to load the EFI payload since EFI system partition is always a FAT partition. Call into EFI code from do_load() to set the device path from which the last binary was loaded. An EFI application like grub2 can’t find its configuration file without the device path set. Since device path is now set in do_load() there is no need to set it in do_load_wrapper() for the load command. Signed-off-by: Mian Yousaf Kaukab Reviewed-by: Heinrich Schuchardt --- cmd/fs.c | 5 ----- fs/fs.c | 5 +++++ 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cmd/fs.c b/cmd/fs.c index aaafbf9b52..db74767b7b 100644 --- a/cmd/fs.c +++ b/cmd/fs.c @@ -8,7 +8,6 @@ #include #include #include -#include static int do_size_wrapper(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { @@ -26,10 +25,6 @@ U_BOOT_CMD( static int do_load_wrapper(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { -#ifdef CONFIG_CMD_BOOTEFI - efi_set_bootdev(argv[1], (argc > 2) ? argv[2] : "", - (argc > 4) ? argv[4] : ""); -#endif return do_load(cmdtp, flag, argc, argv, FS_TYPE_ANY); } diff --git a/fs/fs.c b/fs/fs.c index 736ebef4a9..48d8f1f6da 100644 --- a/fs/fs.c +++ b/fs/fs.c @@ -17,6 +17,7 @@ #include #include #include +#include DECLARE_GLOBAL_DATA_PTR; @@ -700,6 +701,10 @@ int do_load(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[], else pos = 0; +#ifdef CONFIG_CMD_BOOTEFI + efi_set_bootdev(argv[1], (argc > 2) ? argv[2] : "", + (argc > 4) ? argv[4] : ""); +#endif time = get_timer(0); ret = _fs_read(filename, addr, pos, bytes, 1, &len_read); time = get_timer(time); -- 2.39.5