From mboxrd@z Thu Jan 1 00:00:00 1970 From: Scott Wood Date: Mon, 24 Sep 2012 19:17:25 -0500 Subject: [U-Boot] [RFC PATCH 08/17] spl/powerpc: introduce CONFIG_SPL_INIT_MINIMAL In-Reply-To: <20120925000337.GO1797@bill-the-cat> (from trini@ti.com on Mon Sep 24 19:03:37 2012) Message-ID: <1348532245.25867.32@snotra> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 > > >[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