[U-Boot] [u-boot-release] [PATCH 2/3] armv8: ls1088a: SPL size reduction

York Sun york.sun at nxp.com
Tue Aug 29 15:55:08 UTC 2017


On 08/29/2017 12:02 AM, Sumit Garg wrote:
> Using changes in this patch we were able to reduce approx 8k
> size of u-boot-spl.bin image. Following is breif description of
> changes to reduce SPL size:
> 1. Changes in board/freescale/ls1088a/Makefile to remove
>     compilation of eth.c and cpld.c in case of SPL build.
> 2. Changes in board/freescale/ls1088a/ls1088a.c to keep
>     board_early_init_f funcations in case of SPL build.
> 3. Changes in ls1088a_common.h & ls1088ardb.h to remove driver
>     specific macros due to which static data was being compiled in
>     case of SPL build.
> 4. Enable CONFIG_SYS_DCACHE_OFF in case of SPL build as DCACHE is
>     not being enabled in case of SPL image but was compiled in to
>     add redundant code.
> 
> Signed-off-by: Sumit Garg <sumit.garg at nxp.com>
> ---
> 
> Dependent on ls1088 base SD boot target. Also dependent on ls1088
> QPSI secure boot target.
> 
>   board/freescale/ls1088a/Makefile  |  4 +++-
>   board/freescale/ls1088a/ls1088a.c | 14 ++++++++------
>   include/configs/ls1088a_common.h  | 20 ++++++++++++++++++++
>   include/configs/ls1088ardb.h      | 20 ++++++++++++++++++++
>   4 files changed, 51 insertions(+), 7 deletions(-)
> 
> diff --git a/board/freescale/ls1088a/Makefile b/board/freescale/ls1088a/Makefile
> index bdcce9e..0e15031 100644
> --- a/board/freescale/ls1088a/Makefile
> +++ b/board/freescale/ls1088a/Makefile
> @@ -5,6 +5,8 @@
>   #
>   
>   obj-y += ls1088a.o
> +obj-y += ddr.o
> +ifndef CONFIG_SPL_BUILD
>   obj-$(CONFIG_TARGET_LS1088ARDB) += eth_ls1088ardb.o
>   obj-$(CONFIG_TARGET_LS1088AQDS) += eth_ls1088aqds.o
> -obj-y += ddr.o
> +endif
> diff --git a/board/freescale/ls1088a/ls1088a.c b/board/freescale/ls1088a/ls1088a.c
> index 1860f9c..1c28ab4 100644
> --- a/board/freescale/ls1088a/ls1088a.c
> +++ b/board/freescale/ls1088a/ls1088a.c
> @@ -24,6 +24,13 @@
>   
>   DECLARE_GLOBAL_DATA_PTR;
>   
> +int board_early_init_f(void)
> +{
> +	fsl_lsch3_early_init_f();
> +	return 0;
> +}
> +
> +#if !defined(CONFIG_SPL_BUILD)
>   unsigned long long get_qixis_addr(void)
>   {
>   	unsigned long long addr;
> @@ -324,12 +331,6 @@ int board_init(void)
>   	return 0;
>   }
>   
> -int board_early_init_f(void)
> -{
> -	fsl_lsch3_early_init_f();
> -	return 0;
> -}
> -
>   void detail_board_ddr_info(void)
>   {
>   	puts("\nDDR    ");
> @@ -404,3 +405,4 @@ int ft_board_setup(void *blob, bd_t *bd)
>   	return 0;
>   }
>   #endif
> +#endif /* defined(CONFIG_SPL_BUILD) */
> diff --git a/include/configs/ls1088a_common.h b/include/configs/ls1088a_common.h
> index 63b69f8..fb4c852 100644
> --- a/include/configs/ls1088a_common.h
> +++ b/include/configs/ls1088a_common.h
> @@ -7,6 +7,20 @@
>   #ifndef __LS1088_COMMON_H
>   #define __LS1088_COMMON_H
>   
> +/* SPL build */
> +#ifdef CONFIG_SPL_BUILD
> +#define SPL_NO_BOARDINFO
> +#define SPL_NO_QIXIS
> +#define SPL_NO_PCI
> +#define SPL_NO_ENV
> +#define SPL_NO_RTC
> +#define SPL_NO_USB
> +#define SPL_NO_SATA
> +#define SPL_NO_QSPI
> +#define SPL_NO_IFC
> +#define CONFIG_SYS_DCACHE_OFF

How much space can you save with data cache off? I prefer to leave the 
cache on. Cache is used if PPA is loaded in SPL stage for boost booting 
speed.

York


More information about the U-Boot mailing list