[U-Boot] [PATCH] NAND: Allow nand_ids and nand_bbt to be compiled in SPL
Marek Vasut
marek.vasut at gmail.com
Thu Jan 5 10:09:54 CET 2012
> On Wed, Jan 4, 2012 at 4:56 PM, Scott Wood <scottwood at freescale.com> wrote:
> > On 12/05/2011 05:17 PM, Marek Vasut wrote:
> >> This will be beneficial for the PXA3XX NAND driver, which uses the NAND
> >> IDs to identify the chip and configure the controller accordingly.
> >>
> >> Signed-off-by: Marek Vasut <marek.vasut at gmail.com>
> >> Cc: Scott Wood <scottwood at freescale.com>
> >> ---
> >> drivers/mtd/nand/Makefile | 4 ++--
> >> 1 files changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/drivers/mtd/nand/Makefile b/drivers/mtd/nand/Makefile
> >> index a63c0e4..46e79e3 100644
> >> --- a/drivers/mtd/nand/Makefile
> >> +++ b/drivers/mtd/nand/Makefile
> >> @@ -35,10 +35,10 @@ COBJS-y += nand_spl_load.o
> >> endif
> >> else
> >> COBJS-y += nand.o
> >> -COBJS-y += nand_bbt.o
> >> -COBJS-y += nand_ids.o
> >> COBJS-y += nand_util.o
> >> endif
> >> +COBJS-y += nand_bbt.o
> >> +COBJS-y += nand_ids.o
> >> COBJS-y += nand_ecc.o
> >> COBJS-y += nand_base.o
> >
> > So, in theory with gc-sections this shouldn't increase the size of any
> > SPL that currently successfully links (at least in the absence of things
> > like weak symbols). However, I observed a devkit8000 build go from this:
> >
> > text data bss dec hex filename
> > 40709 1792 197764 240265 3aa89 /tmp/u-boot-arm/spl/u-boot-spl
> >
> > to this:
> >
> > text data bss dec hex filename
> > 42277 1792 197764 241833 3b0a9 /tmp/u-boot-arm/spl/u-boot-spl
> >
> > I verified that --function-sections/-fdata-sections/--gc-sections are
> > being used on the SPL. It looks like strings are not getting dropped.
> >
> > If there's no way to fix this, this is going to be a big problem for the
> > existing users of nand_spl to migrate to the new SPL model, unless the
> > notion of "include a bunch of stuff and let gc-sections take care of it"
> > is dropped.
>
> I'll confirm gc-sections/etc are not as awesome as we think. You can
> drop the size of current SPL builds (for say devkit8000) by taking
> things that should be dropped for us and forcing them out with #ifndef
> CONFIG_SPL_BUILD.
Maybe if we had those LTO tables at the gc-sections time, it'd drop. But we
can't rely on those.
So instead of compiling in the nand-ids, it'd be better to allow SPL to pull in
the whole NAND/MTD stack.
M
More information about the U-Boot
mailing list