All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeroen Hofstee <jeroen@myspectrum.nl>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH V2] arm: armv7: omap3: Fix restore sequence in lowlevel_init
Date: Sun, 07 Oct 2012 21:29:46 +0200	[thread overview]
Message-ID: <5071D82A.2080804@myspectrum.nl> (raw)
In-Reply-To: <1349637850-12029-1-git-send-email-albert.u.boot@aribaud.net>

On 10/07/2012 09:24 PM, Albert ARIBAUD wrote:
> The restore sequence in lowlevel_init was in the wrong order,
> causing lr to lose its original value and be set equal to ip
> instead. Also, its use of the stack clashes with that of
> s_init, so move the s_init call after the restore and turn
> it  into a tail-optimized branch.
>
> Signed-off-by: Albert ARIBAUD <albert.u.boot@aribaud.net>
> ---
> V2: move s_init call after restore and tail-optimize it into a branch
> V1: fix order of restores
>
>   arch/arm/cpu/armv7/omap3/lowlevel_init.S |    9 ++++-----
>   1 file changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/arch/arm/cpu/armv7/omap3/lowlevel_init.S b/arch/arm/cpu/armv7/omap3/lowlevel_init.S
> index ebf69fa..eacfef8 100644
> --- a/arch/arm/cpu/armv7/omap3/lowlevel_init.S
> +++ b/arch/arm/cpu/armv7/omap3/lowlevel_init.S
> @@ -214,7 +214,7 @@ pll_div_val5:
>   
>   ENTRY(lowlevel_init)
>   	ldr	sp, SRAM_STACK
> -	str	ip, [sp]	/* stash old link register */
> +	str	ip, [sp]	/* stash ip register */
>   	mov	ip, lr		/* save link reg across call */
>   #if !defined(CONFIG_SYS_NAND_BOOT) && !defined(CONFIG_SYS_ONENAND_BOOT)
>   /*
> @@ -224,12 +224,11 @@ ENTRY(lowlevel_init)
>   	ldr	r1, =SRAM_CLK_CODE
>   	bl	cpy_clk_code
>   #endif /* NAND Boot */
> -	bl	s_init		/* go setup pll, mux, memory */
> -	ldr	ip, [sp]	/* restore save ip */
>   	mov	lr, ip		/* restore link reg */
> +	ldr	ip, [sp]	/* restore save ip */
> +	/* tail-call s_init to setup pll, mux, memory */
> +	b	s_init
>   
> -	/* back to arch calling code */
> -	mov	pc, lr
>   ENDPROC(lowlevel_init)
>   
>   	/* the literal pools origin */
Tested-by: Jeroen Hofstee <jeroen@myspectrum.nl>

on a tam3517 SOM (am3517 mcu) derived board.

Regards,
Jeroen

  reply	other threads:[~2012-10-07 19:29 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-07 19:24 [U-Boot] [PATCH V2] arm: armv7: omap3: Fix restore sequence in lowlevel_init Albert ARIBAUD
2012-10-07 19:29 ` Jeroen Hofstee [this message]
2012-10-08 18:48 ` [U-Boot] [U-Boot, " 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=5071D82A.2080804@myspectrum.nl \
    --to=jeroen@myspectrum.nl \
    --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.