[U-Boot] [PATCH v2] ls1043ardb: SPL size reduction in case of non-xip boot
york sun
york.sun at nxp.com
Mon Mar 27 16:10:50 UTC 2017
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 <vinitha.pillai at nxp.com>
> Signed-off-by: Sumit Garg <sumit.garg at nxp.com>
> ---
>
> 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?
> /* IFC */
> #if !defined(CONFIG_QSPI_BOOT) && !defined(CONFIG_SD_BOOT_QSPI)
> #define CONFIG_FSL_IFC
> @@ -102,6 +103,7 @@
> #define CONFIG_FLASH_SHOW_PROGRESS 45 /* count down from 45/5: 9..1 */
> #endif
> #endif
> +#endif
>
> /* I2C */
> #define CONFIG_SYS_I2C
> @@ -111,6 +113,7 @@
> #define CONFIG_SYS_I2C_MXC_I2C3
> #define CONFIG_SYS_I2C_MXC_I2C4
>
> +#ifndef CONFIG_SPL_BUILD
> /* PCIe */
> #define CONFIG_PCIE1 /* PCIE controller 1 */
> #define CONFIG_PCIE2 /* PCIE controller 2 */
> @@ -124,13 +127,17 @@
>
> /* Command line configuration */
> #define CONFIG_CMD_ENV
> +#endif
>
> +#if !(defined(CONFIG_SPL_BUILD) && defined(CONFIG_NAND_BOOT))
So MMC is only available for NAND_BOOT?
> /* MMC */
> #ifdef CONFIG_MMC
> #define CONFIG_FSL_ESDHC
> #define CONFIG_SYS_FSL_MMC_HAS_CAPBLT_VS33
> #endif
> +#endif
>
York
More information about the U-Boot
mailing list