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
next prev parent 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.