[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