From: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
To: rtc-linux@googlegroups.com
Cc: Johan Hovold <jhovold@gmail.com>,
Nicolas Ferre <nicolas.ferre@atmel.com>,
Andrew Victor <linux@maxim.org.za>,
Alessandro Zummo <a.zummo@towertech.it>,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [rtc-linux] [PATCH 3/3] ARM: at91: fix hanged boot
Date: Mon, 11 Mar 2013 12:06:37 +0100 [thread overview]
Message-ID: <20130311110637.GG4590@game.jcrosoft.org> (raw)
In-Reply-To: <20130311100243.GD8797@localhost>
On 11:02 Mon 11 Mar , Johan Hovold wrote:
> On Fri, Mar 08, 2013 at 05:02:58PM +0100, Jean-Christophe PLAGNIOL-VILLARD wrote:
> > On 13:51 Fri 08 Mar , Johan Hovold wrote:
> > > Make sure the RTC and RTT-interrupts are masked at boot by adding a new
> > > SOC-initialiser and helpers functions.
> > >
> > > This fixes hanged boot on all AT91 SOCs but RM9200, for example, after a
> > > reset during an RTC-update or if an RTC or RTT-alarm goes off after a
> > > non-clean shutdown.
> > >
> > > The RTC and RTT-peripherals are powered by backup power (VDDBU) (on all
> > > AT91 SOCs but RM9200) and are not reset on wake-up, user, watchdog or
> > > software reset. This means that their interrupts may be enabled during
> > > early boot if, for example, they where not disabled during a previous
> > > shutdown (e.g. due to a buggy driver or a non-clean shutdown such as a
> > > user reset). Furthermore, an RTC or RTT-alarm may also be active.
> > >
> > > The RTC and RTT-interrupts use the shared system-interrupt line, and if
> > > an interrupt occurs before a handler (e.g. RTC-driver) has been
> > > installed this leads to the system interrupt being disabled and prevents
> > > the system from booting.
> > >
> > > Note that when boot hangs due to an early RTC or RTT-interrupt, the only
> > > way to get the system to start again is to remove the backup power (e.g.
> > > battery) or to disable the interrupt manually from the bootloader. In
> > > particular, a user reset is not sufficient.
> > >
> > > Tested on at91sam9263 and at91sam9g45.
> > >
> > > Signed-off-by: Johan Hovold <jhovold@gmail.com>
> > > ---
> > > arch/arm/mach-at91/at91rm9200.c | 9 ++++++++
> > > arch/arm/mach-at91/at91sam9260.c | 6 ++++++
> > > arch/arm/mach-at91/at91sam9261.c | 6 ++++++
> > > arch/arm/mach-at91/at91sam9263.c | 7 ++++++
> > > arch/arm/mach-at91/at91sam9g45.c | 7 ++++++
> > > arch/arm/mach-at91/at91sam9n12.c | 6 ++++++
> > > arch/arm/mach-at91/at91sam9rl.c | 7 ++++++
> > > arch/arm/mach-at91/at91sam9x5.c | 6 ++++++
> > > arch/arm/mach-at91/generic.h | 2 ++
> > > arch/arm/mach-at91/include/mach/at91sam9n12.h | 5 +++++
> > > arch/arm/mach-at91/include/mach/at91sam9x5.h | 5 +++++
> > nack for DT probe te address via DT
>
> Fair enough. I'll respin and add proper DT-support.
>
> > > arch/arm/mach-at91/setup.c | 31 +++++++++++++++++++++++++++
> > > arch/arm/mach-at91/soc.h | 1 +
> > > 13 files changed, 98 insertions(+)
> >
> > at boot time we can disable all the irq as we need none of them
>
> Yes, but all but the VDDBU-powered-peripheral ones will already have
> been disabled at reset. If a buggy bootloader enables something it
> should not, then the bootloader should be fixed.
so fix the bootloader NACK in the kernel
it's too much ugly
the kernel requirere the interrupt to be disabled
Best Regards,
J.
next prev parent reply other threads:[~2013-03-11 13:06 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-08 12:51 [PATCH 0/3] ARM: at91: fix hanged boot Johan Hovold
2013-03-08 12:51 ` [PATCH 1/3] ARM: at91/rtc: fix boot after RTC wake-up Johan Hovold
2013-03-08 12:51 ` [PATCH 2/3] Revert "arm: at91: move at91rm9200 rtc header in drivers/rtc" Johan Hovold
2013-03-08 12:51 ` [PATCH 3/3] ARM: at91: fix hanged boot Johan Hovold
2013-03-08 16:02 ` [rtc-linux] " Jean-Christophe PLAGNIOL-VILLARD
2013-03-11 10:02 ` Johan Hovold
2013-03-11 11:06 ` Jean-Christophe PLAGNIOL-VILLARD [this message]
2013-03-11 18:06 ` Johan Hovold
2013-03-11 18:07 ` [PATCH v2 0/5] " Johan Hovold
2013-03-11 18:07 ` [PATCH v2 1/5] ARM: at91/rtc: fix boot after RTC wake-up Johan Hovold
2013-03-11 18:07 ` [PATCH v2 2/5] ARM: at91/dts: add RTC nodes Johan Hovold
2013-03-11 18:07 ` [PATCH v2 3/5] ARM: at91/dts: add RTT nodes Johan Hovold
2013-03-11 18:07 ` [PATCH v2 4/5] Revert "arm: at91: move at91rm9200 rtc header in drivers/rtc" Johan Hovold
2013-03-11 18:07 ` [PATCH v2 5/5] ARM: at91: fix hanged boot Johan Hovold
2013-04-11 15:55 ` [PATCH v2 0/5] " Johan Hovold
2013-04-11 16:54 ` [rtc-linux] " Jean-Christophe PLAGNIOL-VILLARD
2013-04-12 9:33 ` Johan Hovold
2013-04-12 12:09 ` Nicolas Ferre
2013-10-16 9:56 ` [PATCH v3 0/3] " Johan Hovold
2013-10-16 9:56 ` [PATCH v3 1/3] ARM: at91: fix hanged boot due to early rtc-interrupt Johan Hovold
2013-11-15 11:09 ` Nicolas Ferre
2013-10-16 9:56 ` [PATCH v3 2/3] ARM: at91: fix hanged boot due to early rtt-interrupt Johan Hovold
2013-11-15 11:10 ` Nicolas Ferre
2013-10-16 9:56 ` [PATCH v3 3/3] ARM: at91/rtc: disable interrupts at shutdown Johan Hovold
2013-11-15 10:43 ` Nicolas Ferre
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=20130311110637.GG4590@game.jcrosoft.org \
--to=plagnioj@jcrosoft.com \
--cc=a.zummo@towertech.it \
--cc=jhovold@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@maxim.org.za \
--cc=nicolas.ferre@atmel.com \
--cc=rtc-linux@googlegroups.com \
/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