summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaisuke Nojiri <dnojiri@chromium.org>2020-05-05 11:18:38 -0700
committerCommit Bot <commit-bot@chromium.org>2020-05-06 02:49:17 +0000
commitaa519e36857e1f19f8a4cd8806f4436cab7abd89 (patch)
tree676e7ca2bc28b9a6d4cfc9b468e1a49b0be07c1b
parenteebdb8338168b0cf3bb43e52eea520fab6b67df5 (diff)
downloadchrome-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.c16
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