PPC: Record uboot's relocated address in RAM and show in bdinfo.
PATCH 1/1 PPC: Record uboot's relocated address in RAM and show in bdinfo.
From a1d1f6fa9b579c4a766eea45c01224edd536880c Mon Sep 17 00:00:00 2001
From: Richard Retanubun <[email protected]>
Date: Fri, 15 Jan 2010 10:06:06 -0500
Subject: [PATCH] PPC: Record uboot's relocated address in RAM and show in bdinfo.
This commit uses gd->relocaddr variable to store uboot's relocated address in RAM and shows it in bdinfo command.
--- common/cmd_bdinfo.c | 1 + include/asm-ppc/global_data.h | 2 -- lib_ppc/board.c | 8 ++++++++ 3 files changed, 9 insertions(+), 2 deletions(-)
common/cmd_bdinfo.c +1 -0
@@ -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 ; }
include/asm-ppc/global_data.h +0 -2
@@ -152,9 +152,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
lib_ppc/board.c +8 -0
@@ -659,6 +659,14 @@ void board_init_r (gd_t *id, ulong dest_addr)debug ("Now running in RAM - U-Boot at: %08lx\n" , dest_addr); +/* +* Record uboot's address in RAM, useful for debugging; +* CONFIG_AMIGAONEG3SE gets the address during board_init_f. +*/ +#ifndef CONFIG_AMIGAONEG3SE + gd->relocaddr = dest_addr; +#endif +WATCHDOG_RESET ();/*
--
1.6.5
PATCH 1/1 PPC: Record uboot's relocated address in RAM and show in bdinfo.
Hi Richard,
Quoted 48 lines
From
a1d1f6fa9b579c4a766eea45c01224edd536880cMon Sep 17 00:00:00 2001
From: Richard Retanubun <[email protected]>
Date: Fri, 15 Jan 2010 10:06:06 -0500
Subject: [PATCH] PPC: Record uboot's relocated address in RAM and show in bdinfo.This commit uses
gd->relocaddrvariable to store uboot's relocated address in RAM and shows it in bdinfo command.Signed-off-by Richard Retanubun <[email protected]>--- common/cmd_bdinfo.c | 1 + include/asm-ppc/global_data.h | 2 -- lib_ppc/board.c | 8 ++++++++ 3 files changed, 9 insertions(+), 2 deletions(-)common/cmd_bdinfo.c +1
-0@@ -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 ; }include/asm-ppc/global_data.h +0
-2@@ -152,9 +152,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 lib_ppc/board.c +0
-0@@ -659,6 +659,14 @@ void board_init_r (gd_t *id, ulong dest_addr)debug ("Now running in RAM - U-Boot at: %08lx\n" , dest_addr);
lib_ppc/board.c void board_init_r (gd_t *id, ulong dest_addr) · line 670
Quoted 10 lines
lib_ppc/board.c +8
-0+/* +* Record uboot's address in RAM, useful for debugging; +* CONFIG_AMIGAONEG3SE gets the address during board_init_f. +*/ +#ifndef CONFIG_AMIGAONEG3SE + gd->relocaddr = dest_addr; +#endif +WATCHDOG_RESET ();
Please excuse my ignorance, but why not simply remove the #ifdef CONFIG_AMIGAONEG3SE in board_init_f? Actually I was hoping to remove the Amigaone special case.
Cheers
Detlev
Signature · 8 lines
I'm not one of those who think Bill Gates is the devil. I simply
suspect that if Microsoft ever met up with the devil, it wouldn't need
an interpreter.
--NICHOLAS PETRELEY, Sr. Editor, InfoWorld
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.dePATCH 1/1 PPC: Record uboot's relocated address in RAM and show in bdinfo.
Detlev Zundel wrote:
<snip>
Quoted 8 lines
Please excuse my ignorance, but why not simply remove the #ifdef
CONFIG_AMIGAONEG3SEinboard_init_f? Actually I was hoping to remove the Amigaone special case.Cheers
Detlev
I prefer getting the data from board_init_r because we really are running from RAM at that point; dest_addr is a passed in function param.
In board_init_f, the addr variable is just what the calculated address is. If we must do the copy there I'd like to move the gd->relocaddr = addr to just before the call to relocate_code, that way if the calculation code got reworked/refactored, we always copy the correct addr variable.
Plus the line: debug ("Now running in RAM - U-Boot at: %08lx\n", dest_addr); in board_init_r
Is the de-facto place where documentations that I've seen refer to for figuring out where u-boot is relocated, so making the assignment there makes it clearer.
All these leads to my preference of getting it from board_init_r.
I'll be happy to submit a V2 that takes out the CONFIG_AMIGAONEG3SE copy operation in board_init_f as well, but I can't confirm if that does not break the AMIGAONE board.
- Richard
PATCH 1/1 PPC: Record uboot's relocated address in RAM and show in bdinfo.
Hi Richard,
Quoted 7 lines
Detlev Zundel wrote:
<snip>Quoted 5 lines
Please excuse my ignorance, but why not simply remove the #ifdef
CONFIG_AMIGAONEG3SEinboard_init_f? Actually I was hoping to remove the Amigaone special case.
Quoted 6 lines
Quoted 3 lines
Cheers
DetlevI prefer getting the data from
board_init_rbecause we really are running from RAM at that point;dest_addris a passed in function param.
I see, thanks for the explanation.
Quoted 5 lines
In
board_init_f, the addr variable is just what the calculated address is. If we must do the copy there I'd like to move thegd->relocaddr= addr to just before the call torelocate_code, that way if the calculation code got reworked/refactored, we always copy the correct addr variable.
Yes, I also agree - if we want to have it in _f, we should move the assignment.
Quoted 7 lines
Plus the line: debug ("Now running in RAM - U-Boot at: %08lx\n",
dest_addr); inboard_init_rIs the de-facto place where documentations that I've seen refer to for figuring out where u-boot is relocated, so making the assignment there makes it clearer.
All these leads to my preference of getting it from
board_init_r.
Actually I do not have a strong preference myself. The only thing I could think of is that an earlier assignment discloses the information also when debugging problems in relocation. On the other hand if you _do_ debug the relocation it is unlikely that you need the variable, so this argument does not tip the scale in any direction.
Quoted 3 lines
I'll be happy to submit a V2 that takes out the
CONFIG_AMIGAONEG3SEcopy operation inboard_init_fas well, but I can't confirm if that does not break the AMIGAONE board.
Yes, please send such a follow-on patch. Not being able to test a change is rather the norm in U-Boot, so it is acceptable to simply CC the relevant maintainer ("Thomas Frieden <[email protected]>") and if no NACK is seen include the changes anyway at some point.
Thanks
Detlev
Signature · 7 lines
It's like manually inflatable airbags -- people will never
think to use it in time to actually get any help from it.
-- Miles Bader in <[email protected]>
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.dePATCH 1/1 PPC: Record uboot's relocated address in RAM and show in bdinfo.
Quoted 25 lines
Hi Richard,
Quoted 7 lines
Detlev Zundel wrote:
<snip>Quoted 5 lines
Please excuse my ignorance, but why not simply remove the #ifdef
CONFIG_AMIGAONEG3SEinboard_init_f? Actually I was hoping to remove the Amigaone special case.Quoted 6 lines
Quoted 3 lines
Cheers
DetlevI prefer getting the data from
board_init_rbecause we really are running from RAM at that point;dest_addris a passed in function param.I see, thanks for the explanation.
Quoted 5 lines
In
board_init_f, the addr variable is just what the calculated address is. If we must do the copy there I'd like to move thegd->relocaddr= addr to just before the call torelocate_code, that way if the calculation code got reworked/refactored, we always copy the correct addr variable.
Quoted 5 lines
Yes, I also agree - if we want to have it in _f, we should move the assignment.
Quoted 1 line
Plus the line: debug ("Now running in RAM - U-Boot at: %08lx\n",
dest_addr);in
board_init_r
This printout is so useful that it should have its own config option so one can have it always on without enabling debug.
Jocke
PATCH v2 1/1 PPC: Record uboot's relocated address in RAM and show in bdinfo.
In reply to Detlev Zundel From c9b845a6dac24e74ab450aa0bac071b441d16ae9 Mon Sep 17 00:00:00 2001
From: Richard Retanubun <[email protected]>
Date: Fri, 15 Jan 2010 10:06:06 -0500
Subject: [PATCH] PPC: Record uboot's relocated address in RAM and show in bdinfo.
This patch uses gd->relocaddr variable to store uboot's relocated address in RAM and shows it in bdinfo command.
This patch removes CONFIG_AMIGAONEG3SE style copying of the address in board_init_f; it is moved to a common place in board_init_r.
--- common/cmd_bdinfo.c | 1 + include/asm-ppc/global_data.h | 2 -- lib_ppc/board.c | 7 +++---- 3 files changed, 4 insertions(+), 6 deletions(-)
common/cmd_bdinfo.c +1 -0
@@ -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 ; }
include/asm-ppc/global_data.h +0 -2
@@ -152,9 +152,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
lib_ppc/board.c +3 -4
@@ -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 */
@@ -659,6 +655,9 @@ void board_init_r (gd_t *id, ulong dest_addr)debug ("Now running in RAM - U-Boot at: %08lx\n" , dest_addr); +/* Record uboot's address in RAM, useful for debugging. */ + gd->relocaddr = dest_addr; +WATCHDOG_RESET ();/*
--
1.6.5
PATCH v2 1/1 PPC: Record uboot's relocated address in RAM and show in bdinfo.
Hi Richard,
can you please resend the patch - it is strangely whitespace damaged:
Quoted 23 lines
From
c9b845a6dac24e74ab450aa0bac071b441d16ae9Mon Sep 17 00:00:00 2001
From: Richard Retanubun <[email protected]>
Date: Fri, 15 Jan 2010 10:06:06 -0500
Subject: [PATCH] PPC: Record uboot's relocated address in RAM and show in bdinfo.This patch uses
gd->relocaddrvariable to store uboot's relocated address in RAM and shows it in bdinfo command.This patch removes
CONFIG_AMIGAONEG3SEstyle copying of the address inboard_init_f; it is moved to a common place inboard_init_r.Signed-off-by Richard Retanubun <[email protected]>--- common/cmd_bdinfo.c | 1 + include/asm-ppc/global_data.h | 2 -- lib_ppc/board.c | 7 +++---- 3 files changed, 4 insertions(+), 6 deletions(-)common/cmd_bdinfo.c +0
-0
common/cmd_bdinfo.c int do_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) · line 121
Quoted 7 lines
common/cmd_bdinfo.c +1
-0@@ -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 ; }
I did not check why the other hunks fail, but in this one there is a space too much at the beginning of the lines...
Cheers
Detlev
Signature · 9 lines
... that every year or so they're going to give you a new release full of 50 000 additional lines of code all written by monkeys. Because they generally follow the ``million monkeys typing, and eventually they'll come up with something useful'' school of system development. -- Richard M. Stallman -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de
PATCH v3 1/1 PPC: Record uboot's relocated address in RAM and show in bdinfo.
In reply to a message not in the archivePATCH v3 1/1 PPC: Record uboot's relocated address in RAM and show in bdinfo.
Hi Richard,
Quoted 11 lines
Quoted 1 line
From
58e9529fa466ef79232398aeda69373125eb2aacMon Sep 17 00:00:00 2001From: Richard Retanubun <[email protected]>
Date: Fri, 15 Jan 2010 10:06:06 -0500
Subject: [PATCH] PPC: Record uboot's relocated address in RAM and show in bdinfo.This patch uses
gd->relocaddrvariable to store uboot's relocated address in RAM and shows it in bdinfo command.This patch moves
CONFIG_AMIGAONEG3SEstyle copying of the address inboard_init_fto just before relocation is actually done.
Quoted 6 lines
Signed-off-by Richard Retanubun <[email protected]>---
Hi Detlev,Sorry it took a while, got swamped with other tasks. I see your point and have made a patch per your request.
No problem, I know how it is. Thanks for the patch!
Quoted 59 lines
Cheers,
(quoted diff) +0
-1-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(-)common/cmd_bdinfo.c +1
-0@@ -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 ; }include/asm-ppc/global_data.h +0
-2@@ -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 lib_ppc/board.c +2
-4@@ -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);
Signature · 8 lines
We can forgive a man for making a useful thing as long as he does not
admire it. The only excuse for making a useless thing is that one
admires it intensely.
--- Oscar Wilde
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.deWolfgang Denk
AppliedPATCH v3 1/1 PPC: Record uboot's relocated address in RAM and show in bdinfo.
In reply to richardretanubun at ruggedcom.comDear richardretanubun at ruggedcom.com,
Quoted 18 lines · In message <[email protected]> you wrote:
From
58e9529fa466ef79232398aeda69373125eb2aacMon Sep 17 00:00:00 2001
From: Richard Retanubun <[email protected]>
Date: Fri, 15 Jan 2010 10:06:06 -0500
Subject: [PATCH] PPC: Record uboot's relocated address in RAM and show in bdinfo.This patch uses
gd->relocaddrvariable to store uboot's relocated address in RAM and shows it in bdinfo command.This patch moves
CONFIG_AMIGAONEG3SEstyle copying of the address inboard_init_fto just before relocation is actually done.Signed-off-by Richard Retanubun <[email protected]>---
Hi Detlev,Sorry it took a while, got swamped with other tasks. I see your point and have made a patch per your request.
Quoted 8 lines
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(-)
Applied, thanks.
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de One difference between a man and a machine is that a machine is quiet when well oiled.