From: Zhong Hongbo <bocui107@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] armv7: Fix to mistake clean the memory space
Date: Fri, 06 Jul 2012 19:30:17 +0800 [thread overview]
Message-ID: <4FF6CC49.8@gmail.com> (raw)
In-Reply-To: <4FF5B50A.9010500@gmail.com>
Hi Andreas,
On 07/05/2012 11:38 PM, Andreas Bie?mann wrote:
> Dear Zhong Hongbo,
>
> this is arm related and should therefore apply to all the different
> arch/arm/cpu/*/start.S (as long as they have SPL support).
Ok, I will do it. Thanks for your advise.
>
> On 05.07.2012 16:35, 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.
>
> I ask myself why there is no bss at all. Have you just initialized data
> in your spl code?
Yes
>
>>
>> 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>
>> ---
>> arch/arm/cpu/armv7/start.S | 9 ++++++---
>> 1 files changed, 6 insertions(+), 3 deletions(-)
>>
>> diff --git a/arch/arm/cpu/armv7/start.S b/arch/arm/cpu/armv7/start.S
>> index 22a3ced..2e583ee 100644
>> --- a/arch/arm/cpu/armv7/start.S
>> +++ b/arch/arm/cpu/armv7/start.S
>> @@ -259,10 +259,13 @@ clear_bss:
>> #endif
>> mov r2, #0x00000000 /* clear */
>>
>> -clbss_l:str r2, [r0] /* clear loop... */
>> +clbss_l:
>> + cmp r1, r0
>> + bls clbss_end
>> + str r2, [r0] /* clear loop... */
>> add r0, r0, #4
>> - cmp r0, r1
>> - bne clbss_l
>> + b clbss_l
>> +clbss_end:
>
> Looks sane, I maybe had checked before clbss_l, jumped over clear loop
> if r0 and r1 equal (to emphasize the fact that this is a check for entry
> correctness) and wouldn't change the loop at all. To be more precise we
> could also check if end is after start.
I check the starts of arm92ejs, I found the issue display in other arm
platform. As following:
commit 8f1da53508c78789ebeea98a92a3f55c3f84dc5d
Author: Christian Riesch <christian.riesch@omicron.at>
Date: Wed Nov 30 22:27:37 2011 +0000
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>
diff --git a/arch/arm/cpu/arm926ejs/start.S b/arch/arm/cpu/arm926ejs/start.S
index 339c5ed..bb4d00b 100644
--- a/arch/arm/cpu/arm926ejs/start.S
+++ b/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:
Thanks,
hongbo
>
>>
>> /*
>> * We are done. Do not return, instead branch to second part of board
>>
>
> Best regards
>
> Andreas Bie?mann
>
next prev parent reply other threads:[~2012-07-06 11:30 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-05 14:35 [U-Boot] [PATCH] armv7: Fix to mistake clean the memory space Zhong Hongbo
2012-07-05 15:38 ` Andreas Bießmann
2012-07-05 15:52 ` Andreas Bießmann
2012-07-06 11:31 ` Zhong Hongbo
2012-07-06 11:30 ` Zhong Hongbo [this message]
2012-07-06 5:44 ` Albert ARIBAUD
2012-07-06 11:35 ` Zhong Hongbo
-- strict thread matches above, loose matches on Subject: below --
2012-07-06 12:20 Zhong Hongbo
2012-07-06 13:23 ` Andreas Bießmann
2012-07-06 13:50 ` Zhong Hongbo
2012-07-06 13:57 ` Andreas Bießmann
2012-07-06 14:04 ` Zhong Hongbo
2012-07-06 15:26 ` Albert ARIBAUD
2012-07-06 15:29 ` Zhong Hongbo
[not found] ` <4FF704DB.4050305@gmail.com>
2012-07-07 7:29 ` Andreas Bießmann
2012-07-07 9:47 ` Zhong Hongbo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4FF6CC49.8@gmail.com \
--to=bocui107@gmail.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.