summaryrefslogtreecommitdiff
path: root/chip/it83xx/registers.h
diff options
context:
space:
mode:
authorDino Li <Dino.Li@ite.com.tw>2018-08-03 13:55:43 +0800
committerchrome-bot <chrome-bot@chromium.org>2018-08-03 13:37:27 -0700
commit16c114ed04bda59b601c0a75dce3b23c29b45668 (patch)
treebe9b4ec10f9dca0f52f9ad1ccde181a8e58a8556 /chip/it83xx/registers.h
parent6a664f995c6c637023874a56e6bdbadf4259a857 (diff)
downloadchrome-ec-16c114ed04bda59b601c0a75dce3b23c29b45668.tar.gz
it83xx: clear BRAM if it is not valid
IT8320 do not have indicator for VBAT power to indicate if BRAM is valid or not, so we create a magic number to do the job. And BRAM will get cleared if it is not valid. BUG=none BRANCH=none TEST=BRAM will be cleared if valid field of BRAM doesn't match the magic number. Change-Id: I6f3b166830f6c2f33f663ec0e5da9178d81d397b Signed-off-by: Dino Li <Dino.Li@ite.com.tw> Reviewed-on: https://chromium-review.googlesource.com/1158453 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Reviewed-by: Furquan Shaikh <furquan@chromium.org>
Diffstat (limited to 'chip/it83xx/registers.h')
-rw-r--r--chip/it83xx/registers.h22
1 files changed, 18 insertions, 4 deletions
diff --git a/chip/it83xx/registers.h b/chip/it83xx/registers.h
index 227cdc2f99..57d73f7a26 100644
--- a/chip/it83xx/registers.h
+++ b/chip/it83xx/registers.h
@@ -1100,7 +1100,7 @@ REG8(IT83XX_PMC_BASE + (ch > LPC_PM2 ? 5 : 8) + (ch << 4))
/* Battery backed RAM indices. */
enum bram_indices {
/* reset flags uses 4 bytes */
- BRAM_IDX_RESET_FLAGS = 0,
+ BRAM_IDX_RESET_FLAGS0 = 0,
BRAM_IDX_RESET_FLAGS1 = 1,
BRAM_IDX_RESET_FLAGS2 = 2,
BRAM_IDX_RESET_FLAGS3 = 3,
@@ -1111,7 +1111,7 @@ enum bram_indices {
/* index 6 ~ 7 are reserved */
- BRAM_IDX_SCRATCHPAD = 8,
+ BRAM_IDX_SCRATCHPAD0 = 8,
BRAM_IDX_SCRATCHPAD1 = 9,
BRAM_IDX_SCRATCHPAD2 = 0xa,
BRAM_IDX_SCRATCHPAD3 = 0xb,
@@ -1120,17 +1120,31 @@ enum bram_indices {
/* NVCONTEXT uses 16 bytes */
BRAM_IDX_NVCONTEXT = 0x10,
BRAM_IDX_NVCONTEXT_END = 0x1F,
+
+ /* offset 0x20 ~ 0x7b are reserved for future use. */
+
+ /* This field is used to indicate BRAM is valid or not. */
+ BRAM_IDX_VALID_FLAGS0 = 0x7c,
+ BRAM_IDX_VALID_FLAGS1 = 0x7d,
+ BRAM_IDX_VALID_FLAGS2 = 0x7e,
+ BRAM_IDX_VALID_FLAGS3 = 0x7f
+ /* offset 0x7f is the end of BRAM bank 0. */
};
-#define BRAM_RESET_FLAGS IT83XX_BRAM_BANK0(BRAM_IDX_RESET_FLAGS)
+#define BRAM_RESET_FLAGS0 IT83XX_BRAM_BANK0(BRAM_IDX_RESET_FLAGS0)
#define BRAM_RESET_FLAGS1 IT83XX_BRAM_BANK0(BRAM_IDX_RESET_FLAGS1)
#define BRAM_RESET_FLAGS2 IT83XX_BRAM_BANK0(BRAM_IDX_RESET_FLAGS2)
#define BRAM_RESET_FLAGS3 IT83XX_BRAM_BANK0(BRAM_IDX_RESET_FLAGS3)
-#define BRAM_SCRATCHPAD IT83XX_BRAM_BANK0(BRAM_IDX_SCRATCHPAD)
+#define BRAM_SCRATCHPAD0 IT83XX_BRAM_BANK0(BRAM_IDX_SCRATCHPAD0)
#define BRAM_SCRATCHPAD1 IT83XX_BRAM_BANK0(BRAM_IDX_SCRATCHPAD1)
#define BRAM_SCRATCHPAD2 IT83XX_BRAM_BANK0(BRAM_IDX_SCRATCHPAD2)
#define BRAM_SCRATCHPAD3 IT83XX_BRAM_BANK0(BRAM_IDX_SCRATCHPAD3)
+#define BRAM_VALID_FLAGS0 IT83XX_BRAM_BANK0(BRAM_IDX_VALID_FLAGS0)
+#define BRAM_VALID_FLAGS1 IT83XX_BRAM_BANK0(BRAM_IDX_VALID_FLAGS1)
+#define BRAM_VALID_FLAGS2 IT83XX_BRAM_BANK0(BRAM_IDX_VALID_FLAGS2)
+#define BRAM_VALID_FLAGS3 IT83XX_BRAM_BANK0(BRAM_IDX_VALID_FLAGS3)
+
#define IT83XX_BRAM_BANK1(i) REG8(IT83XX_BRAM_BASE + 0x80 + i)
/*