Additional fix for overlays support in u-boot
This commit is contained in:
parent
d5c6b8a487
commit
1dab6a056e
@ -0,0 +1,46 @@
|
||||
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 | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/u-boot/cmd/fdt.c b/u-boot/cmd/fdt.c
|
||||
index 6883e75..95dd673 100644
|
||||
--- a/u-boot/cmd/fdt.c
|
||||
+++ b/u-boot/cmd/fdt.c
|
||||
@@ -58,7 +58,7 @@ static int fdt_value_setenv(const void *nodep, int len, const char *var)
|
||||
else if (len == 4) {
|
||||
char buf[11];
|
||||
|
||||
- sprintf(buf, "0x%08X", *(uint32_t *)nodep);
|
||||
+ sprintf(buf, "0x%08X", fdt32_to_cpu(*(fdt32_t *)nodep));
|
||||
setenv(var, buf);
|
||||
} else if (len%4 == 0 && len <= 20) {
|
||||
/* Needed to print things like sha1 hashes. */
|
||||
@@ -768,7 +768,7 @@ static int fdt_parse_prop(char * const *newval, int count, char *data, int *len)
|
||||
|
||||
cp = newp;
|
||||
tmp = simple_strtoul(cp, &newp, 0);
|
||||
- *(__be32 *)data = __cpu_to_be32(tmp);
|
||||
+ *(fdt32_t *)data = cpu_to_fdt32(tmp);
|
||||
data += 4;
|
||||
*len += 4;
|
||||
|
||||
--
|
||||
1.7.10.4
|
||||
|
||||
Loading…
Reference in New Issue
Block a user