From: Albert ARIBAUD <albert.u.boot@aribaud.net>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] arm: rmobile: bugfix: wrong register saving in lowlevel_init
Date: Sun, 7 Oct 2012 19:35:49 +0200 [thread overview]
Message-ID: <20121007193549.30d58eed@lilith> (raw)
In-Reply-To: <20121007192127.62b52ba8@lilith>
Hi Albert,
On Sun, 7 Oct 2012 19:21:27 +0200, Albert ARIBAUD
<albert.u.boot@aribaud.net> wrote:
> Hi Albert,
>
> On Sun, 7 Oct 2012 19:19:37 +0200, Albert ARIBAUD
> <albert.u.boot@aribaud.net> wrote:
>
> > Hi Jeroen,
> >
> > On Sun, 07 Oct 2012 17:18:27 +0200, Jeroen Hofstee
> > <dasuboot@myspectrum.nl> wrote:
> >
> > > Hello All,
> > >
> > > On 10/07/2012 01:34 PM, Enric Balletb? i Serra wrote:
> > > > Hi Albert,
> > > >
> > > > 2012/10/5 Albert ARIBAUD <albert.u.boot@aribaud.net>:
> > > >> Hi Tetsuyuki,
> > > >>
> > > >> On Fri, 5 Oct 2012 13:39:22 +0900, Tetsuyuki Kobayashi
> > > >> <koba@kmckk.co.jp> wrote:
> > > >>
> > > >>> lowlevel_init() of rmobile badly assumed that ip register holds return address.
> > > >>> The commit "63ee53a7 armv7 cpu_init_crit: Simplify code" breaks this assumption.
> > > >>> This patch removes this bad assumption and simplify code.
> > > >>>
> > > >>> Signed-off-by: Tetsuyuki Kobayashi <koba@kmckk.co.jp>
> > > >>> ---
> > > >>>
> > > >> ...
> > > > Note that the patch that Tetsuyuki says also breaks SPL support for
> > > > OMAP3 boards, at least my IGEP boards doesn't boot and hangs at SPL
> > > > level.
> > > >
> > > > U-Boot SPL 2012.10-rc1-00244-g28e5ac2 (Oct 07 2012 - 13:11:29)
> > > >
> > > > Bisecting the problem I encountered the problem is the commit
> > > > "63ee53a7 armv7 cpu_init_crit: Simplify code".
> > > >
> > > > Cheers,
> > > > Enric
> > > >
> > > I can confirm above. Also the tam3517 som (omap3) fails to boot due to
> > > mentioned commit. The patch from Tetsuyuki is arch specific (rmobile) so
> > > that won't fix the omap case. Reverting the patch, 63ee53a, does help.
> > >
> > > Is there anything against reverting the patch (at least for the release...)?
> >
> > Here is my opinion:
> >
> > 1) I think patch 63ee53a7 is right in considering there is no need for
> > cpu_init_crit to save lr in ip before calling lowlevel_init especially
> > considering this is a tail call.
> >
> > Only lowlevel_init can tell if it uses ip or lr for its own purposes,
> > thus any saving of ip and/or lr due to the workings of lowlevel_init
> > should be performed in lowlevel_init.
> >
> > 2) I am not sure that the patch in this discussion depends on 63ee53a7,
> > because IIUC, the patch simply saves ip "on a stack" then lr into ip,
> > and after running s_init, restores from ip and ip from the stack; it
> > never assumes ip contains a return address.
> >
> > I know we're that close to the release, but I want to be sure we
> > understand what needs fixing. Kobayashi, Jeroen, can you indicate
> > precisely how the issues you encounter are related to 63ee53a7?
>
> (adding back Tetsuyuki's mail in the Cc: list -- why had it
> disappeared?)
>
> > > Regards,
> > > Jeroen
> >
> > Amicalement,
>
> Amicalement,
Hmm... I notice only now that I had mentally 'fixed' the order of the
restoring lines removed by the patch. Had they been in the right order
(mov lr, ip then ldr ip, [sp]) the original code would have worked,
albeit probably useless.
I suspect that the bad ordering was actually a mistake unseen, and
that the dependence on ip being a return address is only due to this
mistake.
In any case, this makes me *more* determined that 63ee53a7 is right,as
well as this patch.
Jeroen, I suspect that your problem comes from the fact that the same
bug that this patch uncovers and fixes exists also in
arch/arm/cpu/armv7/omap3/lowlevel_init.S (lines 216-218 and 228-229)
... and would be better fixed there than by reverting 63ee53a7.
Amicalement,
--
Albert.
next prev parent reply other threads:[~2012-10-07 17:35 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-04 16:57 [U-Boot] Pull request: u-boot-arm/master Albert ARIBAUD
2012-10-04 18:31 ` Tom Rini
2012-10-05 4:39 ` [U-Boot] [PATCH] arm: rmobile: bugfix: wrong register saving in lowlevel_init Tetsuyuki Kobayashi
2012-10-05 16:23 ` Albert ARIBAUD
2012-10-07 11:34 ` Enric Balletbò i Serra
2012-10-07 15:18 ` Jeroen Hofstee
2012-10-07 17:19 ` Albert ARIBAUD
2012-10-07 17:21 ` Albert ARIBAUD
2012-10-07 17:35 ` Albert ARIBAUD [this message]
2012-10-09 1:59 ` Tetsuyuki Kobayashi
2012-10-09 1:49 ` Tetsuyuki Kobayashi
2012-10-08 18:47 ` [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=20121007193549.30d58eed@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox