* [U-Boot] [V4] arm: Fix to mistake clean the memory space
@ 2012-07-07 13:24 Zhong Hongbo
2012-07-09 11:27 ` Andreas Bießmann
2012-07-12 19:15 ` Albert ARIBAUD
0 siblings, 2 replies; 3+ messages in thread
From: Zhong Hongbo @ 2012-07-07 13:24 UTC (permalink / raw)
To: u-boot
From: Zhong Hongbo <bocui107@gmail.com>
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>
---
Change for V1
- Fixed bss clear operation, no just skip it.
- Adjust the commit information
Change for V2
- Modify all the bss clean operation for arm platform
- Adjust the title
Change for V3
- Modify the history information and the tag ot the patch
---
arch/arm/cpu/arm1136/start.S | 8 +++++---
arch/arm/cpu/arm1176/start.S | 9 +++++----
arch/arm/cpu/arm720t/start.S | 8 +++++---
arch/arm/cpu/arm920t/start.S | 8 +++++---
arch/arm/cpu/arm925t/start.S | 8 +++++---
arch/arm/cpu/arm946es/start.S | 8 +++++---
arch/arm/cpu/arm_intcm/start.S | 8 +++++---
arch/arm/cpu/armv7/start.S | 8 +++++---
arch/arm/cpu/ixp/start.S | 8 +++++---
arch/arm/cpu/lh7a40x/start.S | 8 +++++---
arch/arm/cpu/pxa/start.S | 8 +++++---
arch/arm/cpu/s3c44b0/start.S | 8 +++++---
arch/arm/cpu/sa1100/start.S | 8 +++++---
13 files changed, 65 insertions(+), 40 deletions(-)
diff --git a/arch/arm/cpu/arm1136/start.S b/arch/arm/cpu/arm1136/start.S
index c0db96c..2483c63 100644
--- a/arch/arm/cpu/arm1136/start.S
+++ b/arch/arm/cpu/arm1136/start.S
@@ -251,10 +251,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 */
/*
diff --git a/arch/arm/cpu/arm1176/start.S b/arch/arm/cpu/arm1176/start.S
index 848144a..d613641 100644
--- a/arch/arm/cpu/arm1176/start.S
+++ b/arch/arm/cpu/arm1176/start.S
@@ -351,11 +351,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:
#ifndef CONFIG_NAND_SPL
bl coloured_LED_init
bl red_led_on
diff --git a/arch/arm/cpu/arm720t/start.S b/arch/arm/cpu/arm720t/start.S
index 540e3c2..3b97e80 100644
--- a/arch/arm/cpu/arm720t/start.S
+++ b/arch/arm/cpu/arm720t/start.S
@@ -228,10 +228,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
diff --git a/arch/arm/cpu/arm920t/start.S b/arch/arm/cpu/arm920t/start.S
index 8c5612c..9b8604e 100644
--- a/arch/arm/cpu/arm920t/start.S
+++ b/arch/arm/cpu/arm920t/start.S
@@ -271,10 +271,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
diff --git a/arch/arm/cpu/arm925t/start.S b/arch/arm/cpu/arm925t/start.S
index dbb93ef..1a54416 100644
--- a/arch/arm/cpu/arm925t/start.S
+++ b/arch/arm/cpu/arm925t/start.S
@@ -265,10 +265,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
diff --git a/arch/arm/cpu/arm946es/start.S b/arch/arm/cpu/arm946es/start.S
index 89ba558..b4d1d2d 100644
--- a/arch/arm/cpu/arm946es/start.S
+++ b/arch/arm/cpu/arm946es/start.S
@@ -236,10 +236,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
- blo clbss_l
+ b clbss_l
+clbss_e:
#endif
/*
diff --git a/arch/arm/cpu/arm_intcm/start.S b/arch/arm/cpu/arm_intcm/start.S
index 2033b36..b85e7d4 100644
--- a/arch/arm/cpu/arm_intcm/start.S
+++ b/arch/arm/cpu/arm_intcm/start.S
@@ -232,10 +232,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
diff --git a/arch/arm/cpu/armv7/start.S b/arch/arm/cpu/armv7/start.S
index 22a3ced..aee27fd 100644
--- a/arch/arm/cpu/armv7/start.S
+++ b/arch/arm/cpu/armv7/start.S
@@ -259,10 +259,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:
/*
* We are done. Do not return, instead branch to second part of board
diff --git a/arch/arm/cpu/ixp/start.S b/arch/arm/cpu/ixp/start.S
index cb32121..59c359a 100644
--- a/arch/arm/cpu/ixp/start.S
+++ b/arch/arm/cpu/ixp/start.S
@@ -334,10 +334,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
diff --git a/arch/arm/cpu/lh7a40x/start.S b/arch/arm/cpu/lh7a40x/start.S
index 62de8b8..bd68cd4 100644
--- a/arch/arm/cpu/lh7a40x/start.S
+++ b/arch/arm/cpu/lh7a40x/start.S
@@ -245,10 +245,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
/*
diff --git a/arch/arm/cpu/pxa/start.S b/arch/arm/cpu/pxa/start.S
index ba0de8f..33c73f6 100644
--- a/arch/arm/cpu/pxa/start.S
+++ b/arch/arm/cpu/pxa/start.S
@@ -258,10 +258,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 */
/*
diff --git a/arch/arm/cpu/s3c44b0/start.S b/arch/arm/cpu/s3c44b0/start.S
index a29d5b4..8daf26c 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
diff --git a/arch/arm/cpu/sa1100/start.S b/arch/arm/cpu/sa1100/start.S
index 92546d8..bcea2a8 100644
--- a/arch/arm/cpu/sa1100/start.S
+++ b/arch/arm/cpu/sa1100/start.S
@@ -221,10 +221,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
/*
--
1.7.5.4
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [U-Boot] [V4] arm: Fix to mistake clean the memory space
2012-07-07 13:24 [U-Boot] [V4] arm: Fix to mistake clean the memory space Zhong Hongbo
@ 2012-07-09 11:27 ` Andreas Bießmann
2012-07-12 19:15 ` Albert ARIBAUD
1 sibling, 0 replies; 3+ messages in thread
From: Andreas Bießmann @ 2012-07-09 11:27 UTC (permalink / raw)
To: u-boot
On 07.07.2012 15:24, Zhong Hongbo wrote:
> From: Zhong Hongbo <bocui107@gmail.com>
>
> 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>
> ---
> Change for V1
> - Fixed bss clear operation, no just skip it.
> - Adjust the commit information
> Change for V2
> - Modify all the bss clean operation for arm platform
> - Adjust the title
> Change for V3
> - Modify the history information and the tag ot the patch
> ---
> arch/arm/cpu/arm1136/start.S | 8 +++++---
> arch/arm/cpu/arm1176/start.S | 9 +++++----
> arch/arm/cpu/arm720t/start.S | 8 +++++---
> arch/arm/cpu/arm920t/start.S | 8 +++++---
> arch/arm/cpu/arm925t/start.S | 8 +++++---
> arch/arm/cpu/arm946es/start.S | 8 +++++---
> arch/arm/cpu/arm_intcm/start.S | 8 +++++---
> arch/arm/cpu/armv7/start.S | 8 +++++---
> arch/arm/cpu/ixp/start.S | 8 +++++---
> arch/arm/cpu/lh7a40x/start.S | 8 +++++---
> arch/arm/cpu/pxa/start.S | 8 +++++---
> arch/arm/cpu/s3c44b0/start.S | 8 +++++---
> arch/arm/cpu/sa1100/start.S | 8 +++++---
> 13 files changed, 65 insertions(+), 40 deletions(-)
^ permalink raw reply [flat|nested] 3+ messages in thread
* [U-Boot] [V4] arm: Fix to mistake clean the memory space
2012-07-07 13:24 [U-Boot] [V4] arm: Fix to mistake clean the memory space Zhong Hongbo
2012-07-09 11:27 ` Andreas Bießmann
@ 2012-07-12 19:15 ` Albert ARIBAUD
1 sibling, 0 replies; 3+ messages in thread
From: Albert ARIBAUD @ 2012-07-12 19:15 UTC (permalink / raw)
To: u-boot
Hi Zhong Hongbo,
On Sat, 7 Jul 2012 21:24:33 +0800, Zhong Hongbo <bocui107@gmail.com> wrote:
> From: Zhong Hongbo <bocui107@gmail.com>
>
> 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>
> ---
> Change for V1
> - Fixed bss clear operation, no just skip it.
> - Adjust the commit information
> Change for V2
> - Modify all the bss clean operation for arm platform
> - Adjust the title
> Change for V3
> - Modify the history information and the tag ot the patch
> ---
Applied to u-boot-arm/master, thanks.
Amicalement,
--
Albert.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-07-12 19:15 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-07 13:24 [U-Boot] [V4] arm: Fix to mistake clean the memory space Zhong Hongbo
2012-07-09 11:27 ` Andreas Bießmann
2012-07-12 19:15 ` Albert ARIBAUD
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox