diff options
author | Simon Glass <sjg@chromium.org> | 2015-08-22 18:31:40 -0600 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2015-08-31 07:57:29 -0600 |
commit | ad77694e23be841feeb91e8173d4d3d4e8ef2bf0 (patch) | |
tree | d6e32ccd18f76376d08e34bf4bd5816b208e9ca4 | |
parent | d616ba5f5b2a119b597b9974e2bb62e25c933fc8 (diff) |
tpm: Add a 'tpm info' command
Add a command to display basic information about a TPM such as the model and
open/close state. This can be useful for debugging.
Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Christophe Ricard <christophe-h.ricard@st.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
-rw-r--r-- | common/cmd_tpm.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/common/cmd_tpm.c b/common/cmd_tpm.c index e9c661821c..97501cc3d1 100644 --- a/common/cmd_tpm.c +++ b/common/cmd_tpm.c @@ -456,6 +456,26 @@ static int get_tpm(struct udevice **devp) return 0; } + +static int do_tpm_info(cmd_tbl_t *cmdtp, int flag, int argc, + char *const argv[]) +{ + struct udevice *dev; + char buf[80]; + int rc; + + rc = get_tpm(&dev); + if (rc) + return rc; + rc = tpm_get_desc(dev, buf, sizeof(buf)); + if (rc < 0) { + printf("Couldn't get TPM info (%d)\n", rc); + return CMD_RET_FAILURE; + } + printf("%s\n", buf); + + return 0; +} #endif static int do_tpm_raw_transfer(cmd_tbl_t *cmdtp, int flag, @@ -637,6 +657,9 @@ TPM_COMMAND_NO_ARG(tpm_end_oiap) U_BOOT_CMD_MKENT(cmd, 0, 1, do_tpm_ ## cmd, "", "") static cmd_tbl_t tpm_commands[] = { +#ifdef CONFIG_DM_TPM + U_BOOT_CMD_MKENT(info, 0, 1, do_tpm_info, "", ""), +#endif U_BOOT_CMD_MKENT(init, 0, 1, do_tpm_init, "", ""), U_BOOT_CMD_MKENT(startup, 0, 1, @@ -707,6 +730,9 @@ U_BOOT_CMD(tpm, CONFIG_SYS_MAXARGS, 1, do_tpm, "cmd args...\n" " - Issue TPM command <cmd> with arguments <args...>.\n" "Admin Startup and State Commands:\n" +#ifdef CONFIG_DM_TPM +" info - Show information about the TPM\n" +#endif " init\n" " - Put TPM into a state where it waits for 'startup' command.\n" " startup mode\n" |