diff options
author | Randall Spangler <rspangler@chromium.org> | 2018-05-18 14:27:42 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-05-22 21:57:12 -0700 |
commit | 9df26ce0f2a97bbc58b1807483fd22005e253b0f (patch) | |
tree | 651d4ff123841cdc0630b423e91e61395f894b68 /common/tpm_registers.c | |
parent | 4ec57f14091c42e2f9502d1c17146a06fa105a88 (diff) | |
download | chrome-ec-9df26ce0f2a97bbc58b1807483fd22005e253b0f.tar.gz |
cr50: Refactor tracking vendor command origin
Added flags parameter to extension_route_command(). The caller now
specifies whether the command comes from the USB interface or the AP.
Moved USB-specific shuffling of response to embed result code into
usb_upgrade.c, so extension_route_command() can be more generic.
No change to permissions/behavior for existing commands.
ccd_command_wrapper() still sends vendor commands as if they come from
the AP. That's fixed in the next CL.
Reduces code size by 128 bytes
BUG=b:79983505
BRANCH=cr50
TEST=manual
Build with DEBUG_EXTENSION defined, to turn on printing each command
'ccd lock' comes from AP and works
From host, 'gscutil -I' comes from USB and fails
From AP, 'gscutil -t -I' comes from AP and works
Change-Id: I7136bb54073de9c5951a174c308151b1871c56f3
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1068101
Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
Diffstat (limited to 'common/tpm_registers.c')
-rw-r--r-- | common/tpm_registers.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/common/tpm_registers.c b/common/tpm_registers.c index 06405d4b7e..959ca1c814 100644 --- a/common/tpm_registers.c +++ b/common/tpm_registers.c @@ -648,11 +648,12 @@ static void call_extension_command(struct tpm_cmd_header *tpmh, *total_size -= sizeof(struct tpm_cmd_header); subcommand_code = be16toh(tpmh->subcommand_code); - rc = tpm_extension_route_command(subcommand_code, - tpmh + 1, - command_size - - sizeof(struct tpm_cmd_header), - total_size); + rc = extension_route_command(subcommand_code, + tpmh + 1, + command_size - + sizeof(struct tpm_cmd_header), + total_size, + 0); /* Add the header size back. */ *total_size += sizeof(struct tpm_cmd_header); tpmh->size = htobe32(*total_size); |