On 28.08.17 18:54, Heinrich Schuchardt wrote:
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 <xypron.g...@gmx.de>
---
cmd/bootefi.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/cmd/bootefi.c b/cmd/bootefi.c
index 47771f87cc..a3768158a2 100644
--- a/cmd/bootefi.c
+++ b/cmd/bootefi.c
@@ -300,7 +300,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;
I'm not terribly happy about that logic. Ideally I would want to have it
load to *one* explicit address, not multiple ones.
Maybe we could just always memalign() a region?
Alternatively if we can not use memalign, I would rather drop the
CONFIG_SYS_LOAD_ADDR branch and *only* rely on loadaddr.
Alex
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot