All of lore.kernel.org
 help / color / mirror / Atom feed
From: Albert ARIBAUD <albert.aribaud@free.fr>
To: u-boot@lists.denx.de
Subject: [U-Boot] kirkwood: CONFIG_SYS_INIT_SP_ADDR wrong?
Date: Wed, 10 Nov 2010 17:29:00 +0100	[thread overview]
Message-ID: <4CDAC84C.60609@free.fr> (raw)
In-Reply-To: <4CDABE3D.50506@schmid-telecom.ch>

Le 10/11/2010 16:46, Daniel Hobi a ?crit :
> Hi Heiko,
>
> On 10.11.2010 16:40, Heiko Schocher wrote:
>> Daniel Hobi wrote:
>>> But you also added assembly code to setup the initial stack pointer in
>>> arch/arm/cpu/*/start.S (ie commit ab86f72c for arm926ejf) which reads:
>>>
>>> /* Set stackpointer in internal RAM to call board_init_f */
>>> call_board_init_f:
>>> 	ldr	sp, =(CONFIG_SYS_INIT_SP_ADDR)
>>>
>>> CONFIG_SYS_INIT_SP_ADDR may not be aligned properly, especially with
>>> your latest patch to km_arm.h:
>>>
>>> #define CONFIG_SYS_INIT_SP_ADDR	(0xC8012000 - GENERATED_GBL_DATA_SIZE)
>>
>> Ah, good catch.
>>
>> Then we should add this alignment into the generation of
>> GENERATED_GBL_DATA_SIZE.
>
> Hm? The stack pointer needs alignment, not GENERATED_GBL_DATA_SIZE. What
> happens if I define:
>
> #define CONFIG_SYS_INIT_SP_ADDR	(0xC8012004 - GENERATED_GBL_DATA_SIZE)
>
> Why not add alignment to start.S?
>
>   /* Set stackpointer in internal RAM to call board_init_f */
>   call_board_init_f:
>   	ldr	sp, =(CONFIG_SYS_INIT_SP_ADDR)
> +	bic	sp, sp, #7
>
> Best regards,
> Daniel

Bad solution IMO: if the symbol is used elsewhere, one would have to 
always remember that it should be aligned down to a multiple of eight. 
We may not need to make it a generated constant, but we definitely need 
to make sure it is correctly aligned wherever it is used, e.g. by 
defining it as

#define CONFIG_SYS_INIT_SP_ADDR	(0xC8012004-GENERATED_GBL_DATA_SIZE)&~7

(spacing squashed to avoid funny line breaks)

Amicalement,
-- 
Albert.

  reply	other threads:[~2010-11-10 16:29 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-10 13:57 [U-Boot] kirkwood: CONFIG_SYS_INIT_SP_ADDR wrong? Daniel Hobi
2010-11-10 14:15 ` Heiko Schocher
2010-11-10 14:37   ` Daniel Hobi
2010-11-10 15:02     ` Heiko Schocher
2010-11-10 15:13       ` Daniel Hobi
2010-11-10 15:40         ` Heiko Schocher
2010-11-10 15:46           ` Daniel Hobi
2010-11-10 16:29             ` Albert ARIBAUD [this message]
2010-11-10 16:46             ` Heiko Schocher
2010-11-10 17:53               ` Daniel Hobi
2010-11-10 20:13               ` Wolfgang Denk
2010-11-10 20:11           ` Wolfgang Denk

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=4CDAC84C.60609@free.fr \
    --to=albert.aribaud@free.fr \
    --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.