[U-Boot-Users] [PATCH] ARM926: compile cpu_init_crit function only if CONFIG_SKIP_LOWLEVEL_INIT is not defined

Dirk Behme dirk.behme at googlemail.com
Wed Dec 19 09:58:58 CET 2007


Gururaja Hebbar K R wrote:
> Hi,
>  
> At present in "start.S" inside cpu\arm926ejs,   cpu_init_crit is called 
> only if "CONFIG_SKIP_LOWLEVEL_INIT" is not defined
>  
> #ifndef CONFIG_SKIP_LOWLEVEL_INIT
>  bl cpu_init_crit
> #endif
>  
> But "cpu_init_crit" function  doesnt have any if defs which means 
> cpu_init_crit function will compile irrespective of  
> "CONFIG_SKIP_LOWLEVEL_INIT". 

Yes, thats clear.

> Hence the patch. The same is done in other 
> processor files. Kindly check "cpu\arm920t\start.S"

So the only reason that you do this is because its done in other files 
this way as well?

To not execute cpu_init_crit the existing ifndef is sufficent. But my 
point is: When you want to decrease resulting binary size by excluding 
unnecessary code (cpu_init_crit), then you should also exclude the 
then unused board specific lowlevel_init called from cpu_init_crit as 
well.

Dirk

> ------------------------------------------------------------------------
> *From:* Dirk Behme [mailto:dirk.behme at googlemail.com]
> *Sent:* Wed 19-Dec-07 3:27 PM
> *To:* Gururaja Hebbar K R
> *Cc:* u-boot-users at lists.sourceforge.net
> *Subject:* Re: [U-Boot-Users] [PATCH] ARM926: compile cpu_init_crit 
> function only if CONFIG_SKIP_LOWLEVEL_INIT is not defined
> 
> Hebbar wrote:
>  > This patches allows cpu_init_crit function to be compilled only if
>  > CONFIG_SKIP_LOWLEVEL_INIT is not defined. At present irrespective of
>  > CONFIG_SKIP_LOWLEVEL_INIT, cpu_init_crit is always compilled. This is for
>  > arm926ejs module.
>  >
>  > Signed-off-by: K R Gururaja Hebbar <gururajakr at sanyo.co.in>
>  >
>  >
>  > --- u-boot-1.3.1/cpu/arm926ejs/start.S        2007-12-06 
> 01:21:19.000000000 -0800
>  > +++ uboot/cpu/arm926ejs/start.S       2007-12-19 08:40:37.296875000 -0800
>  > @@ -187,7 +187,7 @@ clbss_l:str       r2, [r0]                /* 
> clear loop... 
>  >  _start_armboot:
>  >       .word start_armboot
>  > 
>  > -
>  > +#ifndef CONFIG_SKIP_LOWLEVEL_INIT
>  >  /*
>  >   
> *************************************************************************
>  >   *
>  > @@ -225,6 +225,9 @@ cpu_init_crit:
>  >       bl      lowlevel_init   /* go setup pll,mux,memory */
>  >       mov     lr, ip          /* restore link */
>  >       mov     pc, lr          /* back to my caller */
>  > +    
>  > +#endif /* CONFIG_SKIP_LOWLEVEL_INIT */
>  > +    
>  >  /*
>  >   
> *************************************************************************
>  >   *
>  > I welcome comments, complaints, suggestions and advices.
> 
> The reason for this is to decrease resulting binary size? If so, all
> lowlevel_init() should be encapsulated as well to save even more space?
> 
> Dirk
> 





More information about the U-Boot mailing list