diff mbox series

[v2,1/1] arm: sunxi: increase SYS_MALLOC_F_LEN

Message ID 20200608105949.5809-1-xypron.glpk@gmx.de
State New
Headers show
Series [v2,1/1] arm: sunxi: increase SYS_MALLOC_F_LEN | expand

Commit Message

Heinrich Schuchardt June 8, 2020, 10:59 a.m. UTC
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 is raised to 0x2000.
The default for SPL_SYS_MALLOC_F_LEN on ARCH_SUNXI is explicitely set to
0x400 to avoid an increased usage of SRAM on elder SoCs.

Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
---
v2
	keep default for SPL_SYS_MALLOC_F_LEN at 0x400
---
 Kconfig | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--
2.26.2

Comments

Jagan Teki June 8, 2020, 11:50 a.m. UTC | #1
On Mon, Jun 8, 2020 at 6:59 AM Heinrich Schuchardt <xypron.glpk at gmx.de> 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 is raised to 0x2000.
> The default for SPL_SYS_MALLOC_F_LEN on ARCH_SUNXI is explicitely set to
> 0x400 to avoid an increased usage of SRAM on elder SoCs.
>
> Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
> ---

Reviewed-by: Jagan Teki <jagan at amarulasolutions.com>
Heinrich Schuchardt June 8, 2020, 12:17 p.m. UTC | #2
On 08.06.20 13:50, Jagan Teki wrote:
> On Mon, Jun 8, 2020 at 6:59 AM Heinrich Schuchardt <xypron.glpk at gmx.de> 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 is raised to 0x2000.
>> The default for SPL_SYS_MALLOC_F_LEN on ARCH_SUNXI is explicitely set to
>> 0x400 to avoid an increased usage of SRAM on elder SoCs.
>>
>> Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
>> ---
>
> Reviewed-by: Jagan Teki <jagan at amarulasolutions.com>
>

Thanks for reviewing.

All sunxi boards have at least 32 KiB SRAM and only this 32 KiB used by
U-Boot for SPL on all sunxi boards. A BananaPi with A20 CPU boots fine
with SPL_SYS_MALLOC_F_LEN=0x2000. So it seems that also version 1 of the
patch was on the safe side.

Best regards

Heinrich
Jagan Teki June 8, 2020, 12:59 p.m. UTC | #3
On Mon, Jun 8, 2020 at 8:25 AM Heinrich Schuchardt <xypron.glpk at gmx.de> wrote:
>
> On 08.06.20 13:50, Jagan Teki wrote:
> > On Mon, Jun 8, 2020 at 6:59 AM Heinrich Schuchardt <xypron.glpk at gmx.de> 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 is raised to 0x2000.
> >> The default for SPL_SYS_MALLOC_F_LEN on ARCH_SUNXI is explicitely set to
> >> 0x400 to avoid an increased usage of SRAM on elder SoCs.
> >>
> >> Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
> >> ---
> >
> > Reviewed-by: Jagan Teki <jagan at amarulasolutions.com>
> >
>
> Thanks for reviewing.
>
> All sunxi boards have at least 32 KiB SRAM and only this 32 KiB used by
> U-Boot for SPL on all sunxi boards. A BananaPi with A20 CPU boots fine
> with SPL_SYS_MALLOC_F_LEN=0x2000. So it seems that also version 1 of the
> patch was on the safe side.

Okay. Planning to push this in MW, since the existing boards look fine.

Jagan.
Heinrich Schuchardt July 25, 2020, 7:49 a.m. UTC | #4
On 6/8/20 2:59 PM, Jagan Teki wrote:
> On Mon, Jun 8, 2020 at 8:25 AM Heinrich Schuchardt <xypron.glpk@gmx.de> wrote:

>>

>> On 08.06.20 13:50, Jagan Teki wrote:

>>> On Mon, Jun 8, 2020 at 6:59 AM Heinrich Schuchardt <xypron.glpk@gmx.de> 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 is raised to 0x2000.

>>>> The default for SPL_SYS_MALLOC_F_LEN on ARCH_SUNXI is explicitely set to

