public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Tetsuyuki Kobayashi <koba@kmckk.co.jp>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] arm: rmobile: bugfix: wrong register saving in lowlevel_init
Date: Tue, 09 Oct 2012 10:59:04 +0900	[thread overview]
Message-ID: <507384E8.8050905@kmckk.co.jp> (raw)
In-Reply-To: <20121007193549.30d58eed@lilith>

Hello.

(2012/10/08 2:35), Albert ARIBAUD wrote:
> 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.
>
I have the same opinion as Albert.
63ee53a7 is right. It should not be reverted.
lowlevel_init.S in rmobile and omap have mistake, it should be fixed.

I checked 2012.10-rc3. It has already done.
Thank you very much.

  reply	other threads:[~2012-10-09  1:59 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
2012-10-09  1:59                 ` Tetsuyuki Kobayashi [this message]
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=507384E8.8050905@kmckk.co.jp \
    --to=koba@kmckk.co.jp \
    --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