[PATCH] PPC: Record uboot's relocated address in RAM and show in bdinfo.

Richard Retanubun RichardRetanubun at RuggedCom.com
Fri Jan 15 16:06:06 CET 2010


This patch uses gd->relocaddr variable to store uboot's relocated
address in RAM and shows it in bdinfo command.

This patch moves CONFIG_AMIGAONEG3SE style copying of the address
in board_init_f to just before relocation is actually done.

Signed-off-by: Richard Retanubun <RichardRetanubun at RuggedCom.com>
---
Hi Detlev, 

Sorry it took a while, got swamped with other tasks.
I see your point and have made a patch per your request.

Cheers,

-Richard

 common/cmd_bdinfo.c           |    1 +
 include/asm-ppc/global_data.h |    2 --
 lib_ppc/board.c               |    6 ++----
 3 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/common/cmd_bdinfo.c b/common/cmd_bdinfo.c
index 11c1547..f8400bc 100644
--- a/common/cmd_bdinfo.c
+++ b/common/cmd_bdinfo.c
@@ -115,6 +115,7 @@ int do_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 #endif
 	printf ("IP addr     = %pI4\n", &bd->bi_ip_addr);
 	printf ("baudrate    = %6ld bps\n", bd->bi_baudrate   );
+	print_num ("relocaddr", gd->relocaddr);
 	return 0;
 }
 
diff --git a/include/asm-ppc/global_data.h b/include/asm-ppc/global_data.h
index 55e7e20..e031fdb 100644
--- a/include/asm-ppc/global_data.h
+++ b/include/asm-ppc/global_data.h
@@ -149,9 +149,7 @@ typedef	struct	global_data {
     defined(CONFIG_SANDPOINT)
 	void *		console_addr;
 #endif
-#ifdef CONFIG_AMIGAONEG3SE
 	unsigned long	relocaddr;	/* Start address of U-Boot in RAM */
-#endif
 #if defined(CONFIG_LCD) || defined(CONFIG_VIDEO)
 	unsigned long	fb_base;	/* Base address of framebuffer memory	*/
 #endif
diff --git a/lib_ppc/board.c b/lib_ppc/board.c
index dd22f99..1e3fe59 100644
--- a/lib_ppc/board.c
+++ b/lib_ppc/board.c
@@ -476,10 +476,6 @@ void board_init_f (ulong bootflag)
 
 	debug ("Reserving %ldk for U-Boot at: %08lx\n", len >> 10, addr);
 
-#ifdef CONFIG_AMIGAONEG3SE
-	gd->relocaddr = addr;
-#endif
-
 	/*
 	 * reserve memory for malloc() arena
 	 */
@@ -611,6 +607,8 @@ void board_init_f (ulong bootflag)
 
 	WATCHDOG_RESET();
 
+	gd->relocaddr = addr; /* Record relocation address, useful for debug */
+
 	memcpy (id, (void *)gd, sizeof (gd_t));
 
 	relocate_code (addr_sp, id, addr);
-- 
1.6.5



More information about the U-Boot mailing list