From: hjk@linutronix.de (Hans J. Koch)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2] mx35: Fix boot ROM hang in internal boot mode
Date: Thu, 12 Aug 2010 14:15:04 +0200 [thread overview]
Message-ID: <20100812121504.GC8670@local> (raw)
In-Reply-To: <20100812112938.GB8670@local>
On Thu, Aug 12, 2010 at 01:29:40PM +0200, Hans J. Koch wrote:
> On Thu, Aug 12, 2010 at 07:57:53AM +0200, Uwe Kleine-K?nig wrote:
> > > + }
> > > +
> > > + __raw_writel(cgr2, CCM_BASE + CCM_CGR2);
> > > + __raw_writel(cgr3, CCM_BASE + CCM_CGR3);
> > Note that my question concerning the UART clock was less about UART1 vs
> > UART0 but more if the ROM really needs a UART clock.
>
> In my tests on an mx35pdk board, I found these three clocks being the
> minimum set of additional clocks that need to be turned on. That means,
> if you turn off any of the three, it won't boot anymore.
For my tests, I didn't fully boot the kernel but inserted a while(1) after
the clock init sequence. I had the wachdog already initialized in the
bootloader, so after a few seconds it would boot again - or not.
If you fully boot the kernel, then the driver will probably switch on
the UART1 clock, so you don't notice the effect anymore. But the kernel
can hang _before_ drivers come up, and it should still work. That's
what hardware watchdogs are for.
As a sidenote, it should be clear that this patch is a workaround for
a serious chip bug of the MX35. The MX35 promises a watchdog that cannot
be turned off once triggered. That's true, but of course, in case of a
kernel crash, the watchdog has to be able to reliably reboot the system.
That is not the case. Any driver going wild and writing a zero to the
wrong register can easily turn the CPU into a desperate piece of silicon
as soon as the watchdog reset occurs.
Also note that this also affects a normal system reboot using arch_reset()
since that one also uses the hardware watchdog.
Thanks,
Hans
next prev parent reply other threads:[~2010-08-12 12:15 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-11 23:37 [PATCH v2] mx35: Fix boot ROM hang in internal boot mode Hans J. Koch
2010-08-12 5:57 ` Uwe Kleine-König
2010-08-12 11:29 ` Hans J. Koch
2010-08-12 12:15 ` Hans J. Koch [this message]
2010-08-13 8:17 ` Uwe Kleine-König
2010-08-13 8:58 ` Eric Bénard
2010-08-13 10:04 ` Hans J. Koch
2010-08-13 10:25 ` Uwe Kleine-König
-- strict thread matches above, loose matches on Subject: below --
2010-09-24 8:13 John Ogness
2010-09-24 10:10 ` Hans J. Koch
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=20100812121504.GC8670@local \
--to=hjk@linutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
/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.