diff mbox series

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

Message ID 20200725181851.4339-1-xypron.glpk@gmx.de
State Accepted
Commit fb5b1678433711091e6f89a1c1ef24c422b5f521
Delegated to: Jagannadha Sutradharudu Teki
Headers show
Series [v3,1/1] arm: sunxi: increase SYS_MALLOC_F_LEN | expand

Commit Message

Heinrich Schuchardt July 25, 2020, 6:18 p.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 and
SPL_SYS_MALLOC_F_LEN on ARCH_SUNXI are raised to 0x2000.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>
---
v3:
	rebased
v2:
	keep default for SPL_SYS_MALLOC_F_LEN at 0x400
---
 Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--
2.27.0

Comments

Heinrich Schuchardt Aug. 25, 2020, 4:10 a.m. UTC | #1
On 7/25/20 8:18 PM, 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.
>
> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>

With current pine64-lts_defconfig we get a warning:

"alloc space exhausted"

So, please, merge the patch.

Best regards

Heinrich
Simon Glass Aug. 25, 2020, 4:57 p.m. UTC | #2
On Mon, 24 Aug 2020 at 22:15, Heinrich Schuchardt <xypron.glpk@gmx.de> wrote:
>
> On 7/25/20 8:18 PM, 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.
> >
> > Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
> > Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>
>
> With current pine64-lts_defconfig we get a warning:
>
> "alloc space exhausted"
>
> So, please, merge the patch.

Reviewed-by: Simon Glass <sjg@chromium.org>

>
> Best regards
>
> Heinrich
Heinrich Schuchardt Oct. 8, 2020, 1:02 p.m. UTC | #3
On 25.08.20 18:57, Simon Glass wrote:
> On Mon, 24 Aug 2020 at 22:15, Heinrich Schuchardt <xypron.glpk@gmx.de> wrote:
>>
>> On 7/25/20 8:18 PM, 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.
>>>
>>> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
>>> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>
>>
>> With current pine64-lts_defconfig we get a warning:
>>
>> "alloc space exhausted"
>>
>> So, please, merge the patch.
>
> Reviewed-by: Simon Glass <sjg@chromium.org>
>
>>
>> Best regards
>>
>> Heinrich

Hello Jagan, hello Maxime,

it is merge window but I could not find this patch in

https://gitlab.denx.de/u-boot/custodians/u-boot-sunxi

Please, take care of the patch.

Best regards

Heinrich
Andre Przywara Oct. 19, 2020, 10:08 p.m. UTC | #4
On 08/10/2020 14:02, Heinrich Schuchardt wrote:

Hi,

> On 25.08.20 18:57, Simon Glass wrote:
>> On Mon, 24 Aug 2020 at 22:15, Heinrich Schuchardt <xypron.glpk@gmx.de> wrote:
>>>
>>> On 7/25/20 8:18 PM, 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.
>>>>
>>>> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
>>>> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>
>>>
>>> With current pine64-lts_defconfig we get a warning:
>>>
>>> "alloc space exhausted"
>>>
>>> So, please, merge the patch.
>>
>> Reviewed-by: Simon Glass <sjg@chromium.org>
>>
>>>
>>> Best regards
>>>
>>> Heinrich
> 
> Hello Jagan, hello Maxime,
> 
> it is merge window but I could not find this patch in
> 
> https://gitlab.denx.de/u-boot/custodians/u-boot-sunxi

So apparently since commit 4ab3817ff16a ("clk: fixed-rate: Enable
DM_FLAG_PRE_RELOC flag") even the pine64-lts_defconfig is now broken,
because more malloc space is needed for U-Boot proper before relocation.
This patches fixes is.

So can someone PLEASE merge this patch?

To answer this one lingering question: Apparently the malloc memory for
SPL is taken from DRAM (similar to BSS), so we have plenty. The U-Boot
proper early malloc is taken from SRAM A1 (why?), but we don't need it
for anything else any more, so have enough of it. So the 8KB are safe in
both worlds.

Thanks!
Andre
Jagan Teki Oct. 21, 2020, 6:23 p.m. UTC | #5
On Sat, Jul 25, 2020 at 11:49 PM 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 and
> SPL_SYS_MALLOC_F_LEN on ARCH_SUNXI are raised to 0x2000.
>
> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>
> ---
> v3:
>         rebased
> v2:
>         keep default for SPL_SYS_MALLOC_F_LEN at 0x400
> ---
>  Kconfig | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/Kconfig b/Kconfig
> index 566ca72c92..513ccda8f2 100644
> --- a/Kconfig
> +++ b/Kconfig
> @@ -182,7 +182,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_QEMU)
> +                          ARCH_LS1046A || ARCH_QEMU || ARCH_SUNXI)

Applied to u-boot-sunix/master
diff mbox series

Patch

diff --git a/Kconfig b/Kconfig
index 566ca72c92..513ccda8f2 100644
--- a/Kconfig
+++ b/Kconfig
@@ -182,7 +182,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_QEMU)
+			   ARCH_LS1046A || ARCH_QEMU || ARCH_SUNXI)
 	default 0x400
 	help
 	  Before relocation, memory is very limited on many platforms. Still,