]> git.sur5r.net Git - u-boot/blobdiff - arch/arm/cpu/arm1136/start.S
Merge branch 'agust@denx.de-next' of git://git.denx.de/u-boot-staging
[u-boot] / arch / arm / cpu / arm1136 / start.S
index c0db96cb15455e172f58821ebb7bb2ba64ebca31..3752af9ddd15bb91953f833a7c8698a082992de2 100644 (file)
@@ -190,6 +190,7 @@ stack_setup:
 
        adr     r0, _start
        cmp     r0, r6
+       moveq   r9, #0          /* no relocation. relocation offset(r9) = 0 */
        beq     clear_bss               /* skip relocation */
        mov     r1, r6                  /* r1 <- scratch for copy_loop */
        ldr     r3, _bss_start_ofs
@@ -251,10 +252,12 @@ clear_bss:
        add     r1, r1, r4
        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:
 #endif /* #ifndef CONFIG_SPL_BUILD */
 
 /*