On 03/27/2017 09:39 AM, Sumit Garg wrote: >> -----Original Message----- >> From: york sun >> Sent: Monday, March 27, 2017 9:41 PM >> To: Sumit Garg <[email protected]>; [email protected] >> Cc: Ruchika Gupta <[email protected]>; Prabhakar Kushwaha >> <[email protected]>; Mingkai Hu <[email protected]>; Vini >> Pillai <[email protected]> >> Subject: Re: [PATCH v2] ls1043ardb: SPL size reduction in case of non-xip >> boot >> >> On 03/27/2017 08:59 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 <[email protected]> >>> Signed-off-by: Sumit Garg <[email protected]> >>> --- >>> >>> 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 | 10 ++++++++++ >>> include/configs/ls1043ardb.h | 6 ++++++ >>> 6 files changed, 32 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..3dd4dd6 100644 >>> --- a/include/configs/ls1043a_common.h >>> +++ b/include/configs/ls1043a_common.h >>> @@ -81,6 +81,7 @@ >>> #define CONFIG_SYS_MONITOR_LEN 0xa0000 >>> #endif >>> >>> +#if !(defined(CONFIG_SPL_BUILD) && defined(CONFIG_SD_BOOT)) >> >> Is this right? You would skip IFC if SD_BOOT is not enabled. Did you try NOR >> boot with this change? >> > > Here this check is with "!" operation, means to skip IFC if SD_BOOT & > SPL_BUILD are enabled.
OK. I guess missed one pair of brackets. It is not easy to maintain if you add many #if in this header file. Maybe you can put #ifndef CONFIG_SPL_BUILD on the top, and select some features to be included. At least we will have a central place to check when we need to make adjustment. Please keep it in mind, the config macros are being moved into Kconfig. York _______________________________________________ U-Boot mailing list [email protected] https://lists.denx.de/listinfo/u-boot

