X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=lib%2Ftpm-common.c;h=e4af87f76aa7aa13c47acd2109a42a755d7bef60;hb=90606da02dffb61195ade325f2be2e170e7c410c;hp=a440639cec302fc23d7a0fc31f2f82e2ab9f12ed;hpb=3d5ced9e22d32112a20f9dc0f5fb1f22ef088079;p=oweals%2Fu-boot.git diff --git a/lib/tpm-common.c b/lib/tpm-common.c index a440639cec..e4af87f76a 100644 --- a/lib/tpm-common.c +++ b/lib/tpm-common.c @@ -8,10 +8,18 @@ #include #include +#include #include #include #include "tpm-utils.h" +enum tpm_version tpm_get_version(struct udevice *dev) +{ + struct tpm_chip_priv *priv = dev_get_uclass_priv(dev); + + return priv->version; +} + int pack_byte_string(u8 *str, size_t size, const char *format, ...) { va_list args; @@ -112,7 +120,7 @@ int unpack_byte_string(const u8 *str, size_t size, const char *format, ...) if (offset + length > size) { va_end(args); - log_err("Failed to read: size=%d, offset=%x, len=%x\n", + log_err("Failed to read: size=%zd, offset=%zx, len=%zx\n", size, offset, length); return -1; } @@ -151,9 +159,9 @@ u32 tpm_return_code(const void *response) return get_unaligned_be32(response + return_code_offset); } -u32 tpm_sendrecv_command(const void *command, void *response, size_t *size_ptr) +u32 tpm_sendrecv_command(struct udevice *dev, const void *command, + void *response, size_t *size_ptr) { - struct udevice *dev; int err, ret; u8 response_buffer[COMMAND_BUFFER_SIZE]; size_t response_length; @@ -166,9 +174,6 @@ u32 tpm_sendrecv_command(const void *command, void *response, size_t *size_ptr) response_length = sizeof(response_buffer); } - ret = uclass_first_device_err(UCLASS_TPM, &dev); - if (ret) - return ret; err = tpm_xfer(dev, command, tpm_command_size(command), response, &response_length); @@ -188,14 +193,7 @@ u32 tpm_sendrecv_command(const void *command, void *response, size_t *size_ptr) return ret; } -int tpm_init(void) +int tpm_init(struct udevice *dev) { - struct udevice *dev; - int err; - - err = uclass_first_device_err(UCLASS_TPM, &dev); - if (err) - return err; - return tpm_open(dev); }