All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Guinot <simon.guinot@sequanux.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] v2015.10-rc2: timer not initialized on Kirkwood
Date: Thu, 3 Sep 2015 11:05:15 +0200	[thread overview]
Message-ID: <20150903090515.GU30993@kw.sim.vm.gnt> (raw)
In-Reply-To: <55E7DA61.4080701@denx.de>

Hi Stefan,

On Thu, Sep 03, 2015 at 07:28:01AM +0200, Stefan Roese wrote:
> Hi Simon,
> 
> On 02.09.2015 17:49, Simon Guinot wrote:
> >While testing U-Boot v2015.10-rc2 on the Kirkwood-based LaCie boards
> >I noticed that the autoboot counter is not decrementing. It stays stuck
> >at '3' endlessly. After some digging, I found out that this regression
> >is due to the commit: ade741b3896b1a3872ff74437f04b50762d05849
> >"arm: mvebu: Call timer_init early before PHY and DDR init".
> 
> Sorry about that. Unfortunately I don't have a Kirkwood target here.
> So I can't test any of the MVEBU changes on this platform.
> 
> >With this commit it appears that the timer initialization is skipped
> >on Kirkwood boards. As a consequence the timer is not ticking and then
> >all the features relying on the timer are most likely broken.
> >
> >On the Kirkwood boards, the timer_init function is only called from
> >from the ARM init_sequence. SPL support is disabled. The problem is
> >that the patch introduces a static init_done variable (to prevent
> >multiple timer initializations). But while debugging the timer_init
> >function (via JTAG), I noticed that the init_done initial value is not
> >zero. So the function exists without initializing the timer. A possible
> >explanation is that timer_init is called before the U-Boot relocation,
> >when the BSS segment is still not available...
> 
> Hmmm. I thought that BSS should be available and cleared at that
> time. But this does not seem to be the case.
> 
> >Maybe we should use an initialized variable instead ?
> 
> Could you please test the small attached patch? If this fixes the
> problem for you on your Kirkwood board?

I can confirm that the attached patch does fix the issue.

Thanks for the quick reply.

Simon

> 
> If yes, I'll submit it officially to the list for inclusion.
> 
> Thanks,
> Stefan
> 

> >From 9525d96509e36ae534a15f55afd2eae30f9e000a Mon Sep 17 00:00:00 2001
> From: Stefan Roese <sr@denx.de>
> Date: Thu, 3 Sep 2015 07:22:42 +0200
> Subject: [PATCH] arm: mvebu: timer.c: Explicitly move "init_done" var to data
>  section
> 
> As reported by Simon Guinot, commit ade741b3
> "arm: mvebu: Call timer_init early before PHY and DDR init" breaks
> Kirkwood platforms. As the static variable "init_done" is not
> available at that early boot time. This patch moves it to explicitly
> to the data section, making it available at that time.
> 
> Signed-off-by: Stefan Roese <sr@denx.de>
> Reported-by: Simon Guinot <simon.guinot@sequanux.org>
> Cc: Luka Perkov <luka.perkov@sartura.hr>
> ---
>  arch/arm/mach-mvebu/timer.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm/mach-mvebu/timer.c b/arch/arm/mach-mvebu/timer.c
> index c516c41..5449a89 100644
> --- a/arch/arm/mach-mvebu/timer.c
> +++ b/arch/arm/mach-mvebu/timer.c
> @@ -41,7 +41,7 @@
>  #define timestamp			gd->arch.tbl
>  #define lastdec				gd->arch.lastinc
>  
> -static int init_done;
> +static int init_done __attribute__((section(".data"))) = 0;
>  
>  /* Timer reload and current value registers */
>  struct kwtmr_val {
> -- 
> 2.5.1
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150903/9eac5742/attachment.sig>

      reply	other threads:[~2015-09-03  9:05 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-02 15:49 [U-Boot] v2015.10-rc2: timer not initialized on Kirkwood Simon Guinot
2015-09-03  5:28 ` Stefan Roese
2015-09-03  9:05   ` Simon Guinot [this message]

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=20150903090515.GU30993@kw.sim.vm.gnt \
    --to=simon.guinot@sequanux.org \
    --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.