diff --git a/cmd/bootefi.c b/cmd/bootefi.c
index 3196d86040729487186c241e9b7c36d597bbb6f2..c65c619d6363045fab06de3a9674eded7dc42d6c 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