[U-Boot] [PATCH] cmd: fat: fatload: pass device path for efi payload

Mian Yousaf Kaukab ykaukab at suse.de
Fri May 31 14:03:34 UTC 2019


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_fat_fsload() 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.

load command (do_load_wrapper()) already calls efi_set_bootdev().
There is no need to move the call to do_load() as EFI system partition
is always a FAT partition.

Signed-off-by: Mian Yousaf Kaukab <ykaukab at suse.de>
---
 cmd/fat.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/cmd/fat.c b/cmd/fat.c
index 4b9a7eaab0..04e2055275 100644
--- a/cmd/fat.c
+++ b/cmd/fat.c
@@ -17,6 +17,7 @@
 #include <part.h>
 #include <fat.h>
 #include <fs.h>
+#include <efi_loader.h>
 
 int do_fat_size(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
@@ -33,6 +34,10 @@ U_BOOT_CMD(
 
 int do_fat_fsload (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_FAT);
 }
 
-- 
2.11.0



More information about the U-Boot mailing list