[PATCH 2/2] microblaze: start.S: Use board_init_f_alloc/init in early init
Michal Simek
michal.simek at xilinx.com
Wed Sep 23 16:46:56 CEST 2020
On 20. 09. 20 18:50, Ovidiu Panait wrote:
> Implement early init by calling generic board_init_f_alloc_reserve and
> board_init_f_init_reserve functions:
> * drop SYS_MALLOC_F_LEN related code, as allocation and gd->malloc_base
> assignment are taken care of by the generic functions
> * drop _gd logic
>
> Signed-off-by: Ovidiu Panait <ovidiu.panait at windriver.com>
> ---
>
> arch/microblaze/cpu/start.S | 45 ++++++++++++++++++-------------------
> 1 file changed, 22 insertions(+), 23 deletions(-)
>
> diff --git a/arch/microblaze/cpu/start.S b/arch/microblaze/cpu/start.S
> index f3be014317..1f580b1112 100644
> --- a/arch/microblaze/cpu/start.S
> +++ b/arch/microblaze/cpu/start.S
> @@ -17,25 +17,40 @@ _start:
>
> addi r8, r0, __end
> mts rslr, r8
> - /* TODO: Redo this code to call board_init_f_*() */
> +
> #if defined(CONFIG_SPL_BUILD)
> addi r1, r0, CONFIG_SPL_STACK_ADDR
> - mts rshr, r1
> - addi r1, r1, -4 /* Decrement SP to top of memory */
> -#else
> -#if CONFIG_VAL(SYS_MALLOC_F_LEN)
> - addi r1, r0, CONFIG_SYS_INIT_SP_OFFSET - CONFIG_VAL(SYS_MALLOC_F_LEN)
> #else
> addi r1, r0, CONFIG_SYS_INIT_SP_OFFSET
> #endif
> +
> mts rshr, r1
> addi r1, r1, -4 /* Decrement SP to top of memory */
You are setting stack high protection in below code that's why no need
to call it twice here but
>
> + /* Call board_init_f_alloc_reserve with the current stack pointer as
> + * parameter. */
> + add r5, r0, r1
> + bralid r15, board_init_f_alloc_reserve
> + nop
In SPL case this will decrease stack by SYS_MALLOC_F_LEN which is wrong.
This should be fine if you remove CONFIG_SYS_MALLOC_F_LEN from
CONFIG_SPL_STACK_ADDR then behavior will remain the same as was before.
(there is one more rounddown in board_init_f_alloc_reserve() but that
should be fine.
215 # define CONFIG_SPL_STACK_ADDR (CONFIG_SYS_INIT_RAM_ADDR + \
216 CONFIG_SYS_INIT_RAM_SIZE - \
217 CONFIG_SYS_MALLOC_F_LEN)
The rest of code looks good to me.
Thanks,
Michal
More information about the U-Boot
mailing list