From: jhovold@gmail.com (Johan Hovold)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 0/5] ARM: at91: fix hanged boot
Date: Thu, 11 Apr 2013 17:55:05 +0200 [thread overview]
Message-ID: <20130411155505.GD21305@localhost> (raw)
In-Reply-To: <1363025279-17615-1-git-send-email-jhovold@gmail.com>
On Mon, Mar 11, 2013 at 07:07:54PM +0100, Johan Hovold wrote:
> These patches fix a few severe issues affecting most AT91 SOCs where
> boot can hang after a non-general reset, and where the only way to get
> the system booting again is to do a general reset -- something which
> could require physically removing any backup battery.
Have you had time to look at these patches yet, Nicolas?
I don't think not having decided on the path forward for DT-support for
rtc-at91sam9 needs to be a blocker. The rtt-nodes will be needed in any
case.
I could respin the series on top of the DT-patch for rtc-at91rm9200, and
add interrupt and status-disabled properties to the DT-nodes as well.
Thanks,
Johan
> The problems stem from the fact that the RTC and RTT-peripherals are
> powered by backup power (VDDBU) and are not reset on wake-up, user,
> watchdog or software reset. Consequently, RTC and RTT-alarms and their
> interrupts may be enabled at boot, leading to a system lock-up when an
> interrupt arrives on the shared system-interrupt line before the
> appropriate handler (e.g. RTC-driver) has been installed.
>
> The easiest way to trigger this is to simply wake up from an RTC-alarm
> on at91sam9g45. The RTC-driver currently does not disable interrupts at
> shutdown so even after a clean shut-down the system will always hang
> after waking up.
>
> The first patch fixes this very general case of RTC-wake up after a
> clean shutdown in the RTC-driver and is marked for stable as it is
> perfectly straight-forward. [ Note that the other, RTT-based, AT91
> RTC-driver already disables its interrupts at shutdown. ]
>
> The more general problem can be triggered, for example, by doing a
> user-reset while updating the RTC-time or if an RTC or RTT-alarm goes
> off after a non-clean shutdown.
>
> To fix this I propose that arch-code should mask the relevant interrupts
> before enabling the system interrupt at early boot, and this is what
> the fifth patch does. To access the RTC-registers I choose to revert a
> recent patch that moved the register definitions to drivers/rtc.
>
> Arguably, the relevant interrupts could also be disabled in bootloaders,
> but I suggest fixing it in the kernel once and for all.
>
> The patches have been tested on at91sam9263 and at91sam9g45 (non-DT),
> and compile-tested for the other SOCs and DT.
>
> Johan
>
>
> v2:
> - add DT-support
> - make sys_irq_mask non-mandatory
>
>
> Johan Hovold (5):
> ARM: at91/rtc: fix boot after RTC wake-up
> ARM: at91/dts: add RTC nodes
> ARM: at91/dts: add RTT nodes
> Revert "arm: at91: move at91rm9200 rtc header in drivers/rtc"
> ARM: at91: fix hanged boot
WARNING: multiple messages have this Message-ID (diff)
From: Johan Hovold <jhovold@gmail.com>
To: Nicolas Ferre <nicolas.ferre@atmel.com>
Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>,
Andrew Victor <linux@maxim.org.za>,
Alessandro Zummo <a.zummo@towertech.it>,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, rtc-linux@googlegroups.com,
Johan Hovold <jhovold@gmail.com>
Subject: Re: [PATCH v2 0/5] ARM: at91: fix hanged boot
Date: Thu, 11 Apr 2013 17:55:05 +0200 [thread overview]
Message-ID: <20130411155505.GD21305@localhost> (raw)
In-Reply-To: <1363025279-17615-1-git-send-email-jhovold@gmail.com>
On Mon, Mar 11, 2013 at 07:07:54PM +0100, Johan Hovold wrote:
> These patches fix a few severe issues affecting most AT91 SOCs where
> boot can hang after a non-general reset, and where the only way to get
> the system booting again is to do a general reset -- something which
> could require physically removing any backup battery.
Have you had time to look at these patches yet, Nicolas?
I don't think not having decided on the path forward for DT-support for
rtc-at91sam9 needs to be a blocker. The rtt-nodes will be needed in any
case.
I could respin the series on top of the DT-patch for rtc-at91rm9200, and
add interrupt and status-disabled properties to the DT-nodes as well.
Thanks,
Johan
> The problems stem from the fact that the RTC and RTT-peripherals are
> powered by backup power (VDDBU) and are not reset on wake-up, user,
> watchdog or software reset. Consequently, RTC and RTT-alarms and their
> interrupts may be enabled at boot, leading to a system lock-up when an
> interrupt arrives on the shared system-interrupt line before the
> appropriate handler (e.g. RTC-driver) has been installed.
>
> The easiest way to trigger this is to simply wake up from an RTC-alarm
> on at91sam9g45. The RTC-driver currently does not disable interrupts at
> shutdown so even after a clean shut-down the system will always hang
> after waking up.
>
> The first patch fixes this very general case of RTC-wake up after a
> clean shutdown in the RTC-driver and is marked for stable as it is
> perfectly straight-forward. [ Note that the other, RTT-based, AT91
> RTC-driver already disables its interrupts at shutdown. ]
>
> The more general problem can be triggered, for example, by doing a
> user-reset while updating the RTC-time or if an RTC or RTT-alarm goes
> off after a non-clean shutdown.
>
> To fix this I propose that arch-code should mask the relevant interrupts
> before enabling the system interrupt at early boot, and this is what
> the fifth patch does. To access the RTC-registers I choose to revert a
> recent patch that moved the register definitions to drivers/rtc.
>
> Arguably, the relevant interrupts could also be disabled in bootloaders,
> but I suggest fixing it in the kernel once and for all.
>
> The patches have been tested on at91sam9263 and at91sam9g45 (non-DT),
> and compile-tested for the other SOCs and DT.
>
> Johan
>
>
> v2:
> - add DT-support
> - make sys_irq_mask non-mandatory
>
>
> Johan Hovold (5):
> ARM: at91/rtc: fix boot after RTC wake-up
> ARM: at91/dts: add RTC nodes
> ARM: at91/dts: add RTT nodes
> Revert "arm: at91: move at91rm9200 rtc header in drivers/rtc"
> ARM: at91: fix hanged boot
next prev parent reply other threads:[~2013-04-11 15:55 UTC|newest]
Thread overview: 50+ 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 ` 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 ` 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 ` Johan Hovold
2013-03-08 12:51 ` [PATCH 3/3] ARM: at91: fix hanged boot Johan Hovold
2013-03-08 12:51 ` Johan Hovold
2013-03-08 16:02 ` [rtc-linux] " Jean-Christophe PLAGNIOL-VILLARD
2013-03-08 16:02 ` Jean-Christophe PLAGNIOL-VILLARD
2013-03-11 10:02 ` Johan Hovold
2013-03-11 10:02 ` Johan Hovold
2013-03-11 11:06 ` Jean-Christophe PLAGNIOL-VILLARD
2013-03-11 11:06 ` Jean-Christophe PLAGNIOL-VILLARD
2013-03-11 18:06 ` Johan Hovold
2013-03-11 18:06 ` Johan Hovold
2013-03-11 18:07 ` [PATCH v2 0/5] " Johan Hovold
2013-03-11 18:07 ` 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 ` Johan Hovold
2013-03-11 18:07 ` [PATCH v2 2/5] ARM: at91/dts: add RTC nodes Johan Hovold
2013-03-11 18:07 ` Johan Hovold
2013-03-11 18:07 ` [PATCH v2 3/5] ARM: at91/dts: add RTT nodes Johan Hovold
2013-03-11 18:07 ` 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 ` Johan Hovold
2013-03-11 18:07 ` [PATCH v2 5/5] ARM: at91: fix hanged boot Johan Hovold
2013-03-11 18:07 ` Johan Hovold
2013-04-11 15:55 ` Johan Hovold [this message]
2013-04-11 15:55 ` [PATCH v2 0/5] " Johan Hovold
2013-04-11 16:54 ` [rtc-linux] " Jean-Christophe PLAGNIOL-VILLARD
2013-04-11 16:54 ` Jean-Christophe PLAGNIOL-VILLARD
2013-04-12 9:33 ` Johan Hovold
2013-04-12 9:33 ` Johan Hovold
2013-04-12 12:09 ` Nicolas Ferre
2013-04-12 12:09 ` Nicolas Ferre
2013-10-16 9:56 ` [PATCH v3 0/3] " Johan Hovold
2013-10-16 9:56 ` Johan Hovold
2013-10-16 9:56 ` [PATCH v3 1/3] ARM: at91: fix hanged boot due to early rtc-interrupt Johan Hovold
2013-10-16 9:56 ` Johan Hovold
2013-11-15 11:09 ` Nicolas Ferre
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-10-16 9:56 ` Johan Hovold
2013-11-15 11:10 ` Nicolas Ferre
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-10-16 9:56 ` Johan Hovold
2013-11-15 10:43 ` Nicolas Ferre
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=20130411155505.GD21305@localhost \
--to=jhovold@gmail.com \
--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.