[U-Boot] [PATCH 1/1] cmd, fdt: fix working_fdt is set to wrong value

Hua Yanghao huayanghao at gmail.com
Sun Dec 21 21:45:59 CET 2014


Being a long time u-boot developer, this is the first time I'm trying
to get some fix for the open source code back to mainline.
If anything wrong during the process, please be gentle :-) Thank you.

>From 225c8f8f2af4cf6092260e5c133d90096e2f3352 Mon Sep 17 00:00:00 2001
From: Hua Yanghao <huayanghao at gmail.com>
Date: Mon, 22 Dec 2014 04:32:39 +0800
Subject: [PATCH 1/1] cmd, fdt: fix working_fdt is set to wrong value

Instead of setting working_fdt to map_sysmem(addr) (e.g. blob), it should be set
to addr directly as inside set_working_fdt_addr it uses map_sysmem(addr) again.
To test: ./u-boot -d dts/dt.bin , then issue: fdt addr 0x100, fdt print will
then cause an segmentation fault. After this fix fdt print is functional.
---
 common/cmd_fdt.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/common/cmd_fdt.c b/common/cmd_fdt.c
index 5640ded..d5eebcb 100644
--- a/common/cmd_fdt.c
+++ b/common/cmd_fdt.c
@@ -123,7 +123,7 @@ static int do_fdt(cmd_tbl_t *cmdtp, int flag, int
argc, char * const argv[])
  if (control)
  gd->fdt_blob = blob;
  else
- set_working_fdt_addr(blob);
+ set_working_fdt_addr((void *)addr);

  if (argc >= 2) {
  int  len;
-- 
2.1.0


More information about the U-Boot mailing list