[U-Boot-Users] [patch 1/1] Set GD_FLG_RELOC for boards skipping relocation to RAM

Jean-Christophe PLAGNIOL-VILLARD plagnioj at jcrosoft.com
Tue Jul 22 14:55:56 CEST 2008


On 14:20 Tue 22 Jul     , Remy Bohmer wrote:
> If CONFIG_SKIP_RELOCATE_UBOOT is set the flag GD_FLG_RELOC is usually never
> set, because relocation to RAM is actually never done by U-boot itself.
> However, several pieces of code check if this flag is set at some time.
> 
> So, to make sure this flag is set on boards skipping relocation, this
> is added to the initialisation of U-boot at a moment where it is safe
> to do so.
> 
> Signed-off-by: Remy Bohmer <linux at bohmer.net>
> ---
>  lib_arm/board.c |   16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> Index: u-boot-git-almost-1.3.4/lib_arm/board.c
> ===================================================================
> --- u-boot-git-almost-1.3.4.orig/lib_arm/board.c	2008-07-21 11:53:23.000000000 +0200
> +++ u-boot-git-almost-1.3.4/lib_arm/board.c	2008-07-21 12:25:32.000000000 +0200
> @@ -233,6 +233,17 @@ static int init_func_i2c (void)
>  }
>  #endif
>  
> +#ifdef CONFIG_SKIP_RELOCATE_UBOOT
> +/*
> + * This routine sets the relocation done flag, because even if
> + * relocation is skipped, the flag is used by other generic code.
> + */
> +static int reloc_init(void)
> +{
> +	gd->flags |= GD_FLG_RELOC;
you need to return 0 at least
> +}
> +#endif
> +
>  /*
>   * Breathe some life into the board...
>   *
> @@ -262,6 +273,11 @@ int print_cpuinfo (void); /* test-only *
>  
>  init_fnc_t *init_sequence[] = {
>  	cpu_init,		/* basic cpu dependent setup */
> +#if defined(CONFIG_SKIP_RELOCATE_UBOOT)
> +	reloc_init,		/* Set the relocation done flag, must
> +				   do this AFTER cpu_init(), but as soon
> +				   as possible */
> +#endif
>  	board_init,		/* basic board dependent setup */
>  	interrupt_init,		/* set up exceptions */
>  	env_init,		/* initialize environment */

Best Regards,
J.




More information about the U-Boot mailing list