[U-Boot] [PATCH] NAND: Allow nand_ids and nand_bbt to be compiled in SPL

Tom Rini tom.rini at gmail.com
Thu Jan 5 04:11:26 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.

-- 
Tom


More information about the U-Boot mailing list