[U-Boot] [PATCH] armv7: Fix infinite loop for the spl boot

Andreas Bießmann andreas.devel at googlemail.com
Fri Jul 6 13:49:49 CEST 2012


Dear Zhong Hongbo,

On 06.07.2012 13:42, Zhong Hongbo wrote:
> On 07/06/2012 01:35 AM, Albert ARIBAUD <albert.u.boot at aribaud.net> (by
> way of Albert ARIBAUD wrote:
>> Hi Zhong Hongbo,
>>
>> On Thu, 05 Jul 2012 19:53:46 +0800, Zhong Hongbo <bocui107 at gmail.com>
>> wrote:

<snip>

> 
> Ok, I just found the issue have found in other arm platfor 2011 yeas,
> the detail information as following:
> 
> commit 8f1da53508c78789ebeea98a92a3f55c3f84dc5d
> Author: Christian Riesch <christian.riesch at omicron.at>
> Date:   Wed Nov 30 22:27:37 2011 +0000
> 
>     arm, arm926ejs: Fix clear bss loop for zero length bss
> 
>     This patch fixes the clear bss loop for bss sections that have
>     zero length, i.e., where __bss_start == __bss_end__.
> 
>     Signed-off-by: Christian Riesch <christian.riesch at omicron.at>
>     Cc: Albert Aribaud <albert.u.boot at aribaud.net>
> 
> diff --git a/arch/arm/cpu/arm926ejs/start.S b/arch/arm/cpu/arm926ejs/start.S
> index 339c5ed..bb4d00b 100644
> --- a/arch/arm/cpu/arm926ejs/start.S
> +++ b/arch/arm/cpu/arm926ejs/start.S
> @@ -301,10 +301,12 @@ clear_bss:
>  #endif
>         mov     r2, #0x00000000         /* clear
>     */
> 
> -clbss_l:str    r2, [r0]                /* clear loop...
>     */
> +clbss_l:cmp    r0, r1                  /* clear loop... */
> +       bhs     clbss_e                 /* if reached end of bss, exit */
> +       str     r2, [r0]
>         add     r0, r0, #4
> -       cmp     r0, r1
> -       bne     clbss_l
> +       b       clbss_l
> +clbss_e:
>>> clbss_l:str     r2, [r0]  /* clear loop...*/
>>>         add     r0, r0, #4
>>>         cmp     r0, r1
>>>         bne     clbss_l
>>
>> Into something like
>>
>>> clbss_l:cmp     r0, r1
>>>         blo     clbss_d
>>>         str     r2, [r0]  /* clear loop...*/
>>>         add     r0, r0, #4
>>>         b       clbss_l
>>> clbss_d:
>>
>> Also, as Andreas points out, make sure the same fix is applied to all ARM start.S files which need it.
> 
> Ok,

I think this is the thread we will proceed.
So as I understand we had missed in 2011 to update the other start.S
with a fix found by Christian Riesch for arm926ejs. So please do update
_all_ start.S (of arm;) now. I think they do have all the same error
cause we copied it over from one to the other when implementing the 'new
relocation' stuff.

Best regards

Andreas Bießmann


More information about the U-Boot mailing list