
Commit 90fbee3e4051 ("cmd_fdt: Actually fix fdt command in sandbox") changed the format(from hex address to unsigned long) in which "fdtaddr" is saved . However do_fdt continues reads the "fdtaddr" assuming it to be in hex format. This may lead to fdt being either loaded or attempted to load at erroneous address generating fault if the address is out of memory.
This patch changes back the format to hex while saving the "fdtaddr" as it was done before.
Cc: Linus Walleij linus.walleij@linaro.org Cc: Tom Rini trini@konsulko.com Cc: Simon Glass sjg@chromium.org Cc: Hua Yanghao huayanghao@gmail.com Cc: Heiko Schocher hs@denx.de --- common/cmd_fdt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Hi,
You will see my signoff missing and it's intentional as I officially can't contribute to Uboot. I found this issue and it's been there for a while now, so thought of atleast reporting it(with a patch). So if anyone can review and submit this or any appropriate fix that would be great. I see this issue on vexpress TC2.
Regards, Sudeep
diff --git a/common/cmd_fdt.c b/common/cmd_fdt.c index 682b6553958f..4c18962d8532 100644 --- a/common/cmd_fdt.c +++ b/common/cmd_fdt.c @@ -45,7 +45,7 @@ void set_working_fdt_addr(ulong addr)
buf = map_sysmem(addr, 0); working_fdt = buf; - setenv_ulong("fdtaddr", addr); + setenv_hex("fdtaddr", addr); }
/* -- 1.9.1