diff options
author | Furquan Shaikh <furquan@chromium.org> | 2017-06-11 17:09:31 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2017-06-15 20:13:56 -0700 |
commit | 7651e32a95233c8b59fe0eb60095e1be3d3fef58 (patch) | |
tree | f066c4240b6c056368b8220dc698ca0fe9cd62fa /power/skylake.c | |
parent | 0153e43f7f7704baded1020c18332898098750a6 (diff) | |
download | chrome-ec-7651e32a95233c8b59fe0eb60095e1be3d3fef58.tar.gz |
power/skylake: Ensure panic data is backed up before PMIC reset
On PMIC reset, VCC power rail goes down thus resulting in loss of
panic data. Thus, provide a chance to the chip to backup panic data if
available.
BUG=b:62076222
BRANCH=None
TEST=make -j buildall
1. > crash divzero
> panic
=== PROCESS EXCEPTION: 06 ====== xPSR: ffffffff ===
r0 : r1 : r2 : r3 :
r4 :00000001 r5 :00000000 r6 :00000000 r7 :00000000
r8 :00000000 r9 :00000000 r10:00000000 r11:00000000
r12: sp :00000000 lr : pc :
Divide by 0
mmfs = 2000000, shcsr = 0, hfsr = 0, dfsr = 0
2. > crash assert
> panic
=== PROCESS EXCEPTION: 00 ====== xPSR: ffffffff ===
r0 : r1 : r2 : r3 :
r4 :dead6663 r5 :000000a4 r6 :00000000 r7 :00000000
r8 :00000000 r9 :00000000 r10:00000000 r11:00000000
r12: sp :00000000 lr : pc :
mmfs = 0, shcsr = 0, hfsr = 0, dfsr = 0
3. > crash watchdog
> panic
=== PROCESS EXCEPTION: 3c ====== xPSR: ffffffff ===
r0 : r1 : r2 : r3 :
r4 :dead6664 r5 :0000000a r6 :00000000 r7 :00000000
r8 :00000000 r9 :00000000 r10:00000000 r11:00000000
r12: sp :00000000 lr : pc :
mmfs = 0, shcsr = 0, hfsr = 0, dfsr = 0
4. > crash unaligned
> panic
=== PROCESS EXCEPTION: 06 ====== xPSR: ffffffff ===
r0 : r1 : r2 : r3 :
r4 :200c0d9e r5 :00000000 r6 :00000000 r7 :00000000
r8 :00000000 r9 :00000000 r10:00000000 r11:00000000
r12: sp :00000000 lr : pc :
Unaligned
mmfs = 1000000, shcsr = 0, hfsr = 0, dfsr = 0
Change-Id: Ife5c9bbc12dcf6c4922f18b7530b21a3b87e65b3
Signed-off-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/530138
Diffstat (limited to 'power/skylake.c')
-rw-r--r-- | power/skylake.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/power/skylake.c b/power/skylake.c index e13604559d..8f9533d79a 100644 --- a/power/skylake.c +++ b/power/skylake.c @@ -11,6 +11,7 @@ #include "hooks.h" #include "intel_x86.h" #include "lpc.h" +#include "panic.h" #include "power_button.h" #include "skylake.h" #include "system.h" @@ -163,6 +164,11 @@ static void chipset_handle_reboot(void) chip_save_reset_flags(RESET_FLAG_AP_OFF); } +#ifdef CONFIG_CHIP_PANIC_BACKUP + /* Ensure panic data if any is backed up. */ + chip_panic_data_backup(); +#endif + ccprintf("Restarting system with PMIC.\n"); /* Flush console */ cflush(); |