[U-Boot] [u-boot-release] [PATCH 2/3] armv8: ls1088a: SPL size reduction
York Sun
york.sun at nxp.com
Fri Jan 5 15:56:23 UTC 2018
On 08/30/2017 01:53 AM, Sumit Garg wrote:
> < snip >
>
>>>> 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
>>>
>>> As we discussed earlier too, dcache was not enabled in SPL for our layerscape
>> platforms.
>>
>> That was a mistake when SPL targets were added. It should be enabled.
>> As I said, if you load PPA in SPL, cache will be enabled for EL2. You didn't do it
>> because booting performance is not a concern. If you enable falcon boot, this is
>> required.
>
> Ok. BTW, do you think latest PPA which claims whole of OCRAM could work with SPL.
> I saw crashes in SPL on ls1043ardb with latest PPA enabled in SPL upstream u-boot.
Sumit,
PPA has been fixed to not claim OCRAM. Please rework your patch.
York
More information about the U-Boot
mailing list