cmd/fdt: Make fdt get value endian-safe for single-cell properties
authorAndreas Färber <afaerber@suse.de>
Mon, 9 Jan 2017 15:08:02 +0000 (16:08 +0100)
committerSimon Glass <sjg@chromium.org>
Sat, 14 Jan 2017 17:09:46 +0000 (10:09 -0700)
commitb05bf6c75d03c925737e228472b694cbeaa503c2
tree22ed1bd68550422392a5b28759d81257a20d3e17
parent082b1414e80ffa94569613705eac319488324516
cmd/fdt: Make fdt get value endian-safe for single-cell properties

On a Raspberry Pi 2 disagreements on cell endianness can be observed:

  U-Boot> fdt print /soc/gpio@7e200000 phandle
  phandle = <0x0000000d>
  U-Boot> fdt get value myvar /soc/gpio@7e200000 phandle; printenv myvar
  myvar=0x0D000000

Fix this by always treating the pointer as BE and converting it in
fdt_value_setenv(), like its counterpart fdt_parse_prop() already does.

Consistently use fdt32_t, fdt32_to_cpu() and cpu_to_fdt32().

Fixes: bc80295 ("fdt: Add get commands to fdt")
Cc: Joe Hershberger <joe.hershberger@ni.com>
Cc: Gerald Van Baren <gvb@unssw.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
Acked-by: Simon Glass <sjg@chromium.org>
cmd/fdt.c