summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNamyoon Woo <namyoon@google.com>2020-04-28 13:30:23 -0700
committerNamyoon Woo <namyoon@chromium.org>2020-04-28 20:56:19 +0000
commita9df84cc9623c6e3592dbdcc4bd57aa34b741fab (patch)
tree1c467b164f3e2cd709893aeb3a0f5d7f017a8723
parent6673f20ec210a8a055f8717ae9662ae4d818dbc3 (diff)
downloadchrome-ec-a9df84cc9623c6e3592dbdcc4bd57aa34b741fab.tar.gz
fix to set the TPM VC response size as zero on error cases
This patch fixes cr50 to set the TPM VC response size as zero before it returns an error code upon VENDOR_CC_GET_BOOT_MODE or VENDOR_CC_RESET_EC. BUG=b:155214584 TEST=ran 'gsctool --getbootmode' on atlas where the board property does not contain BOARD_EC_CR50_COMM_SUPPORT. [cr50] > brdprop properties = 0x1041 [Before the fix] $ gsctool --getbootmode finding_device 18d1:5014 Found device. found interface 3 endpoint 4, chunk_len 64 READY ------- ../../util/usb_if.c:209, libusb_bulk_transfer returned -8 (Overflow) [After the fix] $ gsctool -g finding_device 18d1:5014 Found device. found interface 3 endpoint 4, chunk_len 64 READY ------- Error 8 in Getting boot mode Signed-off-by: Namyoon Woo <namyoon@google.com> Change-Id: Ic1d9b261415487f0a3a0690e6090cbb5387ddd64 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2171167 Tested-by: Namyoon Woo <namyoon@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Commit-Queue: Namyoon Woo <namyoon@chromium.org>
-rw-r--r--common/ec_efs.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/common/ec_efs.c b/common/ec_efs.c
index a0b912b9a4..4a3cb2b996 100644
--- a/common/ec_efs.c
+++ b/common/ec_efs.c
@@ -139,8 +139,10 @@ static enum vendor_cmd_rc vc_get_boot_mode_(struct vendor_cmd_params *p)
{
uint8_t *buffer;
- if (!board_has_ec_cr50_comm_support())
+ if (!board_has_ec_cr50_comm_support()) {
+ p->out_size = 0;
return VENDOR_RC_NO_SUCH_SUBCOMMAND;
+ }
buffer = (uint8_t *)p->buffer;
buffer[0] = (uint8_t)ec_efs_ctx.boot_mode;
@@ -158,6 +160,8 @@ DECLARE_VENDOR_COMMAND_P(VENDOR_CC_GET_BOOT_MODE, vc_get_boot_mode_);
*/
static enum vendor_cmd_rc vc_reset_ec_(struct vendor_cmd_params *p)
{
+ p->out_size = 0;
+
if (!board_has_ec_cr50_comm_support())
return VENDOR_RC_NO_SUCH_SUBCOMMAND;