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.pil...@nxp.com> > Signed-off-by: Sumit Garg <sumit.g...@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 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot