]> git.dujemihanovic.xyz Git - u-boot.git/commit
cmd: fdt: move: Use map_sysmem to convert pointers
authorAndre Przywara <andre.przywara@arm.com>
Fri, 10 Feb 2023 11:02:11 +0000 (11:02 +0000)
committerSimon Glass <sjg@chromium.org>
Mon, 13 Feb 2023 00:33:51 +0000 (17:33 -0700)
commit645973461975b672c5471cb9e047274b27cf8840
tree651f0cb8893a1e91e2b066d49aaf07ba9fadfb12
parent193d3dbd452f64c0a32854708974402d4a0d675d
cmd: fdt: move: Use map_sysmem to convert pointers

The "fdt move" subcommand was using the provided DTB addresses directly,
without trying to "map" them into U-Boot's address space. This happened
to work since on the vast majority of "real" platforms there is a simple
1:1 mapping of VA to PAs, so either value works fine.

However this is not true on the sandbox, so the "fdt move" command fails
there miserably:
=> fdt addr $fdtcontroladdr
=> cp.l $fdtcontroladdr $fdt_addr_r 40  # simple memcpy works
=> fdt move $fdtcontroladdr $fdt_addr_r
Segmentation fault

Use the proper "map_sysmem" call to convert PAs to VAs, to make this
more robust in general and to enable operation in the sandbox.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
cmd/fdt.c