summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2015-08-22 18:31:40 -0600
committerSimon Glass <sjg@chromium.org>2015-08-31 07:57:29 -0600
commitad77694e23be841feeb91e8173d4d3d4e8ef2bf0 (patch)
treed6e32ccd18f76376d08e34bf4bd5816b208e9ca4
parentd616ba5f5b2a119b597b9974e2bb62e25c933fc8 (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.c26
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"