[U-Boot] [PATCH v2 2/9] arm: Set up global data before board_init_f()

Jeroen Hofstee jeroen at myspectrum.nl
Tue Jul 8 19:13:13 CEST 2014


Hello Simon,

On 08-07-14 01:19, Simon Glass wrote:
> At present arm defines CONFIG_SYS_GENERIC_GLOBAL_DATA, meaning that
> the global_data pointer is set up in board_init_f(). However it is
> actually set up before this, it just isn't zeroed.
>
> If we zero the global data before calling board_init_f() then we
> don't need to define CONFIG_SYS_GENERIC_GLOBAL_DATA.
>
> Make this change to simplify the init process.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> Changes in v2: None
>
>   arch/arm/include/asm/config.h | 2 --
>   arch/arm/lib/crt0.S           | 7 +++++++
>   2 files changed, 7 insertions(+), 2 deletions(-)

First of all, good idea.. I missed v1 apparently.

> diff --git a/arch/arm/include/asm/config.h b/arch/arm/include/asm/config.h
> index 2a20a77..abf79e5 100644
> --- a/arch/arm/include/asm/config.h
> +++ b/arch/arm/include/asm/config.h
> @@ -7,8 +7,6 @@
>   #ifndef _ASM_CONFIG_H_
>   #define _ASM_CONFIG_H_
>   
> -#define CONFIG_SYS_GENERIC_GLOBAL_DATA
> -

This bricks aarch64 I guess.
>   #define CONFIG_LMB
>   #define CONFIG_SYS_BOOT_RAMDISK_HIGH
>   
> diff --git a/arch/arm/lib/crt0.S b/arch/arm/lib/crt0.S
> index dfc2de9..bbf3e41 100644
> --- a/arch/arm/lib/crt0.S
> +++ b/arch/arm/lib/crt0.S
> @@ -67,9 +67,16 @@ ENTRY(_main)
>   	ldr	sp, =(CONFIG_SYS_INIT_SP_ADDR)
>   #endif
>   	bic	sp, sp, #7	/* 8-byte alignment for ABI compliance */
> +	mov	r2, sp
>   	sub	sp, sp, #GD_SIZE	/* allocate one GD above SP */
>   	bic	sp, sp, #7	/* 8-byte alignment for ABI compliance */
>   	mov	r9, sp		/* GD is above SP */
> +	mov	r1, r9
> +	mov	r0, #0
> +clr_gd:	cmp	r1, r2			/* while not at end of BSS */
> +	strlo	r0, [r1]		/* clear 32-bit BSS word */
> +	addlo	r1, r1, #4		/* move to next */

The comment should be updated, it is not BSS which is cleared.
> +	blo	clr_gd
>   	mov	r0, #0
>   	bl	board_init_f
>   

The mov r0, #0 for the argument could be removed, but at
least deserves a comment if you do so.

Regards,
Jeroen


More information about the U-Boot mailing list