summaryrefslogtreecommitdiff
path: root/common/ccd_config.c
diff options
context:
space:
mode:
authorVadim Bendebury <vbendeb@google.com>2018-02-06 17:20:56 -0800
committerVadim Bendebury <vbendeb@chromium.org>2018-02-08 02:31:20 +0000
commit4a673c15ad36698a7a00fe7dbbc86854b7b7596c (patch)
tree8433a1425609c160434d3fcc16e80ea81e5d799e /common/ccd_config.c
parent41a308abcb02474e3883a5be7c3001738c020789 (diff)
downloadchrome-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.c13
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);