All of lore.kernel.org
 help / color / mirror / Atom feed
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
> 

  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.