All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] arm: socfpga: dm: Fix DM initialization failure after warm reset
Date: Sat, 29 Aug 2015 16:46:25 +0200	[thread overview]
Message-ID: <201508291646.25832.marex@denx.de> (raw)
In-Reply-To: <CAPnjgZ2J13DYFvW9S=xrtEx+_i820=mtTgKehiRsz3zQUcgAMA@mail.gmail.com>

On Saturday, August 29, 2015 at 04:39:43 PM, Simon Glass wrote:
> Hi Marek,
> 
> On 29 August 2015 at 01:56, Marek Vasut <marex@denx.de> wrote:
> > On Saturday, August 29, 2015 at 01:21:31 AM, Simon Glass wrote:
> > > Hi,
> > > 
> > > On 28 August 2015 at 02:41, Jian Luo <Jian.Luo4@boschrexroth.de> wrote:
> > > > gd->dm_root is not cleared in SPL after warm reset.
> > > > This might cause DM initilazation failure.
> > > > 
> > > > Signed-off-by: Jian Luo <jian.luo4@boschrexroth.de>
> > > > ---
> > > > 
> > > >  arch/arm/mach-socfpga/spl.c | 6 ++++++
> > > >  1 file changed, 6 insertions(+)
> > > > 
> > > > diff --git a/arch/arm/mach-socfpga/spl.c
> > > > b/arch/arm/mach-socfpga/spl.c index 13ec24b..59fe1f2 100644
> > > > --- a/arch/arm/mach-socfpga/spl.c
> > > > +++ b/arch/arm/mach-socfpga/spl.c
> > > > @@ -181,5 +181,11 @@ void board_init_f(ulong dummy)
> > > > 
> > > >         /* Configure simple malloc base pointer into RAM. */
> > > >         gd->malloc_base = CONFIG_SYS_TEXT_BASE + (1024 * 1024);
> > > > 
> > > > +       /*
> > > > +        * gd->dm_root might contain non-zero value after warm reset.
> > > > +        * Clear it to avoid dm_init error
> > > > +        */
> > > > +       gd->dm_root = NULL;
> > > > +
> > > > 
> > > >         board_init_r(NULL, 0);
> > > >  
> > > >  }
> > > > 
> > > > --
> > > > 1.9.1
> > > 
> > > This does not look like the root cause to me. global_data is zeroed by
> > > crt0.S if CONFIG_SPL_FRAMEWORK is set, which it seems to be for
> > > socfpga.
> > > 
> > > What boot path does 'warm reset' take?
> > 
> > Warm reset resets the CPU core(s) and jumps to 0x0 in SRAM (without
> > re-reading anything from the boot media).
> 
> Does that mean it skips crt0.S? How come global_data is not zeroed there?

No, it does not mean it skips crt0.S . After the warm reset, the bootrom
jumps onto the reset vector, so crt0.S (_main) must be executed.

> > > Also BTW it would be better if board_init_f() returned rather than
> > > calling board_init_r() directly.
> > 
> > I'm all for it, it'd trim down the stack utilisation slightly too.
> 
> Sound good.

Done ;-)

Best regards,
Marek Vasut

  reply	other threads:[~2015-08-29 14:46 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-28  8:41 [U-Boot] [PATCH] arm: socfpga: dm: Fix DM initialization failure after warm reset Jian Luo
2015-08-28  9:24 ` Marek Vasut
2015-08-28 10:27   ` Jian Luo
2015-08-28 10:30     ` Marek Vasut
2015-08-28 11:40       ` Jian Luo
2015-08-28 12:01         ` Marek Vasut
2015-08-28 12:09           ` Jian Luo
2015-08-28 21:48             ` Marek Vasut
2015-08-31 13:00               ` Jian Luo
2015-08-31 13:28                 ` Marek Vasut
2015-09-02 16:27                   ` Jian Luo
2015-09-03  9:41                     ` Marek Vasut
2015-09-03 10:03                       ` Jian Luo
2015-09-03 10:09                         ` Marek Vasut
2015-09-03 10:17                           ` Jian Luo
2015-09-03 10:46                             ` Marek Vasut
2015-09-03 11:12                               ` Jian Luo
2015-09-03 11:14                                 ` Marek Vasut
2015-09-04  0:23                                   ` Simon Glass
2015-09-04  7:36                                     ` Jian Luo
2015-09-04 14:16                                       ` Simon Glass
2015-09-04 14:25                                         ` Marek Vasut
2015-09-04 14:26                                           ` Simon Glass
2015-09-04 14:32                                             ` Marek Vasut
2015-09-22 12:26                                               ` Jian Luo
2015-08-28 23:21 ` Simon Glass
2015-08-29  7:56   ` Marek Vasut
2015-08-29 14:39     ` Simon Glass
2015-08-29 14:46       ` Marek Vasut [this message]
2015-08-29 14:49         ` Simon Glass
2015-08-29 15:45           ` Marek Vasut
2015-08-29 16:54             ` Simon Glass
2015-08-29 19:19               ` Marek Vasut

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=201508291646.25832.marex@denx.de \
    --to=marex@denx.de \
    --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.