diff options
author | Daisuke Nojiri <dnojiri@chromium.org> | 2020-05-05 11:18:38 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-05-06 02:49:17 +0000 |
commit | aa519e36857e1f19f8a4cd8806f4436cab7abd89 (patch) | |
tree | 676e7ca2bc28b9a6d4cfc9b468e1a49b0be07c1b | |
parent | eebdb8338168b0cf3bb43e52eea520fab6b67df5 (diff) | |
download | chrome-ec-aa519e36857e1f19f8a4cd8806f4436cab7abd89.tar.gz |
stm32: Add chip_read_reset_flags and chip_save_reset_flags
Battery backed up RAM is used to store the reset flags.
This patch wraps the code reading and writing the reset flags
with APIs for the consistency and make it available to external
callers.
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
BUG=chromium:1078470
BRANCH=none
TEST=buildall
Change-Id: Ica31008b8f0f89f6804002c2c796e3b3c117e06a
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2182563
Commit-Queue: Daisuke Nojiri <dnojiri@chromium.org>
Tested-by: Daisuke Nojiri <dnojiri@chromium.org>
Auto-Submit: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-by: Craig Hesling <hesling@chromium.org>
-rw-r--r-- | chip/stm32/system.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/chip/stm32/system.c b/chip/stm32/system.c index 5056b7e219..09c8ad4c63 100644 --- a/chip/stm32/system.c +++ b/chip/stm32/system.c @@ -73,9 +73,19 @@ void system_hibernate(uint32_t seconds, uint32_t microseconds) __enter_hibernate(seconds, microseconds); } +uint32_t chip_read_reset_flags(void) +{ + return bkpdata_read_reset_flags(); +} + +void chip_save_reset_flags(uint32_t flags) +{ + bkpdata_write_reset_flags(flags); +} + static void check_reset_cause(void) { - uint32_t flags = bkpdata_read_reset_flags(); + uint32_t flags = chip_read_reset_flags(); uint32_t raw_cause = STM32_RCC_RESET_CAUSE; uint32_t pwr_status = STM32_PWR_RESET_CAUSE; @@ -84,7 +94,7 @@ static void check_reset_cause(void) /* Clear SBF in PWR_CSR */ STM32_PWR_RESET_CAUSE_CLR |= RESET_CAUSE_SBF_CLR; /* Clear saved reset flags */ - bkpdata_write_reset_flags(0); + chip_save_reset_flags(0); if (raw_cause & RESET_CAUSE_WDG) { /* @@ -338,7 +348,7 @@ void system_reset(int flags) save_flags |= EC_RESET_FLAG_AP_WATCHDOG; #endif - bkpdata_write_reset_flags(save_flags); + chip_save_reset_flags(save_flags); if (flags & SYSTEM_RESET_HARD) { #ifdef CONFIG_SOFTWARE_PANIC |