From 51c533fdce75fbdec7de28a05a675a553d209bcb Mon Sep 17 00:00:00 2001 From: Heinrich Schuchardt Date: Mon, 28 Aug 2017 18:54:30 +0200 Subject: [PATCH] efi_loader: bootefi hello should use loadaddr Command 'bootefi hello' currently uses CONFIG_SYS_LOAD_ADDR as loading address. qemu machines have by default 128 MiB RAM. CONFIG_SYS_LOAD_ADDR for x86 is 0x20000000 (512 MiB). This causes 'bootefi hello' to fail. We should use the environment variable loadaddr if available. It defaults to 0x1000000 (16 MiB) on qemu_x86. Signed-off-by: Heinrich Schuchardt Signed-off-by: Alexander Graf --- cmd/bootefi.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cmd/bootefi.c b/cmd/bootefi.c index 3196d86..c65c619 100644 --- a/cmd/bootefi.c +++ b/cmd/bootefi.c @@ -299,7 +299,11 @@ static int do_bootefi(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) if (!strcmp(argv[1], "hello")) { ulong size = __efi_hello_world_end - __efi_hello_world_begin; - addr = CONFIG_SYS_LOAD_ADDR; + saddr = env_get("loadaddr"); + if (saddr) + addr = simple_strtoul(saddr, NULL, 16); + else + addr = CONFIG_SYS_LOAD_ADDR; memcpy((char *)addr, __efi_hello_world_begin, size); } else #endif