summaryrefslogtreecommitdiff
path: root/include/tpm-common.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/tpm-common.h')
-rw-r--r--include/tpm-common.h36
1 files changed, 34 insertions, 2 deletions
diff --git a/include/tpm-common.h b/include/tpm-common.h
index 5f8bc6bc528..3d88b44db7a 100644
--- a/include/tpm-common.h
+++ b/include/tpm-common.h
@@ -26,6 +26,8 @@ enum tpm_duration {
/* Max buffer size supported by our tpm */
#define TPM_DEV_BUFSIZE 1260
+#define TPM_PCR_MINIMUM_DIGEST_SIZE 20
+
/**
* enum tpm_version - The version of the TPM stack to be used
* @TPM_V1: Use TPM v1.x stack
@@ -174,12 +176,40 @@ struct tpm_ops {
int do_##cmd(cmd_tbl_t *cmdtp, int flag, \
int argc, char * const argv[]) \
{ \
+ struct udevice *dev; \
+ int rc; \
+ \
+ rc = get_tpm(&dev); \
+ if (rc) \
+ return rc; \
if (argc != 1) \
return CMD_RET_USAGE; \
- return report_return_code(cmd()); \
+ return report_return_code(cmd(dev)); \
}
/**
+ * tpm_open() - Request access to locality 0 for the caller
+ *
+ * After all commands have been completed the caller is supposed to
+ * call tpm_close().
+ *
+ * @dev - TPM device
+ * Returns 0 on success, -ve on failure.
+ */
+int tpm_open(struct udevice *dev);
+
+/**
+ * tpm_close() - Close the current session
+ *
+ * Releasing the locked locality. Returns 0 on success, -ve 1 on
+ * failure (in case lock removal did not succeed).
+ *
+ * @dev - TPM device
+ * Returns 0 on success, -ve on failure.
+ */
+int tpm_close(struct udevice *dev);
+
+/**
* tpm_get_desc() - Get a text description of the TPM
*
* @dev: Device to check
@@ -202,6 +232,7 @@ int tpm_get_desc(struct udevice *dev, char *buf, int size);
* Note that the outgoing data is inspected to determine command type
* (ordinal) and a timeout is used for that command type.
*
+ * @dev - TPM device
* @sendbuf - buffer of the data to send
* @send_size size of the data to send
* @recvbuf - memory to save the response to
@@ -216,9 +247,10 @@ int tpm_xfer(struct udevice *dev, const u8 *sendbuf, size_t send_size,
/**
* Initialize TPM device. It must be called before any TPM commands.
*
+ * @dev - TPM device
* @return 0 on success, non-0 on error.
*/
-int tpm_init(void);
+int tpm_init(struct udevice *dev);
/**
* Retrieve the array containing all the v1 (resp. v2) commands.