diff options
author | Shawn Nematbakhsh <shawnn@chromium.org> | 2017-08-02 17:30:54 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2017-08-10 22:47:24 -0700 |
commit | fe6a06fbf604fa587889ccc5bc3cc1597172ba3e (patch) | |
tree | 1ace2c0002da863e7ae39ed3fb542046acf8afe7 /include | |
parent | 76a64e7c826e0665d75327cf8d219f1a7a534dd4 (diff) | |
download | chrome-ec-fe6a06fbf604fa587889ccc5bc3cc1597172ba3e.tar.gz |
tpm: Add optional event logging
Allow TPM to log events in a circular buffer through tpm_log_event().
Logs can be retrieved through a new vendor command
VENDOR_CC_POP_LOG_ENTRY.
BUG=b:63760920
TEST=On eve, store TPM logs through 'logentry' cr50 console command,
verify logs are fetched correctly through 'trunks_send --pop_logentry'.
BRANCH=None
Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org>
Change-Id: Idbc405728c0ba68078447fb59717d6115830e3d8
Reviewed-on: https://chromium-review.googlesource.com/599352
Commit-Ready: Shawn N <shawnn@chromium.org>
Tested-by: Shawn N <shawnn@chromium.org>
Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/config.h | 3 | ||||
-rw-r--r-- | include/tpm_log.h | 19 | ||||
-rw-r--r-- | include/tpm_vendor_cmds.h | 2 |
3 files changed, 24 insertions, 0 deletions
diff --git a/include/config.h b/include/config.h index 57a1b3312a..bb17f6061e 100644 --- a/include/config.h +++ b/include/config.h @@ -759,6 +759,7 @@ #undef CONFIG_CMD_TASKREADY #define CONFIG_CMD_TEMP_SENSOR #define CONFIG_CMD_TIMERINFO +#undef CONFIG_CMD_TPM_LOG #define CONFIG_CMD_TYPEC #undef CONFIG_CMD_USART_INFO #define CONFIG_CMD_USBMUX @@ -2303,6 +2304,8 @@ #undef CONFIG_TPM_SPS /* Speak to the TPM 2.0 hardware protocol on the I2C slave interface */ #undef CONFIG_TPM_I2CS +/* Record TPM events in circular buffer */ +#undef CONFIG_TPM_LOGGING /*****************************************************************************/ /* USART stream config */ diff --git a/include/tpm_log.h b/include/tpm_log.h new file mode 100644 index 0000000000..d934560290 --- /dev/null +++ b/include/tpm_log.h @@ -0,0 +1,19 @@ +/* Copyright 2017 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef __CROS_EC_TPM_LOG_H +#define __CROS_EC_TPM_LOG_H + +#include "event_log.h" + +enum tpm_event { + TPM_EVENT_INIT, + /* TODO: Add log events */ +}; + +/* Log TPM event of given type with data payload. */ +void tpm_log_event(enum tpm_event type, uint16_t data); + +#endif /* __CROS_EC_TPM_LOG_H */ diff --git a/include/tpm_vendor_cmds.h b/include/tpm_vendor_cmds.h index ce1b3be057..f76685373c 100644 --- a/include/tpm_vendor_cmds.h +++ b/include/tpm_vendor_cmds.h @@ -41,6 +41,7 @@ enum vendor_cmd_cc { VENDOR_CC_GET_BOARD_ID = 25, VENDOR_CC_SET_BOARD_ID = 26, VENDOR_CC_U2F_APDU = 27, + VENDOR_CC_POP_LOG_ENTRY = 28, LAST_VENDOR_COMMAND = 65535, }; @@ -61,6 +62,7 @@ enum vendor_cmd_rc { VENDOR_RC_WRITE_FLASH_FAIL = 3, VENDOR_RC_REQUEST_TOO_BIG = 4, VENDOR_RC_RESPONSE_TOO_BIG = 5, + VENDOR_RC_INTERNAL_ERROR = 6, /* Only 7 bits available; max is 127 */ VENDOR_RC_NO_SUCH_COMMAND = 127, }; |