diff options
author | Randall Spangler <rspangler@chromium.org> | 2017-07-17 16:23:47 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2017-07-27 19:56:22 -0700 |
commit | 424000159ea540beb6ac4a9274c16b96344ed04b (patch) | |
tree | 1fa0cfbd80990ebc9a4fea22d12916f171da8ee1 /include/case_closed_debug.h | |
parent | 3be8c42996dc69a497025a9a3404cc58154cc234 (diff) | |
download | chrome-ec-424000159ea540beb6ac4a9274c16b96344ed04b.tar.gz |
cr50: Disable CCD on board ID mismatch
If there is a board ID mismatch and rollback is not possible Cr50
firmware will enter a limited mode which only support Cr50 firmware
upgrade. All other features must be disabled, because it is not
possible to know which features should be allowed on the mismatched
board.
See go/cr50-ccd-wp for more information.
BUG=b:62537474
BRANCH=cr50
TEST=manual with CR50_DEV=1 build, define CONFIG_CMD_CCDDISABLE
ccdinfo --> state=opened
ccddisable --> state=locked(disabled), all capabilities disabled
ccdunlock --> access denied
ccdopen --> access denied
ccdreset --> access denied
ccdpassword --> access denied
ccdset --> access denied
ccdoops
ccdinfo --> state=opened, back to defaults
Change-Id: Idb66fb1f3d5106aa0c2cb6addf2404ea9942b0d6
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/590070
Reviewed-by: Mary Ruthven <mruthven@chromium.org>
Diffstat (limited to 'include/case_closed_debug.h')
-rw-r--r-- | include/case_closed_debug.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/include/case_closed_debug.h b/include/case_closed_debug.h index 77ad0f496f..2283d6474d 100644 --- a/include/case_closed_debug.h +++ b/include/case_closed_debug.h @@ -183,4 +183,13 @@ int ccd_is_cap_enabled(enum ccd_capability cap); */ enum ccd_state ccd_get_state(void); +/** + * Force CCD disabled. + * + * This should be called if security checks fail and for some reason the board + * can't immediately reboot. It locks CCD and disables all CCD capabilities + * until reboot. + */ +void ccd_disable(void); + #endif /* __CROS_EC_CASE_CLOSED_DEBUG_H */ |