diff options
author | Vadim Bendebury <vbendeb@chromium.org> | 2016-11-25 11:57:04 -0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-11-28 20:53:50 -0800 |
commit | 1461cc8043bef82830be0cd4fdb1b0c7a939ab8a (patch) | |
tree | 94d42407825b17548d9bb0af6db287d0f982e31b /include/extension.h | |
parent | 5d80e5a86535243e98c209d7e4cd56a50d1ad38f (diff) | |
download | chrome-ec-1461cc8043bef82830be0cd4fdb1b0c7a939ab8a.tar.gz |
tpm: move extension and vendor command definitions into own file
Let's make sure that both embedded and host side use the same command
definitions. To avoid host compilation problems move the definitions
into a separate file.
BRANCH=none
BUG=none
TEST=compilation still works.
Change-Id: Id0d85a51aebabed0637965b3b19d7ed42c46e75e
Signed-off-by: Vadim Bendebury <vbendeb@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/414945
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Diffstat (limited to 'include/extension.h')
-rw-r--r-- | include/extension.h | 67 |
1 files changed, 1 insertions, 66 deletions
diff --git a/include/extension.h b/include/extension.h index 482da44048..3b960f5439 100644 --- a/include/extension.h +++ b/include/extension.h @@ -10,45 +10,7 @@ #include <stdint.h> #include "common.h" - -/* Extension and vendor commands. */ -enum vendor_cmd_cc { - /* Original extension commands */ - EXTENSION_AES = 0, - EXTENSION_HASH = 1, - EXTENSION_RSA = 2, - EXTENSION_ECC = 3, - EXTENSION_FW_UPGRADE = 4, - EXTENSION_HKDF = 5, - EXTENSION_ECIES = 6, - EXTENSION_POST_RESET = 7, - - LAST_EXTENSION_COMMAND = 15, - - /* Our TPMv2 vendor-specific command codes. 16 bits available. */ - VENDOR_CC_GET_LOCK = 16, - VENDOR_CC_SET_LOCK = 17, - VENDOR_CC_SYSINFO = 18, - VENDOR_CC_IMMEDIATE_RESET = 19, - - LAST_VENDOR_COMMAND = 65535, -}; - -/* Error codes reported by extension and vendor commands. */ -enum vendor_cmd_rc { - /* EXTENSION_HASH error codes */ - /* Attempt to start a session on an active handle. */ - EXC_HASH_DUPLICATED_HANDLE = 1, - EXC_HASH_TOO_MANY_HANDLES = 2, /* No room to allocate a new context. */ - /* Continuation/finish on unknown context. */ - EXC_HASH_UNKNOWN_CONTEXT = 3, - - /* Our TPMv2 vendor-specific response codes. */ - VENDOR_RC_SUCCESS = 0, - VENDOR_RC_BOGUS_ARGS = 1, - /* Only 7 bits available; max is 127 */ - VENDOR_RC_NO_SUCH_COMMAND = 127, -}; +#include "tpm_vendor_cmds.h" /* * Type of function handling extension commands. @@ -79,33 +41,6 @@ uint32_t extension_route_command(uint16_t command_code, size_t command_size, size_t *size); -/* - * The TPMv2 Spec mandates that vendor-specific command codes have bit 29 set, - * while bits 15-0 indicate the command. All other bits should be zero. - * We will define one of those 16-bit command values for Cr50 purposes, and use - * the subcommand_code in struct tpm_cmd_header to further distinguish the - * desired operation. - */ -#define TPM_CC_VENDOR_BIT_MASK 0x20000000 -#define VENDOR_CC_MASK 0x0000ffff -/* Our vendor-specific command codes go here */ -#define TPM_CC_VENDOR_CR50 0x0000 - -/* - * The TPM response code is all zero for success. - * Errors are a little complicated: - * - * Bits 31:12 must be zero. - * - * Bit 11 S=0 Error - * Bit 10 T=1 Vendor defined response code - * Bit 9 r=0 reserved - * Bit 8 V=1 Conforms to TPMv2 spec - * Bit 7 F=0 Confirms to Table 14, Format-Zero Response Codes - * Bits 6:0 num 128 possible failure reasons - */ -#define VENDOR_RC_ERR 0x00000500 - /* Pointer table */ struct extension_command { uint16_t command_code; |