On Mon, 27 Feb 2023 at 12:55, Marek Vasut <[email protected]> wrote: > > The address returned from 'fdt get addr' command must be mapped > into sysmem, as this is a working FDT. Access to this address > without mapping it would lead to crash e.g. in sandbox. > > The following command triggers the crash: > " > ./u-boot -Dc 'fdt addr $fdtcontroladdr ; fdt get addr var / compatible ; md > $var' > " > > Signed-off-by: Marek Vasut <[email protected]> > --- > Cc: Heinrich Schuchardt <[email protected]> > Cc: Simon Glass <[email protected]> > Cc: Tom Rini <[email protected]> > --- > cmd/fdt.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-)
Reviewed-by: Simon Glass <[email protected]> > > diff --git a/cmd/fdt.c b/cmd/fdt.c > index bc19303159d..f2576ab4b38 100644 > --- a/cmd/fdt.c > +++ b/cmd/fdt.c > @@ -468,7 +468,8 @@ static int do_fdt(struct cmd_tbl *cmdtp, int flag, int > argc, char *const argv[]) > /* Get address */ > char buf[19]; > > - snprintf(buf, sizeof(buf), "0x%p", > nodep); > + snprintf(buf, sizeof(buf), "0x%lx", > + (ulong)map_to_sysmem(nodep)); > env_set(var, buf); > } else if (subcmd[0] == 's') { > /* Get size */ > -- > 2.39.2 >

