[U-Boot] [PATCH v4 0/4] configs: rk3288: Tinker Board SPL file must fit into 32 KiB

Heinrich Schuchardt xypron.glpk at gmx.de
Wed Apr 3 06:19:57 UTC 2019


On 4/3/19 2:59 AM, Kever Yang wrote:
> Hi Heinrich,
>
>
> On 04/03/2019 01:19 AM, Heinrich Schuchardt wrote:
>> The SPL image for the Tinker Board has to fit into 32 KiB. This includes
>> up to 2 KiB for the file header.
>
> 32KB is the limit of SPL size, not SPL image size, does not include 2KB
> header.
>>
>> A new configuration variable CONFIG_SPL_SIZE_LIMIT is introduced to define
>> the board specific limit.
>
> There is already CONFIG_SPL_MAX_SIZE for the SPL size limit, isn't it?
> I don't understand  why we need new variable.

SPL_MAX_SIZE is used to set CONFIG_SPL_PAD_TO if CONFIG_SPL_PAD_TO is
not defined. If CONFIG_SPL_PAD_TO is defined it specifies the maximum
value of CONFIG_SPL_PAD_TO. So in case CONFIG_SPL_PAD_TO is not defined
SPL_MAX_SIZE does not specify a maximum size but a minimum one.

It is unclear to me why Benoît in 6113d3f27ca ("Makefile: Change
CONFIG_SPL_PAD_TO to image offset") chose this design. Entangling the
variables in this way does not provide a clean design.

The check

#if defined(IMAGE_MAX_SIZE)
ASSERT(__image_copy_end - __image_copy_start < (IMAGE_MAX_SIZE), \
        "SPL image too big");
#endif

in arch/arm/cpu/u-boot-spl.lds neither considers the size of the device
tree nor of the BSS section. So at least for Rockchip SOCs it is
checking a measure that is not directly related to the image size
created by `mkimage -T rksd`.

Best regards

Heinrich

>
> Thanks,
> - Kever
>> A common Makefile function is used for this test and the test against
>> CONFIG_BOARD_SIZE_LIMIT.
>>
>> Move the board size check from arch/arm/mach-imx/Makefile to Makefile.
>>
>> v4:
>> 	use a common function for all size checks in the Makefiles
>>
>> Heinrich Schuchardt (4):
>>   Makefile: reusable function for BOARD_SIZE_CHECK
>>   imx: move BOARD_SIZE_CHECK to main Makefile
>>   configs: define CONFIG_SPL_SIZE_LIMIT
>>   configs: rk3288: Tinker Board SPL file must fit into 32 KiB
>>
>>  Kconfig                         |  8 ++++++++
>>  Makefile                        | 33 +++++++++++++++++++++++----------
>>  arch/arm/mach-imx/Makefile      | 16 ----------------
>>  configs/tinker-rk3288_defconfig |  1 +
>>  4 files changed, 32 insertions(+), 26 deletions(-)
>>
>> --
>> 2.20.1


More information about the U-Boot mailing list