[U-Boot] [RFC PATCH 08/17] spl/powerpc: introduce CONFIG_SPL_INIT_MINIMAL
Scott Wood
scottwood at freescale.com
Tue Sep 25 02:17:25 CEST 2012
On 09/24/2012 07:03:37 PM, Tom Rini wrote:
> On Mon, Sep 24, 2012 at 06:52:40PM -0500, Scott Wood wrote:
> > On 09/24/2012 06:48:28 PM, Tom Rini wrote:
> > >On Fri, Sep 21, 2012 at 07:01:18PM -0500, Scott Wood wrote:
> > >
> > >> Signed-off-by: Scott Wood <scottwood at freescale.com>
> > >[snip]
> > >> diff --git a/arch/powerpc/cpu/mpc85xx/Makefile
> > >b/arch/powerpc/cpu/mpc85xx/Makefile
> > >> index 33e93c8..c51a774 100644
> > >> --- a/arch/powerpc/cpu/mpc85xx/Makefile
> > >> +++ b/arch/powerpc/cpu/mpc85xx/Makefile
> > >> @@ -28,7 +28,25 @@ include $(TOPDIR)/config.mk
> > >>
> > >> LIB = $(obj)lib$(CPU).o
> > >>
> > >> +MINIMAL=
> > >> +
> > >> +ifdef CONFIG_SPL_BUILD
> > >> +ifdef CONFIG_SPL_INIT_MINIMAL
> > >> +MINIMAL=y
> > >> +endif
> > >> +endif
> > >> +
> > >> +ifdef MINIMAL
> > >> +
> > >> +START = start.o resetvec.o
> > >> +
> > >> +COBJS-y += cpu_init_early.o tlb.o
> > >> +COBJS-$(CONFIG_SPL_NAND_MINIMAL) += cpu_init_nand.o
> > >> +
> > >> +else
> > >
> > >So, maybe it's just personal preference by why not:
> > >START = start.o resetvec.o
> > >ifdef CONFIG_SPL_BUILD
> > >COBJS-$(CONFIG_SPL_INIT_MINIMAL) += cpu_init_early.o tlb.o
> > >COBJS-$(CONFIG_SPL_NAND_MINIMAL) += cpu_init_nand.o
> > >else
> > >....
> >
> > The START line could be factored out, but I don't think the rest
> > works -- where would non-minimal SPL pull in its files?
>
> COBJS-$(CONFIG_WHATEVER_IT_USES) ?
You're assuming that every WHATEVER_IT_USES has its own symbol
(separate from symbols needed by a minimal build), which is something I
was unsuccessful at pushing people to do early in the SPL development.
I'm not optimistic that things will suddenly change. MINIMAL is a wall
that avoids breakage when non-minimal SPL developers add things
sloppily.
Plus, this way non-minimal SPL can just get the whole
arch/powerpc/cpu/mpc85xx and rely on gc-sections, without having to
duplicate things in the makefile and do fine-grained config.
> MINIMAL means CONFIG_SPL_BUILD (true
> of all SPLs) and CONFIG_SPL_INIT_MINIMAL.
CONFIG_SPL_BUILD is always true when you're building the SPL itself,
but it's not always true when CONFIG_SPL_INIT_MINIMAL is defined,
because other than CONFIG_SPL_BUILD the config symbols don't change
when building the main U-Boot.
> So setting
> CONFIG_SPL_NAND_MINIMAL and not being compatible with it could be a
> problem. But is that a likely problem to run into? And probably a
> problem that would best be solved by making cpu_init_nand.o more
> re-usable? Or did you mean something else?
I don't quite understand the above, though cpu_init_nand.o should be
renamed to cpu_init_minimal.o and depend on CONFIG_SPL_INIT_MINIMAL
rather than CONFIG_SPL_NAND_MINIMAL. There's nothing really
NAND-specific about it, other than that NAND is the only place we need
a minimal SPL.
-Scott
More information about the U-Boot
mailing list