>>>> 0x400 to avoid an increased usage of SRAM on elder SoCs.

>>>>

>>>> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>

>>>> ---

>>>

>>> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>

>>>

>>

>> Thanks for reviewing.

>>

>> All sunxi boards have at least 32 KiB SRAM and only this 32 KiB used by

>> U-Boot for SPL on all sunxi boards. A BananaPi with A20 CPU boots fine

>> with SPL_SYS_MALLOC_F_LEN=0x2000. So it seems that also version 1 of the

>> patch was on the safe side.

>

> Okay. Planning to push this in MW, since the existing boards look fine.

>

> Jagan.

>

Hello Jangan,

unfortunately the patch has not made it into mainline yet. Could you,
please, take a look.

The patch is available for download at:
https://patchwork.ozlabs.org/project/uboot/patch/20200608105949.5809-1-xypron.glpk@gmx.de/

Best regards

Heinrich
Samuel Holland July 25, 2020, 5:13 p.m. UTC | #5
Heinrich,

On 7/25/20 2:49 AM, Heinrich Schuchardt wrote:
> On 6/8/20 2:59 PM, Jagan Teki wrote:

>> On Mon, Jun 8, 2020 at 8:25 AM Heinrich Schuchardt <xypron.glpk@gmx.de> wrote:

>>> On 08.06.20 13:50, Jagan Teki wrote:

>>>> On Mon, Jun 8, 2020 at 6:59 AM Heinrich Schuchardt <xypron.glpk@gmx.de> 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 is raised to 0x2000.

>>>>> The default for SPL_SYS_MALLOC_F_LEN on ARCH_SUNXI is explicitely set to

>>>>> 0x400 to avoid an increased usage of SRAM on elder SoCs.

>>>>>

>>>>> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>

>>>>> ---

>>>>

>>>> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>

>>>>

>>>

>>> Thanks for reviewing.

>>>

>>> All sunxi boards have at least 32 KiB SRAM and only this 32 KiB used by

>>> U-Boot for SPL on all sunxi boards. A BananaPi with A20 CPU boots fine

>>> with SPL_SYS_MALLOC_F_LEN=0x2000. So it seems that also version 1 of the

>>> patch was on the safe side.

>>

>> Okay. Planning to push this in MW, since the existing boards look fine.

>>

>> Jagan.

>>

> Hello Jangan,

> 

> unfortunately the patch has not made it into mainline yet. Could you,

> please, take a look.

> 

> The patch is available for download at:

> https://patchwork.ozlabs.org/project/uboot/patch/20200608105949.5809-1-xypron.glpk@gmx.de/


This patch no longer applies to U-Boot master, since ARCH_QEMU was recently
added to the condition for SYS_MALLOC_F_LEN. Please send a rebased version.

Thanks,
Samuel
diff mbox series

Patch

diff --git a/Kconfig b/Kconfig
index 0e7ccc0b07..67b594cd74 100644
--- a/Kconfig
+++ b/Kconfig
@@ -146,7 +146,7 @@  config SYS_MALLOC_F_LEN
 	default 0x2000 if (ARCH_IMX8 || ARCH_IMX8M || ARCH_MX7 || \
 			   ARCH_MX7ULP || ARCH_MX6 || ARCH_MX5 || \
 			   ARCH_LS1012A || ARCH_LS1021A || ARCH_LS1043A || \
-			   ARCH_LS1046A)
+			   ARCH_LS1046A || ARCH_SUNXI)
 	default 0x400
 	help
 	  Before relocation, memory is very limited on many platforms. Still,
@@ -166,6 +166,7 @@  config SPL_SYS_MALLOC_F_LEN
 	hex "Size of malloc() pool in SPL before relocation"
 	depends on SYS_MALLOC_F && SPL
 	default 0x2800 if RCAR_GEN3
+	default 0x400 if ARCH_SUNXI
 	default SYS_MALLOC_F_LEN
 	help
 	  Before relocation, memory is very limited on many platforms. Still,