Patchwork [U-Boot] common/cmd_fdt.c: fix wrong data displayed in fdt print

login
register
mail settings
Submitter Haojian Zhuang
Date May 23, 2011, 7:53 a.m.
Message ID <1306137210-31942-1-git-send-email-haojian.zhuang@marvell.com>
Download mbox | patch
Permalink /patch/96834/
State Accepted
Commit b79003627d0cf5ec1443e40d8faa7471657f0f33
Headers show

Comments

Haojian Zhuang - May 23, 2011, 7:53 a.m.
From: Haojian Zhuang <haojian.zhuang@gmail.com>

All data in dtb is big endian. Some ARM devices are little-endian.
In print_data(), it displays data with big-endian format. For ARM device,
data should be converted to little-endian first.

Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Cc: Gerald Van Baren <vanbaren@cideas.com>
---
 common/cmd_fdt.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Wolfgang Denk - June 1, 2011, 8:45 p.m.
Dear Haojian Zhuang,

In message <1306137210-31942-1-git-send-email-haojian.zhuang@marvell.com> you wrote:
> From: Haojian Zhuang <haojian.zhuang@gmail.com>
> 
> All data in dtb is big endian. Some ARM devices are little-endian.
> In print_data(), it displays data with big-endian format. For ARM device,
> data should be converted to little-endian first.
> 
> Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
> Cc: Gerald Van Baren <vanbaren@cideas.com>
> ---
>  common/cmd_fdt.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)

Applied, thanks.


Gerald, I hope this is OK with you?

Best regards,

Wolfgang Denk
Jerry Van Baren - June 1, 2011, 9:02 p.m.
On 06/01/2011 04:45 PM, Wolfgang Denk wrote:
> Dear Haojian Zhuang,
>
> In message<1306137210-31942-1-git-send-email-haojian.zhuang@marvell.com>  you wrote:

[snip]

> Applied, thanks.
>
> Gerald, I hope this is OK with you?

Yes.

> Best regards,
> Wolfgang Denk

Thanks,
gvb

Patch

diff --git a/common/cmd_fdt.c b/common/cmd_fdt.c
index 3d0c2b7..9bdecca 100644
--- a/common/cmd_fdt.c
+++ b/common/cmd_fdt.c
@@ -665,7 +665,7 @@  static void print_data(const void *data, int len)
 
 		printf("<");
 		for (j = 0, p = data; j < len/4; j ++)
-			printf("0x%x%s", p[j], j < (len/4 - 1) ? " " : "");
+			printf("0x%x%s", fdt32_to_cpu(p[j]), j < (len/4 - 1) ? " " : "");
 		printf(">");
 	} else { /* anything else... hexdump */
 		const u8 *s;