All of lore.kernel.org
 help / color / mirror / Atom feed
From: Albert ARIBAUD <albert.u.boot@aribaud.net>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 1/3] arm: spl: Fix SPL booting for OMAP3
Date: Fri, 21 Jun 2013 10:57:33 +0200	[thread overview]
Message-ID: <20130621105733.4d3185ef@lilith> (raw)
In-Reply-To: <1371780797-17248-1-git-send-email-sr@denx.de>

Hi Stefan,

On Fri, 21 Jun 2013 04:13:17 +0200, Stefan Roese <sr@denx.de> wrote:

> Fix a problem with a re-assignment of r8 in the SPL version.
> 
> This patch now moves the call to s_init() to a later stage, right before
> calling board_init_f(). And makes sure that r8 is correctly initialized
> before s_init() is called. r8 now is only written in crt0.S.
> 
> This error was detected on the SPL port for the Compulab CM-T35 board
> (OMAP3530).
> 
> Signed-off-by: Stefan Roese <sr@denx.de>
> Cc: Tom Rini <trini@ti.com>
> Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
> ---
> v2:
> - Change handling/initializing of r8 as suggested by Albert.
>   It should only be written in crt0.S.
>   
> Tom, while working on this version one question came up:
> Is lowlevel_init() (file arch/arm/cpu/armv7/omap3/lowlevel_init.S)
> needed any more? It calls cpy_clk_code() to copy some clk init
> code into SRAM. But I fail to see if and where this code is really
> executed from SRAM. Maybe I missed something. Perhaps you could
> shed some light into this.
> 
> Thanks, Stefan
> 
>  arch/arm/cpu/armv7/omap3/board.c         | 2 --
>  arch/arm/cpu/armv7/omap3/lowlevel_init.S | 3 +--
>  arch/arm/lib/crt0.S                      | 7 ++++++-
>  3 files changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/arch/arm/cpu/armv7/omap3/board.c b/arch/arm/cpu/armv7/omap3/board.c
> index b72fadc..8f41dcd 100644
> --- a/arch/arm/cpu/armv7/omap3/board.c
> +++ b/arch/arm/cpu/armv7/omap3/board.c
> @@ -256,8 +256,6 @@ void s_init(void)
>  #endif
>  
>  #ifdef CONFIG_SPL_BUILD
> -	gd = &gdata;
> -
>  	preloader_console_init();
>  
>  	timer_init();
> diff --git a/arch/arm/cpu/armv7/omap3/lowlevel_init.S b/arch/arm/cpu/armv7/omap3/lowlevel_init.S
> index eacfef8..8539093 100644
> --- a/arch/arm/cpu/armv7/omap3/lowlevel_init.S
> +++ b/arch/arm/cpu/armv7/omap3/lowlevel_init.S
> @@ -226,8 +226,7 @@ ENTRY(lowlevel_init)
>  #endif /* NAND Boot */
>  	mov	lr, ip		/* restore link reg */
>  	ldr	ip, [sp]	/* restore save ip */
> -	/* tail-call s_init to setup pll, mux, memory */
> -	b	s_init
> +	mov	pc, lr
>  
>  ENDPROC(lowlevel_init)
>  
> diff --git a/arch/arm/lib/crt0.S b/arch/arm/lib/crt0.S
> index a5bffb8..0f8d9f5 100644
> --- a/arch/arm/lib/crt0.S
> +++ b/arch/arm/lib/crt0.S
> @@ -85,8 +85,13 @@ ENTRY(_main)
>  	bic	sp, sp, #7	/* 8-byte alignment for ABI compliance */

Actually, this...

>  	sub	sp, #GD_SIZE	/* allocate one GD above SP */
>  	bic	sp, sp, #7	/* 8-byte alignment for ABI compliance */

... should also be moved under the #else clause below -- no need to
eat up valuable stack space when GD is in gdata.

> -	mov	r8, sp		/* GD is above SP */

Also, this...

