diff options
author | Dino Li <dino.li@ite.com.tw> | 2015-07-22 11:39:54 +0800 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2015-07-22 06:26:20 +0000 |
commit | 2f4a59037990891570af032f7ce41397b499347a (patch) | |
tree | 75db6bcad1771667f423b69b8f3e329ce753d13e /chip | |
parent | 57ec5805fe302b8da22e4141a3e5620812fd7663 (diff) | |
download | chrome-ec-2f4a59037990891570af032f7ce41397b499347a.tar.gz |
it8380dev: fix reset cause
symptom: there are many reset cause while chip power on.
root cause: there is no default value for bram.
Signed-off-by: Dino Li <dino.li@ite.com.tw>
BRANCH=none
BUG=none
TEST=1. "power-on" reset cause still exist.
2. console "reboot" hard, preserve, and ap-off.
3. console "sysjump" rw and ro.
Change-Id: Ie190ade4990bfaf46e73746ac5019f61307c81e5
Reviewed-on: https://chromium-review.googlesource.com/286281
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Reviewed-by: Alec Berg <alecaberg@chromium.org>
Commit-Queue: Dino Li <dino.li@ite.com.tw>
Tested-by: Dino Li <dino.li@ite.com.tw>
Diffstat (limited to 'chip')
-rw-r--r-- | chip/it83xx/system.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/chip/it83xx/system.c b/chip/it83xx/system.c index 8d434c9c5c..f0cb9ddd73 100644 --- a/chip/it83xx/system.c +++ b/chip/it83xx/system.c @@ -51,10 +51,14 @@ static void check_reset_cause(void) flags |= RESET_FLAG_POWER_ON; /* Restore then clear saved reset flags. */ - flags |= REG8(IT83XX_BRAM_BASE+BRAM_INDEX_SAVED_RESET_FLAGS) << 24; - flags |= REG8(IT83XX_BRAM_BASE+BRAM_INDEX_SAVED_RESET_FLAGS+1) << 16; - flags |= REG8(IT83XX_BRAM_BASE+BRAM_INDEX_SAVED_RESET_FLAGS+2) << 8; - flags |= REG8(IT83XX_BRAM_BASE+BRAM_INDEX_SAVED_RESET_FLAGS+3); + if (!(flags & RESET_FLAG_POWER_ON)) { + const uint32_t addr = + IT83XX_BRAM_BASE+BRAM_INDEX_SAVED_RESET_FLAGS; + flags |= REG8(addr + 0) << 24; + flags |= REG8(addr + 1) << 16; + flags |= REG8(addr + 2) << 8; + flags |= REG8(addr + 3); + } REG8(IT83XX_BRAM_BASE+BRAM_INDEX_SAVED_RESET_FLAGS) = 0; REG8(IT83XX_BRAM_BASE+BRAM_INDEX_SAVED_RESET_FLAGS+1) = 0; |