[U-Boot] [PATCH] armv7: Fix to mistake clean the memory space

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: Hongbo Zhong bocui107@gmail.com Signed-off-by: Andreas Bießmann andreas.devel@googlemail.com Signed-off-by: Albert ARIBAUD albert.u.boot@aribaud.net --- arch/arm/cpu/arm1136/start.S | 8 +++++--- arch/arm/cpu/arm1176/start.S | 8 +++++--- 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(+), 39 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..7b5cf19 100644 --- a/arch/arm/cpu/arm1176/start.S +++ b/arch/arm/cpu/arm1176/start.S @@ -351,10 +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 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
/*

On 06.07.2012 14:20, 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: Hongbo Zhong bocui107@gmail.com Signed-off-by: Andreas Bießmann andreas.devel@googlemail.com
well this is wrong, I would maybe ack it.
Signed-off-by: Albert ARIBAUD albert.u.boot@aribaud.net
Some more formal things ...
This is the third version of this type of patch. Therefore it should have a version history here and some version information in the subject ([PATCH v3] maybe). Please read http://www.denx.de/wiki/view/U-Boot/Patches especially http://www.denx.de/wiki/view/U-Boot/Patches#Sending_updated_patch_versions
BTW: The content looks sane.
Best regards
Andreas Bießmann

On 07/06/2012 09:23 PM, Andreas Bießmann wrote:
On 06.07.2012 14:20, 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: Hongbo Zhong bocui107@gmail.com Signed-off-by: Andreas Bießmann andreas.devel@googlemail.com
well this is wrong, I would maybe ack it
Ok
Signed-off-by: Albert ARIBAUD albert.u.boot@aribaud.net
Some more formal things ...
This is the third version of this type of patch. Therefore it should have a version history here and some version information in the subject ([PATCH v3] maybe). Please read http://www.denx.de/wiki/view/U-Boot/Patches especially http://www.denx.de/wiki/view/U-Boot/Patches#Sending_updated_patch_versions
Thanks, I just see the format of patch. I will add the version information to the next review.
BTW: The content looks sane.
I will send v3 for this.
Thanks, hongbo
Best regards
Andreas Bießmann

Dear Zhong Hongbo,
On 06.07.2012 15:50, Zhong Hongbo wrote:
On 07/06/2012 09:23 PM, Andreas Bießmann wrote:
On 06.07.2012 14:20, 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: Hongbo Zhong bocui107@gmail.com Signed-off-by: Andreas Bießmann andreas.devel@googlemail.com
well this is wrong, I would maybe ack it
Ok
After sending I doubt my statement was correct, but I found a source http://www.denx.de/wiki/view/U-Boot/Patches#Review_Process_Git_Tags
Signed-off-by: Albert ARIBAUD albert.u.boot@aribaud.net
Some more formal things ...
This is the third version of this type of patch. Therefore it should have a version history here and some version information in the subject ([PATCH v3] maybe). Please read http://www.denx.de/wiki/view/U-Boot/Patches especially http://www.denx.de/wiki/view/U-Boot/Patches#Sending_updated_patch_versions
Thanks, I just see the format of patch. I will add the version information to the next review.
BTW: The content looks sane.
I will send v3 for this.
a last formal thing to mention: The subject should (now) say 'arm: ...' not 'armv7: ...'.
Best regards
Andreas Bießmann

On 07/06/2012 09:57 PM, Andreas Bießmann wrote:
Dear Zhong Hongbo,
On 06.07.2012 15:50, Zhong Hongbo wrote:
On 07/06/2012 09:23 PM, Andreas Bießmann wrote:
On 06.07.2012 14:20, 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: Hongbo Zhong bocui107@gmail.com Signed-off-by: Andreas Bießmann andreas.devel@googlemail.com
well this is wrong, I would maybe ack it
Ok
After sending I doubt my statement was correct, but I found a source http://www.denx.de/wiki/view/U-Boot/Patches#Review_Process_Git_Tags
he, Ye, I think we(You, Albert and me) are involved in the development of the patch.
Signed-off-by: Albert ARIBAUD albert.u.boot@aribaud.net
Some more formal things ...
This is the third version of this type of patch. Therefore it should have a version history here and some version information in the subject ([PATCH v3] maybe). Please read http://www.denx.de/wiki/view/U-Boot/Patches especially http://www.denx.de/wiki/view/U-Boot/Patches#Sending_updated_patch_versions
Thanks, I just see the format of patch. I will add the version information to the next review.
BTW: The content looks sane.
I will send v3 for this.
a last formal thing to mention: The subject should (now) say 'arm: ...' not 'armv7: ...'.
Ok.
Thanks, hongbo
Best regards
Andreas Bießmann

Hi Zhong Hongbo,
On Fri, 06 Jul 2012 22:04:21 +0800, Zhong Hongbo bocui107@gmail.com wrote:
On 07/06/2012 09:57 PM, Andreas Bießmann wrote:
Dear Zhong Hongbo,
On 06.07.2012 15:50, Zhong Hongbo wrote:
On 07/06/2012 09:23 PM, Andreas Bießmann wrote:
On 06.07.2012 14:20, 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: Hongbo Zhong bocui107@gmail.com Signed-off-by: Andreas Bießmann andreas.devel@googlemail.com
well this is wrong, I would maybe ack it
Ok
After sending I doubt my statement was correct, but I found a source http://www.denx.de/wiki/view/U-Boot/Patches#Review_Process_Git_Tags
he, Ye, I think we(You, Albert and me) are involved in the development of the patch.
It could be said of any reviewer that they are "involved in the development of the patch", yet not all reviewers's Signed-off-by is added to evey patch they review. There is a Reviewed-by tag for reviewers.
I personally do not consider it would make sense to have my Signed-off-by on this patch.
Amicalement,

On 07/06/2012 11:26 PM, Albert ARIBAUD wrote:
Hi Zhong Hongbo,
On Fri, 06 Jul 2012 22:04:21 +0800, Zhong Hongbo bocui107@gmail.com wrote:
On 07/06/2012 09:57 PM, Andreas Bießmann wrote:
Dear Zhong Hongbo,
On 06.07.2012 15:50, Zhong Hongbo wrote:
On 07/06/2012 09:23 PM, Andreas Bießmann wrote:
On 06.07.2012 14:20, 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: Hongbo Zhong bocui107@gmail.com Signed-off-by: Andreas Bießmann andreas.devel@googlemail.com
well this is wrong, I would maybe ack it
Ok
After sending I doubt my statement was correct, but I found a source http://www.denx.de/wiki/view/U-Boot/Patches#Review_Process_Git_Tags
he, Ye, I think we(You, Albert and me) are involved in the development of the patch.
It could be said of any reviewer that they are "involved in the development of the patch", yet not all reviewers's Signed-off-by is added to evey patch they review. There is a Reviewed-by tag for reviewers.
I personally do not consider it would make sense to have my Signed-off-by on this patch.
Ok, I am doing the patch.
Thanks, hongbo
Amicalement,
participants (3)
-
Albert ARIBAUD
-
Andreas Bießmann
-
Zhong Hongbo