From 0e0bc8bbbdfd29e6e6e4efc43b60e0ac42e1dd77 Mon Sep 17 00:00:00 2001 From: "Vic (Chun-Ju) Yang" Date: Thu, 28 Nov 2013 12:07:32 +0800 Subject: mec1322: Add support for VBAT backed RAM This will be used for saving data across reboots. BUG=chrome-os-partner:24107 TEST=Enable scratchpad command and check value is preserved across watchdog reboot. BRANCH=None Change-Id: Ifd68541a3f842c466b6ff49bcc654c92df48aac6 Signed-off-by: Vic (Chun-Ju) Yang Reviewed-on: https://chromium-review.googlesource.com/178276 Reviewed-by: Vincent Palatin --- chip/mec1322/system.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'chip/mec1322/system.c') diff --git a/chip/mec1322/system.c b/chip/mec1322/system.c index 276803289b..62c08e028d 100644 --- a/chip/mec1322/system.c +++ b/chip/mec1322/system.c @@ -16,6 +16,11 @@ #include "timer.h" #include "util.h" +/* Indices for hibernate data registers (RAM backed by VBAT) */ +enum hibdata_index { + HIBDATA_INDEX_SCRATCHPAD = 0, /* General-purpose scratchpad */ + HIBDATA_INDEX_SAVED_RESET_FLAGS /* Saved reset flags */ +}; @@ -78,6 +83,17 @@ int system_set_vbnvcontext(const uint8_t *block) return EC_ERROR_UNIMPLEMENTED; } +int system_set_scratchpad(uint32_t value) +{ + MEC1322_VBAT_RAM(HIBDATA_INDEX_SCRATCHPAD) = value; + return EC_SUCCESS; +} + +uint32_t system_get_scratchpad(void) +{ + return MEC1322_VBAT_RAM(HIBDATA_INDEX_SCRATCHPAD); +} + void system_hibernate(uint32_t seconds, uint32_t microseconds) { /* TODO(crosbug.com/p/24107): Implement this */ -- cgit v1.2.1