diff options
author | Dino Li <Dino.Li@ite.com.tw> | 2018-08-03 13:55:43 +0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-08-03 13:37:27 -0700 |
commit | 16c114ed04bda59b601c0a75dce3b23c29b45668 (patch) | |
tree | be9b4ec10f9dca0f52f9ad1ccde181a8e58a8556 /chip/it83xx/registers.h | |
parent | 6a664f995c6c637023874a56e6bdbadf4259a857 (diff) | |
download | chrome-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.h | 22 |
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) /* |