diff options
author | Amaury Pouly <amaury.pouly@gmail.com> | 2014-02-02 04:31:54 +0100 |
---|---|---|
committer | Amaury Pouly <amaury.pouly@gmail.com> | 2014-02-10 23:14:24 +0100 |
commit | 6d64111b3c2f772cfc3539bb13851f78d4b55870 (patch) | |
tree | f08fb564cdafb53e20b797646426d862fb115cc2 /firmware/target/arm/imx233/timrot-imx233.h | |
parent | 1a06292e418ceb765121e5792b305e17d39b9618 (diff) | |
download | rockbox-6d64111b3c2f772cfc3539bb13851f78d4b55870.tar.gz rockbox-6d64111b3c2f772cfc3539bb13851f78d4b55870.zip |
imx233: add hardware and software watchdog
The hardware watchdog automatically shutdown the device after 10s of
inactivity, being defined as 10s without the tick IRQ fired (aka braindead
device).
The software IRQ mechanism is more interesting: it uses a very high priority
timer setup as one-shot to trigger after 5s of inactivity (but IRQ still
enabled). When detected, it patches the running code to insert a SWI
instruction so that on interrupt return it will trigger a SWI and produce
a meaningfull backtrace to debug the deadlock. This should allow to debug
freezes in IRQ context.
Change-Id: Ic55dad01201676bfb6dd79e78e535c6707cb88e6
Diffstat (limited to 'firmware/target/arm/imx233/timrot-imx233.h')
-rw-r--r-- | firmware/target/arm/imx233/timrot-imx233.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/firmware/target/arm/imx233/timrot-imx233.h b/firmware/target/arm/imx233/timrot-imx233.h index f1a7780f34..e33de39390 100644 --- a/firmware/target/arm/imx233/timrot-imx233.h +++ b/firmware/target/arm/imx233/timrot-imx233.h | |||
@@ -32,6 +32,7 @@ enum | |||
32 | { | 32 | { |
33 | TIMER_TICK, /* for tick task */ | 33 | TIMER_TICK, /* for tick task */ |
34 | TIMER_USER, /* for user timer */ | 34 | TIMER_USER, /* for user timer */ |
35 | TIMER_WATCHDOG, /* for watchdog */ | ||
35 | }; | 36 | }; |
36 | 37 | ||
37 | struct imx233_timrot_info_t | 38 | struct imx233_timrot_info_t |