[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