[U-Boot] [PATCH v5] ls1043ardb: SPL size reduction

York Sun york.sun at nxp.com
Mon Apr 10 16:07:35 UTC 2017


On 03/29/2017 09:55 AM, Sumit Garg wrote:
> Using changes in this patch we were able to reduce approx 10k
> size of u-boot-spl.bin image. Following is breif description of
> changes to reduce SPL size:
> 1. Changes in board/freescale/ls1043ardb/Makefile to remove
>    compilation of eth.c and cpld.c in case of SPL build.
> 2. Changes in board/freescale/ls1043ardb/ls1043ardb.c to keep
>    only ddr_init and board_early_init_f funcations in case of SPL
>    build.
> 3. Changes in ls1043a_common.h & ls1043ardb.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.
> 5. Remove I2C driver support from SPL in case of LS1043ARDB.
>
> Signed-off-by: Vinitha Pillai <vinitha.pillai at nxp.com>
> Signed-off-by: Sumit Garg <sumit.garg at nxp.com>
> ---
>
> Changes in v5:
> Move macros from rdb specfic header file to common header file.
>
> Changes in v4:
> Rename macros in header files.
>
> Changes in v3:
> Reorganised way to remove driver macros in ls1043a_common.h & ls1043ardb.h
> files for easy maintainability.
>
> Changes in v2:
> Rebased and fixed compilation warning on ls1043aqds.
>
>  board/freescale/ls1043aqds/Makefile     |  2 ++
>  board/freescale/ls1043ardb/Makefile     |  4 +++-
>  board/freescale/ls1043ardb/ls1043ardb.c | 18 +++++++++++-------
>  configs/ls1043ardb_sdcard_defconfig     |  1 -
>  include/configs/ls1043a_common.h        | 33 +++++++++++++++++++++++++++++++++
>  include/configs/ls1043ardb.h            | 14 ++++++++++++++
>  6 files changed, 63 insertions(+), 9 deletions(-)
>
> diff --git a/board/freescale/ls1043aqds/Makefile b/board/freescale/ls1043aqds/Makefile
> index f727bfd..49d8d7d 100644
> --- a/board/freescale/ls1043aqds/Makefile
> +++ b/board/freescale/ls1043aqds/Makefile
> @@ -5,5 +5,7 @@
>  #
>
>  obj-y += ddr.o
> +ifndef CONFIG_SPL_BUILD
>  obj-y += eth.o
> +endif
>  obj-y += ls1043aqds.o
> diff --git a/board/freescale/ls1043ardb/Makefile b/board/freescale/ls1043ardb/Makefile
> index 5fe1cc9..2a4452e 100644
> --- a/board/freescale/ls1043ardb/Makefile
> +++ b/board/freescale/ls1043ardb/Makefile
> @@ -4,7 +4,9 @@
>  # SPDX-License-Identifier:	GPL-2.0+
>  #
>
> -obj-y += cpld.o
>  obj-y += ddr.o
>  obj-y += ls1043ardb.o
> +ifndef CONFIG_SPL_BUILD
>  obj-$(CONFIG_SYS_DPAA_FMAN) += eth.o
> +obj-y += cpld.o
> +endif
> diff --git a/board/freescale/ls1043ardb/ls1043ardb.c b/board/freescale/ls1043ardb/ls1043ardb.c
> index 2333843..6de7f9a 100644
> --- a/board/freescale/ls1043ardb/ls1043ardb.c
> +++ b/board/freescale/ls1043ardb/ls1043ardb.c
> @@ -29,6 +29,15 @@
>
>  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"};
> @@ -67,13 +76,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;
> @@ -215,3 +217,5 @@ u16 flash_read16(void *addr)
>
>  	return (((val) >> 8) & 0x00ff) | (((val) << 8) & 0xff00);
>  }
> +
> +#endif
> diff --git a/configs/ls1043ardb_sdcard_defconfig b/configs/ls1043ardb_sdcard_defconfig
> index e57c42b..6bebbd9 100644
> --- a/configs/ls1043ardb_sdcard_defconfig
> +++ b/configs/ls1043ardb_sdcard_defconfig
> @@ -17,7 +17,6 @@ CONFIG_SPL=y
>  CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y
>  CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0xf0
>  CONFIG_SPL_ENV_SUPPORT=y
> -CONFIG_SPL_I2C_SUPPORT=y
>  CONFIG_SPL_MPC8XXX_INIT_DDR_SUPPORT=y
>  CONFIG_HUSH_PARSER=y
>  CONFIG_CMD_GPT=y
> diff --git a/include/configs/ls1043a_common.h b/include/configs/ls1043a_common.h
> index 5a5f951..58e2338 100644
> --- a/include/configs/ls1043a_common.h
> +++ b/include/configs/ls1043a_common.h
> @@ -7,6 +7,25 @@
>  #ifndef __LS1043A_COMMON_H
>  #define __LS1043A_COMMON_H
>
> +/* SPL build */
> +#ifdef CONFIG_SPL_BUILD
> +#define SPL_NO_FMAN
> +#define SPL_NO_DSPI
> +#define SPL_NO_PCIE
> +#define SPL_NO_ENV
> +#define SPL_NO_MISC
> +#define SPL_NO_USB
> +#define SPL_NO_SATA
> +#define SPL_NO_QE
> +#define SPL_NO_EEPROM
> +#endif
> +#if (defined(CONFIG_SPL_BUILD) && defined(CONFIG_NAND_BOOT))
> +#define SPL_NO_MMC
> +#endif
> +#if (defined(CONFIG_SPL_BUILD) && defined(CONFIG_SD_BOOT))
> +#define SPL_NO_IFC
> +#endif
> +
>  #define CONFIG_REMAKE_ELF
>  #define CONFIG_FSL_LAYERSCAPE
>  #define CONFIG_LS1043A
> @@ -82,6 +101,7 @@
>  #endif
>
>  /* IFC */
> +#ifndef SPL_NO_IFC
>  #if !defined(CONFIG_QSPI_BOOT) && !defined(CONFIG_SD_BOOT_QSPI)
>  #define CONFIG_FSL_IFC
>  /*
> @@ -102,6 +122,7 @@
>  #define CONFIG_FLASH_SHOW_PROGRESS	45	/* count down from 45/5: 9..1 */
>  #endif
>  #endif
> +#endif
>
>  /* I2C */
>  #define CONFIG_SYS_I2C
> @@ -112,6 +133,7 @@
>  #define CONFIG_SYS_I2C_MXC_I2C4
>
>  /* PCIe */
> +#ifndef SPL_NO_PCIE
>  #define CONFIG_PCIE1		/* PCIE controller 1 */
>  #define CONFIG_PCIE2		/* PCIE controller 2 */
>  #define CONFIG_PCIE3		/* PCIE controller 3 */
> @@ -121,17 +143,23 @@
>  #define CONFIG_PCI_SCAN_SHOW
>  #define CONFIG_CMD_PCI
>  #endif
> +#endif
>
>  /* Command line configuration */
> +#ifndef SPL_NO_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
>
>  /*  DSPI  */
> +#ifndef SPL_NO_DSPI
>  #define CONFIG_FSL_DSPI
>  #ifdef CONFIG_FSL_DSPI
>  #define CONFIG_DM_SPI_FLASH
> @@ -143,8 +171,10 @@
>  #define CONFIG_SF_DEFAULT_CS		0
>  #endif
>  #endif
> +#endif
>
>  /* FMan ucode */
> +#ifndef SPL_NO_FMAN
>  #define CONFIG_SYS_DPAA_FMAN
>  #ifdef CONFIG_SYS_DPAA_FMAN
>  #define CONFIG_SYS_FM_MURAM_SIZE	0x60000
> @@ -176,6 +206,7 @@
>  #define CONFIG_SYS_QE_FMAN_FW_LENGTH	0x10000
>  #define CONFIG_SYS_FDT_PAD		(0x3000 + CONFIG_SYS_QE_FMAN_FW_LENGTH)
>  #endif
> +#endif
>
>  /* Miscellaneous configurable options */
>  #define CONFIG_SYS_LOAD_ADDR	(CONFIG_SYS_DDR_SDRAM_BASE + 0x10000000)
> @@ -183,6 +214,7 @@
>  #define CONFIG_HWCONFIG
>  #define HWCONFIG_BUFFER_SIZE		128
>
> +#ifndef SPL_NO_MISC
>  #if defined(CONFIG_QSPI_BOOT) || defined(CONFIG_SD_BOOT_QSPI)
>  #define MTDPARTS_DEFAULT "mtdparts=spi0.0:1m(uboot)," \
>  			"5m(kernel),1m(dtb),9m(file_system)"
> @@ -221,6 +253,7 @@
>  #define CONFIG_BOOTCOMMAND		"cp.b $kernel_start $kernel_load "     \
>  					"$kernel_size && bootm $kernel_load"
>  #endif
> +#endif
>
>  /* Monitor Command Prompt */
>  #define CONFIG_SYS_CBSIZE		512	/* Console I/O Buffer Size */

Looks like you missed CONFIG_CMDLINE_EDITING in this patch. I will add 
it for you.

York


More information about the U-Boot mailing list