From: Ralf Baechle <ralf@linux-mips.org>
To: Andrew Sharp <andy.sharp@onstor.com>
Cc: linux-mips@linux-mips.org, akpm@linux-foundation.org, wim@iguana.be
Subject: Re: [PATCH] Add support for SB1 hardware watchdog.
Date: Mon, 3 Dec 2007 23:08:28 +0000 [thread overview]
Message-ID: <20071203230828.GA17960@linux-mips.org> (raw)
In-Reply-To: <20071203181658.GA26631@onstor.com>
On Mon, Dec 03, 2007 at 10:17:04AM -0800, Andrew Sharp wrote:
> + Watchdog driver for the built in watchdog hardware in Sibyte
> + SoC processors. There are apparently two watchdog timers
> + on such processors; this driver supports only the first one,
> + because currently Linux only supports exporting one watchdog
> + to userspace.
And even four watchdogs in the BCM1480.
You'd think they'd trust their hardware more than that ;-)
> + * This driver is intended to make the second of two hardware watchdogs
> + * on the Sibyte 12XX and 11XX SoCs available to the user. There are two
> + * such devices available on the SoC, but it seems that there isn't an
> + * enumeration class for watchdogs in Linux like there is for RTCs.
> + * The second is used rather than the first because it uses IRQ 1,
> + * thereby avoiding all that IRQ 0 problematic nonsense.
> + *
> + * I have not tried this driver on a 1480 processor; it might work
> + * just well enough to really screw things up.
Four rather similar watchdogs using four interrupts also.
> + * It is a simple timer, and there is an interrupt that is raised the
> + * first time the timer expires. The second time it expires, the chip
> + * is reset and there is no way to redirect that NMI. Which could
> + * be problematic in some cases where this chip is sitting on the HT
> + * bus and has just taken responsibility for providing a cache block.
> + * Since the reset can't be redirected to the external reset pin, it is
> + * possible that other HT connected processors might hang and not reset.
> + * For Linux, a soft reset would probably be even worse than a hard reset.
> + * There you have it.
If read requests are never returned eventually the ZB bus HT host bridge will
run out of buffers after the 16th request. The CPU has four more buffers
so the 21st read will stall the CPU's execution. About a milisecond later
the machine check exception will make the CPU resume execution. But at this
stage some registers are marked busy in the register scoreboard and any
reference to those CPU registers will cause the CPU to hang again ... until
the next machine check. Game over, press button to continue.
> + * The timer takes 23 bits of a 64 bit register (?) as a count value,
> + * and decrements the count every microsecond, for a max value of
> + * 0x7fffff usec or about 8.3ish seconds.
One off - the maximum time is 0x800000µs.
Ralf
next prev parent reply other threads:[~2007-12-03 23:10 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-03 18:17 [PATCH] Add support for SB1 hardware watchdog Andrew Sharp
2007-12-03 18:34 ` Alan Cox
2007-12-03 19:24 ` Andrew Sharp
2007-12-03 23:08 ` Ralf Baechle [this message]
2007-12-05 3:41 ` Kaz Kylheku
2007-12-05 3:41 ` Kaz Kylheku
2007-12-05 3:50 ` Kaz Kylheku
2007-12-05 3:50 ` Kaz Kylheku
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=20071203230828.GA17960@linux-mips.org \
--to=ralf@linux-mips.org \
--cc=akpm@linux-foundation.org \
--cc=andy.sharp@onstor.com \
--cc=linux-mips@linux-mips.org \
--cc=wim@iguana.be \
/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.