diff options
author | Namyoon Woo <namyoon@google.com> | 2020-04-28 13:30:23 -0700 |
---|---|---|
committer | Namyoon Woo <namyoon@chromium.org> | 2020-04-28 20:56:19 +0000 |
commit | a9df84cc9623c6e3592dbdcc4bd57aa34b741fab (patch) | |
tree | 1c467b164f3e2cd709893aeb3a0f5d7f017a8723 | |
parent | 6673f20ec210a8a055f8717ae9662ae4d818dbc3 (diff) | |
download | chrome-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.c | 6 |
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; |