瀏覽代碼

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@omicron.at>
Cc: Albert Aribaud <albert.u.boot@aribaud.net>
Christian Riesch 13 年之前
父節點
當前提交
8f1da53508
共有 1 個文件被更改,包括 5 次插入3 次删除
  1. 5 3
      arch/arm/cpu/arm926ejs/start.S

+ 5 - 3
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:
 
 #ifndef CONFIG_SPL_BUILD
 	bl coloured_LED_init