#include <tpm-common.h>
#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;
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;
}
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;
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);
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);
}