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

york sun york.sun at nxp.com
Wed Mar 29 15:26:43 UTC 2017


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



More information about the U-Boot mailing list