diff options
| author | Zhong Hongbo <bocui107@gmail.com> | 2012-07-07 03:24:33 +0000 | 
|---|---|---|
| committer | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2012-07-20 14:24:08 +0200 | 
| commit | 448217d4b2e11b11ae5addd1d1f752ce194d6af0 (patch) | |
| tree | 0bac7b2fb11a99bf7d8c256a484188b2ca11e66c /arch/arm/cpu/s3c44b0/start.S | |
| parent | 3ec81d758c09d6887a77a1b1259d044a2905bc8e (diff) | |
| download | olio-uboot-2014.01-448217d4b2e11b11ae5addd1d1f752ce194d6af0.tar.xz olio-uboot-2014.01-448217d4b2e11b11ae5addd1d1f752ce194d6af0.zip | |
arm: Fix to mistake clean the memory space
In currently, when __bss_start is equal to __bss_end__,
The bss loop will clear all the things in memory space.
But just only when __bss_end__ greater than __bss_start__,
we do the clear bss section operation.
Signed-off-by: Zhong Hongbo <bocui107@gmail.com>
Acked-by: Andreas Bießmann <andreas.devel@googlemail.com>
Diffstat (limited to 'arch/arm/cpu/s3c44b0/start.S')
| -rw-r--r-- | arch/arm/cpu/s3c44b0/start.S | 8 | 
1 files changed, 5 insertions, 3 deletions
| diff --git a/arch/arm/cpu/s3c44b0/start.S b/arch/arm/cpu/s3c44b0/start.S index a29d5b496..8daf26c4f 100644 --- a/arch/arm/cpu/s3c44b0/start.S +++ b/arch/arm/cpu/s3c44b0/start.S @@ -217,10 +217,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:  	bl coloured_LED_init  	bl red_led_on |