diff options
author | Vadim Bendebury <vbendeb@google.com> | 2018-02-06 17:20:56 -0800 |
---|---|---|
committer | Vadim Bendebury <vbendeb@chromium.org> | 2018-02-08 02:31:20 +0000 |
commit | 4a673c15ad36698a7a00fe7dbbc86854b7b7596c (patch) | |
tree | 8433a1425609c160434d3fcc16e80ea81e5d799e /common/ccd_config.c | |
parent | 41a308abcb02474e3883a5be7c3001738c020789 (diff) | |
download | chrome-ec-4a673c15ad36698a7a00fe7dbbc86854b7b7596c.tar.gz |
rma: enable WP on RMA disable
When RMA procedure is completed WP needs to be enabled back.
BRANCH=cr50, cr50-mp
BUG=b:37952913, b:73075443
TEST=on a Robo device, verified that WP is enabled, took the device
through RMA unlock, verified that WP is disabled, took the device
through RMA disable, verified that WP is enabled again.
Also confirmed that after RMA is disabled WP status follows the
battery.
Change-Id: Iad6af7d16aadcd10d580f709aeb942cf508a8489
Signed-off-by: Vadim Bendebury <vbendeb@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/905926
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Diffstat (limited to 'common/ccd_config.c')
-rw-r--r-- | common/ccd_config.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/common/ccd_config.c b/common/ccd_config.c index 3e8165e97f..18b9aaa077 100644 --- a/common/ccd_config.c +++ b/common/ccd_config.c @@ -24,6 +24,7 @@ #include "tpm_registers.h" #include "tpm_vendor_cmds.h" #include "trng.h" +#include "wp.h" #define CPRINTS(format, args...) cprints(CC_CCD, format, ## args) #define CPRINTF(format, args...) cprintf(CC_CCD, format, ## args) @@ -1530,6 +1531,7 @@ static enum vendor_cmd_rc ccd_disable_rma(enum vendor_cmd_cc code, do { if (raw_has_password()) { error_line = __LINE__; + rv = EC_ERROR_ACCESS_DENIED; break; } @@ -1571,6 +1573,17 @@ static enum vendor_cmd_rc ccd_disable_rma(enum vendor_cmd_cc code, ccd_lock(NULL, 0, NULL); + + /* + * We do it here to make sure that the device comes out of RMA + * with WP enabled, but in general CCD reset needs to enforce + * WP state. + * + * TODO(rspangler): sort out CCD state and WP correlation, + * b/73075443. + */ + set_wp_follow_ccd_config(); + *response_size = 0; return VENDOR_RC_SUCCESS; } while (0); |