[U-Boot] [PATCH 1/2] common/board_f: Add back gd init

Scott Wood scottwood at freescale.com
Wed Apr 30 19:57:09 CEST 2014


On Wed, 2014-04-30 at 10:33 -0700, York Sun wrote:
> On 04/28/2014 03:51 PM, York Sun wrote:
> > For powerpc SoCs, the initial gd is in INIT_RAM, in most cases, resideing
> > in locked D-cache. At the time the function baord_inti_f() runs, no other
> > RAM is available as a stack. This technique has been used in
> > arch/powerpc/lib/board.c and should be added to generic board for powerpc.
> > 
> > Signed-off-by: York Sun <yorksun at freescale.com>
> > ---
> >  common/board_f.c |    5 ++++-
> >  1 file changed, 4 insertions(+), 1 deletion(-)
> > 
> > diff --git a/common/board_f.c b/common/board_f.c
> > index cbdf06f..3a00b92 100644
> > --- a/common/board_f.c
> > +++ b/common/board_f.c
> > @@ -970,7 +970,10 @@ static init_fnc_t init_sequence_f[] = {
> >  
> >  void board_init_f(ulong boot_flags)
> >  {
> > -#ifndef CONFIG_X86
> > +#ifdef CONFIG_PPC
> > +	gd = (gd_t *)(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_GBL_DATA_OFFSET);
> > +	__asm__ __volatile__("" : : : "memory");
> > +#elif !defined(CONFIG_X86)
> >  	gd_t data;
> >  
> >  	gd = &data;
> > 
> 
> Scott,
> 
> Please review this patch.

Could you respond to the comments in the RFC patch?  No point
duplicating them.

>  You mentioned in my RFC patch review that "gd is
> already initialized at the beginning of board_init_f()". I think that's not the
> case. This change is still needed to get gd correct value.

Could you elaborate?  You're setting it to the same value that
cpu_init_early_f() set it to (on mpc85xx -- not all PPC).

-Scott




More information about the U-Boot mailing list