[U-Boot] [PATCH 2/2] ARM: increase lmb stack space reservation to 4KB

Rob Herring robherring2 at gmail.com
Fri Aug 17 17:41:00 CEST 2012


Albert,

On 06/28/2012 08:54 AM, Rob Herring wrote:
> From: Rob Herring <rob.herring at calxeda.com>
> 
> The bootm initrd image copy to ram can collide with the stack in cases
> where the print buffer size is large (i.e. 1K). The result is intermittent
> initrd decompression errors depending on the initrd size MOD 4KB since
> the initrd start address is 4KB aligned.
> 
> Cc: Albert ARIBAUD <albert.u.boot at aribaud.net>
> Signed-off-by: Rob Herring <rob.herring at calxeda.com>
> ---

Can you please apply this fix. I've seen other issues posted that appear
to be the same cause and this same issue was fixed on PPC ~2 years ago.

Rob

>  arch/arm/lib/bootm.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c
> index 599547d..999f201 100644
> --- a/arch/arm/lib/bootm.c
> +++ b/arch/arm/lib/bootm.c
> @@ -69,8 +69,8 @@ void arch_lmb_reserve(struct lmb *lmb)
>  	sp = get_sp();
>  	debug("## Current stack ends at 0x%08lx ", sp);
>  
> -	/* adjust sp by 1K to be safe */
> -	sp -= 1024;
> +	/* adjust sp by 4K to be safe */
> +	sp -= 4096;
>  	lmb_reserve(lmb, sp,
>  		    gd->bd->bi_dram[0].start + gd->bd->bi_dram[0].size - sp);
>  }
> 



More information about the U-Boot mailing list