diff options
author | Simon Glass | 2022-08-30 21:05:36 -0600 |
---|---|---|
committer | Ilias Apalodimas | 2022-09-03 16:59:05 +0300 |
commit | 3bb4db4c3883c66ee0bbf152e9ba1d2504fa8c9f (patch) | |
tree | b94da976937e8039287e79b395ca9068f9f9e34f /cmd/tpm-common.c | |
parent | 6694c997b210656fc3e6ce63ba780bc9bf97c077 (diff) |
tpm: Allow reporting the internal state
It is useful to read information about the current TPM state, where
supported, e.g. for debugging purposes when verified boot fails.
Add support for this to the TPM interface as well as Cr50. Add a simple
sandbox test.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Diffstat (limited to 'cmd/tpm-common.c')
-rw-r--r-- | cmd/tpm-common.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/cmd/tpm-common.c b/cmd/tpm-common.c index 47adaffd184..d0c63cadf41 100644 --- a/cmd/tpm-common.c +++ b/cmd/tpm-common.c @@ -333,6 +333,26 @@ int do_tpm_info(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) return 0; } +int do_tpm_report_state(struct cmd_tbl *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_report_state(dev, buf, sizeof(buf)); + if (rc < 0) { + printf("Couldn't get TPM state (%d)\n", rc); + return CMD_RET_FAILURE; + } + printf("%s\n", buf); + + return 0; +} + int do_tpm_init(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { struct udevice *dev; |