[PATCH 1/1] arm: sunxi: increase SYS_MALLOC_F_LEN

Heinrich Schuchardt xypron.glpk at gmx.de
Mon Jun 8 12:51:09 CEST 2020


On 6/8/20 11:07 AM, André Przywara wrote:
> On 08/06/2020 09:02, Maxime Ripard wrote:
>> Hi,
>>
>> On Sat, Jun 06, 2020 at 09:58:13AM +0000, Heinrich Schuchardt wrote:
>>> The current default of 0x400 for SYS_MALLOC_F_LEN is too small if any
>>> additional drivers marked as DM_FLAG_PRE_RELOC are loaded before
>>> relocation.
>>>
>>> CONFIG_RSA=y which is needed for UEFI secure boot or for FIT image
>>> verification loads the driver mod_exp_sw which has DM_FLAG_PRE_RELOC.
>>>
>>> CONFIG_LOG=Y is another setting requiring additional early malloc
>>> area, cf. log_init().
>>>
>>> When running pine64-lts_defconfig with CONFIG_RSA=y and debug UART enabled
>>> we see as output in main U-Boot
>>>
>>>     alloc_simple() alloc space exhausted
>>>
>>> With this patch the default values of SYS_MALLOC_F_LEN and
>>> SPL_SYS_MALLOC_F_LEN on ARCH_SUNXI are raised to 0x2000.
>
> Heinrich, many thanks for the debugging and the nice solution!
>
>>>
>>> Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
>>
>> Where is this SYS_MALLOC_F_LEN allocated from (in particular for the
>> SPL). Is it from the SRAM?
>
> This is the value for U-Boot proper only, so it's taken from DRAM. There
> is CONFIG_SPL_SYS_MALLOC_F_LEN for the SPL, which we don't touch. So the
> SPL is safe.

SPL_SYS_MALLOC_F_LEN and TPL_SYS_MALLOC_F_LEN default to
SYS_MALLOC_F_LEN. I am not aware of any TPL usage for ARCH_SUNXI.

So this patch affects all three variables.

But we should explicitly set the SPL_SYS_MALLOC_F_LEN default if 0x2000
is too big for any board.

I will send a new version of the patch.

Best regards

Heinich

>
> Cheers,
> Andre
>
>>
>> If so, on older SoCs, we probably don't have 8k to spare.
>>
>> Maxime
>>
>



More information about the U-Boot mailing list