diff options
author | Heinrich Schuchardt <xypron.glpk@gmx.de> | 2018-11-18 17:58:50 +0100 |
---|---|---|
committer | Alexander Graf <agraf@suse.de> | 2018-12-02 21:59:37 +0100 |
commit | f980c99985dda829f4300bfec32695dfe4731849 (patch) | |
tree | 75b0741f160b42314a020503969061dd628072d1 /lib/fdtdec.c | |
parent | c3772ca1e38f36f2486b44c27094421442414e5e (diff) |
fdt: sandbox: correct use of ${fdtcontroladdr}
The sandbox uses a virtual address space that is neither the physical nor
the virtual address space of the operating system. All address used on the
command line live in this address space. So also the environment variable
${fdtcontroladdr} has to be in this address space.
Commands like bootefi and booti receive the fdt address as parameter.
Without the patch ${fdtcontroladdr} cannot be used as parameter value on
the sandbox.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'lib/fdtdec.c')
-rw-r--r-- | lib/fdtdec.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/fdtdec.c b/lib/fdtdec.c index d28f2cbb1c..cbdc077825 100644 --- a/lib/fdtdec.c +++ b/lib/fdtdec.c @@ -11,6 +11,7 @@ #include <errno.h> #include <fdtdec.h> #include <fdt_support.h> +#include <mapmem.h> #include <linux/libfdt.h> #include <serial.h> #include <asm/sections.h> @@ -1253,8 +1254,9 @@ int fdtdec_setup(void) # if CONFIG_IS_ENABLED(OF_PRIOR_STAGE) gd->fdt_blob = (void *)prior_stage_fdt_address; # else - gd->fdt_blob = (void *)env_get_ulong("fdtcontroladdr", 16, - (uintptr_t)gd->fdt_blob); + gd->fdt_blob = map_sysmem + (env_get_ulong("fdtcontroladdr", 16, + (unsigned long)map_to_sysmem(gd->fdt_blob)), 0); # endif # endif |