>  	mov	r0, #0

... should remain just before the call to board_init_f which needs it.
Otherwise you run the (non-null) risk that r0 be non-zero on return
from s_init and then this non-zero value be passed to board_init_f.

> +#if defined(CONFIG_SPL_BUILD)
> +	ldr	r8, =gdata	/* SPL assigns r8 directly to &gdata */
> +	bl	s_init		/* s_init() needs GD to be setup */
> +#else
> +	mov	r8, sp		/* GD is above SP */
> +#endif
>  	bl	board_init_f
>  
>  #if ! defined(CONFIG_SPL_BUILD)

Amicalement,
-- 
Albert.

  reply	other threads:[~2013-06-21  8:57 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-14  8:54 [U-Boot] [PATCH 1/3] arm: spl: Fix SPL booting for OMAP3 Stefan Roese
2013-06-14  8:55 ` [U-Boot] [PATCH 2/3] arm: omap3: spl: Fix problem with 8bit NAND devices Stefan Roese
2013-07-30 13:25   ` [U-Boot] [U-Boot, " Tom Rini
2013-06-14  8:55 ` [U-Boot] [PATCH 3/3] arm: omap3: Add SPL support to cm_t35 Stefan Roese
2013-06-17 11:53   ` Igor Grinberg
2013-06-17 12:38     ` Tom Rini
2013-06-17 13:38       ` Igor Grinberg
2013-06-17 13:52         ` Stefan Roese
2013-06-17 14:03   ` [U-Boot] [PATCH v2 " Stefan Roese
2013-06-18  6:14     ` Nikita Kiryanov
2013-07-30 10:52   ` [U-Boot] [PATCH v3 " Stefan Roese
2013-07-30 12:10     ` Albert ARIBAUD
2013-07-30 12:14       ` Stefan Roese
2013-11-15  7:51   ` [U-Boot] [PATCH v4] " Stefan Roese
     [not found]     ` <5288BBAC.2020307@compulab.co.il>
     [not found]       ` <5295BF6C.20902@compulab.co.il>
     [not found]         ` <5295C3F8.50101@denx.de>
     [not found]           ` <529E01B7.4070402@compulab.co.il>
2013-12-04 11:38             ` [U-Boot] Fwd: " Stefan Roese
2013-12-04 11:57               ` Tom Rini
2013-12-04 12:02                 ` Stefan Roese
2013-12-04 12:15               ` Gupta, Pekon
2013-12-04 12:38                 ` Stefan Roese
2013-06-20 16:42 ` [U-Boot] [PATCH 1/3] arm: spl: Fix SPL booting for OMAP3 Albert ARIBAUD
2013-06-20 17:01   ` Stefan Roese
2013-06-20 17:51     ` Albert ARIBAUD
2013-06-20 18:28       ` Stefan Roese
2013-06-20 19:18         ` Albert ARIBAUD
2013-06-21  2:13 ` [U-Boot] [PATCH v2 " Stefan Roese
2013-06-21  8:57   ` Albert ARIBAUD [this message]
2013-06-21  9:10 ` [U-Boot] [PATCH v3 " Stefan Roese
2013-06-21 10:30   ` Albert ARIBAUD
2013-06-21 10:39     ` Stefan Roese
2013-06-21 10:42 ` [U-Boot] [PATCH v4 " Stefan Roese
2013-06-21 11:02   ` Albert ARIBAUD
2013-06-25  7:14 ` [U-Boot] [PATCH v5 " Stefan Roese
2013-06-27  8:27   ` Albert ARIBAUD
2013-07-03 19:47     ` Tom Rini
2013-07-04 11:58       ` Albert ARIBAUD
2013-07-15 14:33 ` [U-Boot] [PATCH " Tom Rini
2013-07-16  6:24   ` Stefan Roese
2013-07-16 14:36     ` Tom Rini

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=20130621105733.4d3185ef@lilith \
    --to=albert.u.boot@aribaud.net \
    --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.