[U-Boot] [PATCH v4] ls1046ardb: SPL size reduction in case of non-xip boot

Sumit Garg sumit.garg at nxp.com
Wed Mar 29 15:36:45 UTC 2017


> -----Original Message-----
> From: york sun
> Sent: Wednesday, March 29, 2017 8:57 PM
> To: Sumit Garg <sumit.garg at nxp.com>; u-boot at lists.denx.de
> Cc: Ruchika Gupta <ruchika.gupta at nxp.com>; Prabhakar Kushwaha
> <prabhakar.kushwaha at nxp.com>; Mingkai Hu <mingkai.hu at nxp.com>; Vini
> Pillai <vinitha.pillai at nxp.com>
> Subject: Re: [PATCH v4] ls1046ardb: SPL size reduction in case of non-xip boot
> 
> On 03/29/2017 05:33 AM, Sumit Garg wrote:
> > Using changes in this patch we were able to reduce approx 4k size of
> > u-boot-spl.bin image. Following is breif description of changes to
> > reduce SPL size:
> > 1. Changes in board/freescale/ls1046ardb/Makefile to remove
> >    compilation of eth.c and cpld.c in case of SPL build.
> > 2. Changes in board/freescale/ls1046ardb/ls1046ardb.c to keep
> >    only ddr_init and board_early_init_f funcations in case of SPL
> >    build.
> > 3. Changes in ls1046a_common.h & ls1046ardb.h to remove driver
> >    specific macros due to which static data was being compiled in
> >    case of SPL build.
> > 4. Disable MMC driver from bieng compiled in case of SPL NAND
> >    build and NAND driver from bieng compiled in case of SPL MMC build.
> >
> > Signed-off-by: Vinitha Pillai <vinitha.pillai at nxp.com>
> > Signed-off-by: Sumit Garg <sumit.garg at nxp.com>
> > ---
> >
> > Changes in v4:
> > Rename macros in header files.
> >
> > Changes in v3:
> > Reorganised way to remove driver macros in ls1046a_common.h &
> > ls1046ardb.h files for easy maintainability.
> >
> > Changes in v2:
> > Rebased and fixed compilation warning on ls1046aqds.
> >
> >  board/freescale/ls1046aqds/Makefile     |  2 ++
> >  board/freescale/ls1046ardb/Makefile     |  4 +++-
> >  board/freescale/ls1046ardb/ls1046ardb.c | 16 +++++++++-------
> >  include/configs/ls1046a_common.h        | 23 +++++++++++++++++++++++
> >  include/configs/ls1046ardb.h            | 25 ++++++++++++++++++++++++-
> >  5 files changed, 61 insertions(+), 9 deletions(-)
> >
> > diff --git a/board/freescale/ls1046aqds/Makefile
> > b/board/freescale/ls1046aqds/Makefile
> > index df6e546..6267522 100644
> > --- a/board/freescale/ls1046aqds/Makefile
> > +++ b/board/freescale/ls1046aqds/Makefile
> > @@ -5,5 +5,7 @@
> >  #
> >
> >  obj-y += ddr.o
> > +ifndef CONFIG_SPL_BUILD
> >  obj-y += eth.o
> > +endif
> >  obj-y += ls1046aqds.o
> > diff --git a/board/freescale/ls1046ardb/Makefile
> > b/board/freescale/ls1046ardb/Makefile
> > index 348eb76..b92ed0b 100644
> > --- a/board/freescale/ls1046ardb/Makefile
> > +++ b/board/freescale/ls1046ardb/Makefile
> > @@ -4,7 +4,9 @@
> >  # SPDX-License-Identifier:	GPL-2.0+
> >  #
> >
> > -obj-y += cpld.o
> >  obj-y += ddr.o
> >  obj-y += ls1046ardb.o
> > +ifndef CONFIG_SPL_BUILD
> >  obj-$(CONFIG_SYS_DPAA_FMAN) += eth.o
> > +obj-y += cpld.o
> > +endif
> > diff --git a/board/freescale/ls1046ardb/ls1046ardb.c
> > b/board/freescale/ls1046ardb/ls1046ardb.c
> > index 02b6c4c..0cc508b 100644
> > --- a/board/freescale/ls1046ardb/ls1046ardb.c
> > +++ b/board/freescale/ls1046ardb/ls1046ardb.c
> > @@ -24,6 +24,14 @@
> >
> >  DECLARE_GLOBAL_DATA_PTR;
> >
> > +int board_early_init_f(void)
> > +{
> > +	fsl_lsch2_early_init_f();
> > +
> > +	return 0;
> > +}
> > +
> > +#ifndef CONFIG_SPL_BUILD
> >  int checkboard(void)
> >  {
> >  	static const char *freq[2] = {"100.00MHZ", "156.25MHZ"}; @@ -56,13
> > +64,6 @@ int checkboard(void)
> >  	return 0;
> >  }
> >
> > -int board_early_init_f(void)
> > -{
> > -	fsl_lsch2_early_init_f();
> > -
> > -	return 0;
> > -}
> > -
> >  int board_init(void)
> >  {
> >  	struct ccsr_scfg *scfg = (struct ccsr_scfg
> > *)CONFIG_SYS_FSL_SCFG_ADDR; @@ -161,3 +162,4 @@ int
> > ft_board_setup(void *blob, bd_t *bd)
> >
> >  	return 0;
> >  }
> > +#endif
> > diff --git a/include/configs/ls1046a_common.h
> > b/include/configs/ls1046a_common.h
> > index 1ed7517..b77edda 100644
> > --- a/include/configs/ls1046a_common.h
> > +++ b/include/configs/ls1046a_common.h
> > @@ -7,6 +7,17 @@
> >  #ifndef __LS1046A_COMMON_H
> >  #define __LS1046A_COMMON_H
> >
> > +/* SPL build */
> > +#ifdef CONFIG_SPL_BUILD
> > +#define SPL_NO_QBMAN
> > +#define SPL_NO_FMAN_UCODE
> > +#define SPL_NO_CMD_ENV
> > +#define SPL_NO_MISC
> > +#endif
> > +#if (defined(CONFIG_SPL_BUILD) && defined(CONFIG_NAND_BOOT))
> #define
> > +SPL_NO_MMC #endif
> > +
> >  #define CONFIG_REMAKE_ELF
> >  #define CONFIG_FSL_LAYERSCAPE
> >  #define CONFIG_MP
> > @@ -109,20 +120,28 @@
> >  #define CONFIG_SYS_I2C_MXC_I2C4
> >
> >  /* Command line configuration */
> > +#ifndef SPL_NO_CMD_ENV
> >  #define CONFIG_CMD_ENV
> > +#endif
> >
> >  /* MMC */
> > +#ifndef SPL_NO_MMC
> >  #ifdef CONFIG_MMC
> >  #define CONFIG_FSL_ESDHC
> >  #define CONFIG_SYS_FSL_MMC_HAS_CAPBLT_VS33
> >  #endif
> > +#endif
> >
> > +#ifndef SPL_NO_QBMAN
> >  #define CONFIG_SYS_DPAA_QBMAN		/* Support Q/Bman */
> > +#endif
> >
> >  /* FMan ucode */
> > +#ifndef SPL_NO_FMAN_UCODE
> >  #define CONFIG_SYS_DPAA_FMAN
> >  #ifdef CONFIG_SYS_DPAA_FMAN
> >  #define CONFIG_SYS_FM_MURAM_SIZE	0x60000
> > +#endif
> >
> >  #ifdef CONFIG_SD_BOOT
> >  /*
> > @@ -156,6 +175,7 @@
> >  #define CONFIG_HWCONFIG
> >  #define HWCONFIG_BUFFER_SIZE		128
> >
> > +#ifndef SPL_NO_MISC
> >  /* Initial environment variables */
> >  #define CONFIG_EXTRA_ENV_SETTINGS		\
> >  	"hwconfig=fsl_ddr:bank_intlv=auto\0"	\
> > @@ -173,13 +193,16 @@
> >  #define CONFIG_BOOTARGS			"console=ttyS0,115200
> root=/dev/ram0 " \
> >  					"earlycon=uart8250,mmio,0x21c0500 " \
> >  					MTDPARTS_DEFAULT
> > +#endif
> >  /* Monitor Command Prompt */
> >  #define CONFIG_SYS_CBSIZE		512	/* Console I/O Buffer
> Size */
> >  #define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE + \
> >  					sizeof(CONFIG_SYS_PROMPT) + 16)
> >  #define CONFIG_SYS_BARGSIZE		CONFIG_SYS_CBSIZE /* Boot
> args buffer */
> >  #define CONFIG_SYS_LONGHELP
> > +#ifndef SPL_NO_MISC
> >  #define CONFIG_CMDLINE_EDITING		1
> > +#endif
> >  #define CONFIG_AUTO_COMPLETE
> >  #define CONFIG_SYS_MAXARGS		64	/* max command args
> */
> >
> > diff --git a/include/configs/ls1046ardb.h
> > b/include/configs/ls1046ardb.h index 2141b82..c01eb1f 100644
> > --- a/include/configs/ls1046ardb.h
> > +++ b/include/configs/ls1046ardb.h
> > @@ -9,6 +9,18 @@
> >
> >  #include "ls1046a_common.h"
> >
> > +/* SPL build */
> > +#ifdef CONFIG_SPL_BUILD
> > +#define SPL_NO_FMAN
> > +#define SPL_NO_QSPI
> > +#define SPL_NO_USB
> > +#define SPL_NO_SATA
> > +#define SPL_NO_ENV
> > +#endif
> > +#if (defined(CONFIG_SPL_BUILD) && defined(CONFIG_SD_BOOT)) #define
> > +SPL_NO_IFC #endif
> 
> Are these RDB specific? Why not put this block into the common header?
> 
> York

Yes these macros are used to mask macros in RDB header file from inclusion during SPL build. Also this block can be put in common header but I am not sure how many of above macros relevant for the QDS header file.

Sumit


More information about the U-Boot mailing list