diff options
author | Shawn Nematbakhsh <shawnn@chromium.org> | 2015-02-23 15:26:11 -0800 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2015-02-24 03:08:03 +0000 |
commit | a8628526a3a4790a1890ecffc6df1d42644697c8 (patch) | |
tree | b5ba7b6a1e708a4034ebed75fb168510c5aa75c4 /common/panic_output.c | |
parent | accd0da78954684274eb66d0d8d3a2683164e61b (diff) | |
download | chrome-ec-a8628526a3a4790a1890ecffc6df1d42644697c8.tar.gz |
panic: Send host event on panic detect
If a panic caused us to reboot, send a host event to notify the AP.
BUG=chrome-os-partner:36985
TEST=Manual on Samus. Trigger EC panic, verify that "Panic Reset in
previous boot" is seen in /var/log/eventlog.
BRANCH=Samus
Change-Id: Icf0d00a8cfc7aa788f3ceadd65fe3139f40df503
Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/252410
Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-by: Alec Berg <alecaberg@chromium.org>
Diffstat (limited to 'common/panic_output.c')
-rw-r--r-- | common/panic_output.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/common/panic_output.c b/common/panic_output.c index a2c5e56b32..4658dc6bb2 100644 --- a/common/panic_output.c +++ b/common/panic_output.c @@ -115,6 +115,20 @@ struct panic_data *panic_get_data(void) return pdata_ptr->magic == PANIC_DATA_MAGIC ? pdata_ptr : NULL; } +static void panic_init(void) +{ +#ifdef CONFIG_HOSTCMD_EVENTS + struct panic_data *addr = panic_get_data(); + + /* Notify host of new panic event */ + if (addr && !(addr->flags & PANIC_DATA_FLAG_OLD_HOSTEVENT)) { + host_set_single_event(EC_HOST_EVENT_PANIC); + addr->flags |= PANIC_DATA_FLAG_OLD_HOSTEVENT; + } +#endif +} +DECLARE_HOOK(HOOK_INIT, panic_init, HOOK_PRIO_DEFAULT); + #ifdef CONFIG_CMD_STACKOVERFLOW static void stack_overflow_recurse(int n) { |