[PATCH v3 05/11] tpm: Switch TPMv1 over to use the new API

Ilias Apalodimas ilias.apalodimas at linaro.org
Mon Jan 25 09:32:34 CET 2021


On Sat, Jan 23, 2021 at 10:26:01AM -0700, Simon Glass wrote:
> Take over the plain 'tpm_...' functions for use by the new TPM API. Rename
> all the TPMv1 functions so they are called from the API.
> 
> Update the TPMv1 functions so that they are called from the API. Change
> existing users to use the tpm1_ prefix so they don't need to go through
> the API, which might introduce uncertainty.
> 
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
> 
> (no changes since v1)
> 
>  board/gdsys/a38x/controlcenterdc.c    |   4 +-
>  board/gdsys/a38x/hre.c                |  28 +++----
>  board/gdsys/a38x/keyprogram.c         |   8 +-
>  board/gdsys/mpc8308/gazerbeam.c       |   4 +-
>  board/gdsys/p1022/controlcenterd-id.c |  36 ++++----
>  cmd/tpm-v1.c                          |  25 +++---
>  cmd/tpm_test.c                        |  40 +++++----
>  include/tpm-v1.h                      |  76 ++++++++---------
>  lib/Makefile                          |   1 +
>  lib/tpm-v1.c                          | 115 ++++++++++++--------------
>  10 files changed, 168 insertions(+), 169 deletions(-)
> 
> diff --git a/board/gdsys/a38x/controlcenterdc.c b/board/gdsys/a38x/controlcenterdc.c
> index a2287f9deb1..187ac8c4f9f 100644
> --- a/board/gdsys/a38x/controlcenterdc.c
> +++ b/board/gdsys/a38x/controlcenterdc.c
> @@ -286,8 +286,8 @@ int last_stage_init(void)
>  	ccdc_eth_init();
>  #endif
>  	ret = get_tpm(&tpm);
> -	if (ret || tpm_init(tpm) || tpm_startup(tpm, TPM_ST_CLEAR) ||
> -	    tpm_continue_self_test(tpm)) {
> +	if (ret || tpm_init(tpm) || tpm1_startup(tpm, TPM_ST_CLEAR) ||
> +	    tpm1_continue_self_test(tpm)) {
>  		return 1;
>  	}
>  
> diff --git a/board/gdsys/a38x/hre.c b/board/gdsys/a38x/hre.c
> index 699241b3e62..de5411a6b93 100644
> --- a/board/gdsys/a38x/hre.c
> +++ b/board/gdsys/a38x/hre.c
> @@ -107,8 +107,8 @@ static int get_tpm_nv_size(struct udevice *tpm, uint32_t index, uint32_t *size)
>  	uint8_t *ptr;
>  	uint16_t v16;
>  
> -	err = tpm_get_capability(tpm, TPM_CAP_NV_INDEX, index,
> -				 info, sizeof(info));
> +	err = tpm1_get_capability(tpm, TPM_CAP_NV_INDEX, index, info,
> +				  sizeof(info));

For all subsequent usage, can't we use tpm_get_capability() etc? Why do we
need to explicitly use the tpm1_get_capability() since we now have a common
API?

>  	if (err) {
>  		printf("tpm_get_capability(CAP_NV_INDEX, %08x) failed: %u\n",
>  		       index, err);
> @@ -150,8 +150,8 @@ static int find_key(struct udevice *tpm, const uint8_t auth[20],
>  	unsigned int i;
>  
>  	/* fetch list of already loaded keys in the TPM */
> -	err = tpm_get_capability(tpm, TPM_CAP_HANDLE, TPM_RT_KEY, buf,
> -				 sizeof(buf));
> +	err = tpm1_get_capability(tpm, TPM_CAP_HANDLE, TPM_RT_KEY, buf,
> +				  sizeof(buf));
>  	if (err)
>  		return -1;
>  	key_count = get_unaligned_be16(buf);
> @@ -162,8 +162,8 @@ static int find_key(struct udevice *tpm, const uint8_t auth[20],
>  	/* now search a(/ the) key which we can access with the given auth */
>  	for (i = 0; i < key_count; ++i) {
>  		buf_len = sizeof(buf);
> -		err = tpm_get_pub_key_oiap(tpm, key_handles[i], auth, buf,
> -					   &buf_len);
> +		err = tpm1_get_pub_key_oiap(tpm, key_handles[i], auth, buf,
> +					    &buf_len);
>  		if (err && err != TPM_AUTHFAIL)
>  			return -1;
>  		if (err)
> @@ -192,8 +192,8 @@ static int read_common_data(struct udevice *tpm)
>  	if (get_tpm_nv_size(tpm, NV_COMMON_DATA_INDEX, &size) ||
>  	    size < NV_COMMON_DATA_MIN_SIZE)
>  		return 1;
> -	err = tpm_nv_read_value(tpm, NV_COMMON_DATA_INDEX,
> -				buf, min(sizeof(buf), size));
> +	err = tpm1_nv_read_value(tpm, NV_COMMON_DATA_INDEX, buf,
> +				 min(sizeof(buf), size));
>  	if (err) {
>  		printf("tpm_nv_read_value() failed: %u\n", err);
>  		return 1;
> @@ -270,8 +270,8 @@ static struct h_reg *access_hreg(struct udevice *tpm, uint8_t spec,
>  	if (mode & HREG_RD) {
>  		if (!result->valid) {
>  			if (IS_PCR_HREG(spec)) {
> -				hre_tpm_err = tpm_pcr_read(tpm, HREG_IDX(spec),
> -					result->digest, 20);
> +				hre_tpm_err = tpm1_pcr_read(tpm, HREG_IDX(spec),
> +							    result->digest, 20);
>  				result->valid = (hre_tpm_err == TPM_SUCCESS);
>  			} else if (IS_FIX_HREG(spec)) {
>  				switch (HREG_IDX(spec)) {
> @@ -357,8 +357,8 @@ static int hre_op_loadkey(struct udevice *tpm, struct h_reg *src_reg,
>  		return -1;
>  	if (find_key(tpm, src_reg->digest, dst_reg->digest, &parent_handle))
>  		return -1;
> -	hre_tpm_err = tpm_load_key2_oiap(tpm, parent_handle, key, key_size,
> -					 src_reg->digest, &key_handle);
> +	hre_tpm_err = tpm1_load_key2_oiap(tpm, parent_handle, key, key_size,
> +					  src_reg->digest, &key_handle);
>  	if (hre_tpm_err) {
>  		hre_err = HRE_E_TPM_FAILURE;
>  		return -1;
> @@ -474,8 +474,8 @@ do_bin_func:
>  	}
>  
>  	if (dst_reg && dst_modified && IS_PCR_HREG(dst_spec)) {
> -		hre_tpm_err = tpm_extend(tpm, HREG_IDX(dst_spec),
> -					 dst_reg->digest, dst_reg->digest);
> +		hre_tpm_err = tpm1_extend(tpm, HREG_IDX(dst_spec),
> +					  dst_reg->digest, dst_reg->digest);
>  		if (hre_tpm_err) {
>  			hre_err = HRE_E_TPM_FAILURE;
>  			return NULL;
> diff --git a/board/gdsys/a38x/keyprogram.c b/board/gdsys/a38x/keyprogram.c
> index 853981aadbb..7020fae1894 100644
> --- a/board/gdsys/a38x/keyprogram.c
> +++ b/board/gdsys/a38x/keyprogram.c
> @@ -23,15 +23,15 @@ int flush_keys(struct udevice *tpm)
>  	uint i;
>  
>  	/* fetch list of already loaded keys in the TPM */
> -	err = tpm_get_capability(tpm, TPM_CAP_HANDLE, TPM_RT_KEY, buf,
> -				 sizeof(buf));
> +	err = tpm1_get_capability(tpm, TPM_CAP_HANDLE, TPM_RT_KEY, buf,
> +				  sizeof(buf));
>  	if (err)
>  		return -1;
>  	key_count = get_unaligned_be16(buf);
>  	ptr = buf + 2;
>  	for (i = 0; i < key_count; ++i, ptr += 4) {
> -		err = tpm_flush_specific(tpm, get_unaligned_be32(ptr),
> -					 TPM_RT_KEY);
> +		err = tpm1_flush_specific(tpm, get_unaligned_be32(ptr),
> +					  TPM_RT_KEY);
>  		if (err && err != TPM_KEY_OWNER_CONTROL)
>  			return err;
>  	}
> diff --git a/board/gdsys/mpc8308/gazerbeam.c b/board/gdsys/mpc8308/gazerbeam.c
> index 0e7fa1e333e..6afb87a5008 100644
> --- a/board/gdsys/mpc8308/gazerbeam.c
> +++ b/board/gdsys/mpc8308/gazerbeam.c
> @@ -144,8 +144,8 @@ int last_stage_init(void)
>  	env_set_ulong("fpga_hw_rev", fpga_hw_rev);
>  
>  	ret = get_tpm(&tpm);
> -	if (ret || tpm_init(tpm) || tpm_startup(tpm, TPM_ST_CLEAR) ||
> -	    tpm_continue_self_test(tpm)) {
> +	if (ret || tpm_init(tpm) || tpm1_startup(tpm, TPM_ST_CLEAR) ||
> +	    tpm1_continue_self_test(tpm)) {
>  		printf("TPM init failed\n");
>  	}
>  
> diff --git a/board/gdsys/p1022/controlcenterd-id.c b/board/gdsys/p1022/controlcenterd-id.c
> index 1b5aa9042f5..87b346aa9cf 100644
> --- a/board/gdsys/p1022/controlcenterd-id.c
> +++ b/board/gdsys/p1022/controlcenterd-id.c
> @@ -273,8 +273,8 @@ static int get_tpm_nv_size(struct udevice *tpm, uint32_t index, uint32_t *size)
>  	uint8_t *ptr;
>  	uint16_t v16;
>  
> -	err = tpm_get_capability(tpm, TPM_CAP_NV_INDEX, index,
> -				 info, sizeof(info));
> +	err = tpm1_get_capability(tpm, TPM_CAP_NV_INDEX, index, info,
> +				  sizeof(info));
>  	if (err) {
>  		printf("tpm_get_capability(CAP_NV_INDEX, %08x) failed: %u\n",
>  		       index, err);
> @@ -315,8 +315,8 @@ static int find_key(struct udevice *tpm, const uint8_t auth[20],
>  	unsigned int i;
>  
>  	/* fetch list of already loaded keys in the TPM */
> -	err = tpm_get_capability(tpm, TPM_CAP_HANDLE, TPM_RT_KEY, buf,
> -				 sizeof(buf));
> +	err = tpm1_get_capability(tpm, TPM_CAP_HANDLE, TPM_RT_KEY, buf,
> +				  sizeof(buf));
>  	if (err)
>  		return -1;
>  	key_count = get_unaligned_be16(buf);
> @@ -327,8 +327,8 @@ static int find_key(struct udevice *tpm, const uint8_t auth[20],
>  	/* now search a(/ the) key which we can access with the given auth */
>  	for (i = 0; i < key_count; ++i) {
>  		buf_len = sizeof(buf);
> -		err = tpm_get_pub_key_oiap(tpm, key_handles[i], auth, buf,
> -					   &buf_len);
> +		err = tpm1_get_pub_key_oiap(tpm, key_handles[i], auth, buf,
> +					    &buf_len);
>  		if (err && err != TPM_AUTHFAIL)
>  			return -1;
>  		if (err)
> @@ -356,8 +356,8 @@ static int read_common_data(struct udevice *tpm)
>  	if (get_tpm_nv_size(tpm, NV_COMMON_DATA_INDEX, &size) ||
>  	    size < NV_COMMON_DATA_MIN_SIZE)
>  		return 1;
> -	err = tpm_nv_read_value(tpm, NV_COMMON_DATA_INDEX,
> -				buf, min(sizeof(buf), size));
> +	err = tpm1_nv_read_value(tpm, NV_COMMON_DATA_INDEX, buf,
> +				 min(sizeof(buf), size));
>  	if (err) {
>  		printf("tpm_nv_read_value() failed: %u\n", err);
>  		return 1;
> @@ -508,8 +508,8 @@ static struct h_reg *access_hreg(struct udevice *tpm, uint8_t spec,
>  	if (mode & HREG_RD) {
>  		if (!result->valid) {
>  			if (IS_PCR_HREG(spec)) {
> -				hre_tpm_err = tpm_pcr_read(tpm, HREG_IDX(spec),
> -					result->digest, 20);
> +				hre_tpm_err = tpm1_pcr_read(tpm, HREG_IDX(spec),
> +							    result->digest, 20);
>  				result->valid = (hre_tpm_err == TPM_SUCCESS);
>  			} else if (IS_FIX_HREG(spec)) {
>  				switch (HREG_IDX(spec)) {
> @@ -601,8 +601,8 @@ static int hre_op_loadkey(struct udevice *tpm, struct h_reg *src_reg,
>  		return -1;
>  	if (find_key(tpm, src_reg->digest, dst_reg->digest, &parent_handle))
>  		return -1;
> -	hre_tpm_err = tpm_load_key2_oiap(tpm, parent_handle, key, key_size,
> -					 src_reg->digest, &key_handle);
> +	hre_tpm_err = tpm1_load_key2_oiap(tpm, parent_handle, key, key_size,
> +					  src_reg->digest, &key_handle);
>  	if (hre_tpm_err) {
>  		hre_err = HRE_E_TPM_FAILURE;
>  		return -1;
> @@ -718,8 +718,8 @@ do_bin_func:
>  	}
>  
>  	if (dst_reg && dst_modified && IS_PCR_HREG(dst_spec)) {
> -		hre_tpm_err = tpm_extend(tpm, HREG_IDX(dst_spec),
> -					 dst_reg->digest, dst_reg->digest);
> +		hre_tpm_err = tpm1_extend(tpm, HREG_IDX(dst_spec),
> +					  dst_reg->digest, dst_reg->digest);
>  		if (hre_tpm_err) {
>  			hre_err = HRE_E_TPM_FAILURE;
>  			return NULL;
> @@ -964,10 +964,10 @@ static int first_stage_actions(struct udevice *tpm)
>  
>  	puts("CCDM S1: start actions\n");
>  #ifndef CCDM_SECOND_STAGE
> -	if (tpm_continue_self_test(tpm))
> +	if (tpm1_continue_self_test(tpm))
>  		goto failure;
>  #else
> -	tpm_continue_self_test(tpm);
> +	tpm1_continue_self_test(tpm);
>  #endif
>  	mdelay(37);
>  
> @@ -1003,7 +1003,7 @@ static int first_stage_init(void)
>  
>  	puts("CCDM S1\n");
>  	ret = get_tpm(&tpm);
> -	if (ret || tpm_init(tpm) || tpm_startup(tpm, TPM_ST_CLEAR))
> +	if (ret || tpm_init(tpm) || tpm1_startup(tpm, TPM_ST_CLEAR))
>  		return 1;
>  	ret = first_stage_actions(tpm);
>  #ifndef CCDM_SECOND_STAGE
> @@ -1061,7 +1061,7 @@ static int second_stage_init(void)
>  	ret = get_tpm(&tpm);
>  	if (ret || tpm_init(tpm))
>  		return 1;
> -	err = tpm_startup(tpm, TPM_ST_CLEAR);
> +	err = tpm1_startup(tpm, TPM_ST_CLEAR);
>  	if (err != TPM_INVALID_POSTINIT)
>  		did_first_stage_run = false;
>  
> diff --git a/cmd/tpm-v1.c b/cmd/tpm-v1.c
> index 0e2168aea67..3a7e35d5255 100644
> --- a/cmd/tpm-v1.c
> +++ b/cmd/tpm-v1.c
> @@ -11,6 +11,7 @@
>  #include <tpm-common.h>
>  #include <tpm-v1.h>
>  #include "tpm-user-utils.h"
> +#include <tpm_api.h>
>  
>  static int do_tpm_startup(struct cmd_tbl *cmdtp, int flag, int argc,
>  			  char *const argv[])
> @@ -55,7 +56,7 @@ static int do_tpm_nv_define_space(struct cmd_tbl *cmdtp, int flag, int argc,
>  	perm = simple_strtoul(argv[2], NULL, 0);
>  	size = simple_strtoul(argv[3], NULL, 0);
>  
> -	return report_return_code(tpm_nv_define_space(dev, index, perm, size));
> +	return report_return_code(tpm1_nv_define_space(dev, index, perm, size));
>  }
>  
>  static int do_tpm_nv_read_value(struct cmd_tbl *cmdtp, int flag, int argc,
> @@ -130,7 +131,7 @@ static int do_tpm_extend(struct cmd_tbl *cmdtp, int flag, int argc,
>  		return CMD_RET_FAILURE;
>  	}
>  
> -	rc = tpm_extend(dev, index, in_digest, out_digest);
> +	rc = tpm_pcr_extend(dev, index, in_digest, out_digest);
>  	if (!rc) {
>  		puts("PCR value after execution of the command:\n");
>  		print_byte_string(out_digest, sizeof(out_digest));
> @@ -304,7 +305,7 @@ static int do_tpm_nv_define(struct cmd_tbl *cmdtp, int flag, int argc,
>  	index = simple_strtoul(argv[2], NULL, 0);
>  	perm = simple_strtoul(argv[3], NULL, 0);
>  
> -	return report_return_code(tpm_nv_define_space(dev, index, perm, size));
> +	return report_return_code(tpm1_nv_define_space(dev, index, perm, size));
>  }
>  
>  static int do_tpm_nv_read(struct cmd_tbl *cmdtp, int flag, int argc,
> @@ -389,7 +390,7 @@ static int do_tpm_oiap(struct cmd_tbl *cmdtp, int flag, int argc,
>  	if (rc)
>  		return rc;
>  
> -	err = tpm_oiap(dev, &auth_handle);
> +	err = tpm1_oiap(dev, &auth_handle);
>  
>  	return report_return_code(err);
>  }
> @@ -461,8 +462,8 @@ static int do_tpm_load_key2_oiap(struct cmd_tbl *cmdtp, int flag, int argc,
>  		return CMD_RET_FAILURE;
>  	parse_byte_string(argv[4], usage_auth, NULL);
>  
> -	err = tpm_load_key2_oiap(dev, parent_handle, key, key_len, usage_auth,
> -				 &key_handle);
> +	err = tpm1_load_key2_oiap(dev, parent_handle, key, key_len, usage_auth,
> +				  &key_handle);
>  	if (!err)
>  		printf("Key handle is 0x%x\n", key_handle);
>  
> @@ -491,8 +492,8 @@ static int do_tpm_get_pub_key_oiap(struct cmd_tbl *cmdtp, int flag, int argc,
>  		return CMD_RET_FAILURE;
>  	parse_byte_string(argv[2], usage_auth, NULL);
>  
> -	err = tpm_get_pub_key_oiap(dev, key_handle, usage_auth, pub_key_buffer,
> -				   &pub_key_len);
> +	err = tpm1_get_pub_key_oiap(dev, key_handle, usage_auth, pub_key_buffer,
> +				    &pub_key_len);
>  	if (!err) {
>  		printf("dump of received pub key structure:\n");
>  		print_byte_string(pub_key_buffer, pub_key_len);
> @@ -500,7 +501,7 @@ static int do_tpm_get_pub_key_oiap(struct cmd_tbl *cmdtp, int flag, int argc,
>  	return report_return_code(err);
>  }
>  
> -TPM_COMMAND_NO_ARG(tpm_end_oiap)
> +TPM_COMMAND_NO_ARG(tpm1_end_oiap)
>  
>  #endif /* CONFIG_TPM_AUTH_SESSIONS */
>  
> @@ -562,7 +563,7 @@ static int do_tpm_flush(struct cmd_tbl *cmdtp, int flag, int argc,
>  		res_count = get_unaligned_be16(buf);
>  		ptr = buf + 2;
>  		for (i = 0; i < res_count; ++i, ptr += 4)
> -			tpm_flush_specific(dev, get_unaligned_be32(ptr), type);
> +			tpm1_flush_specific(dev, get_unaligned_be32(ptr), type);
>  	} else {
>  		u32 handle = simple_strtoul(argv[2], NULL, 0);
>  
> @@ -570,7 +571,7 @@ static int do_tpm_flush(struct cmd_tbl *cmdtp, int flag, int argc,
>  			printf("Illegal resource handle %s\n", argv[2]);
>  			return -1;
>  		}
> -		tpm_flush_specific(dev, cpu_to_be32(handle), type);
> +		tpm1_flush_specific(dev, cpu_to_be32(handle), type);
>  	}
>  
>  	return 0;
> @@ -691,7 +692,7 @@ static struct cmd_tbl tpm1_commands[] = {
>  	U_BOOT_CMD_MKENT(oiap, 0, 1,
>  			 do_tpm_oiap, "", ""),
>  	U_BOOT_CMD_MKENT(end_oiap, 0, 1,
> -			 do_tpm_end_oiap, "", ""),
> +			 do_tpm1_end_oiap, "", ""),
>  	U_BOOT_CMD_MKENT(load_key2_oiap, 0, 1,
>  			 do_tpm_load_key2_oiap, "", ""),
>  #ifdef CONFIG_TPM_LOAD_KEY_BY_SHA1
> diff --git a/cmd/tpm_test.c b/cmd/tpm_test.c
> index ebfb25cab0a..68d2107f54e 100644
> --- a/cmd/tpm_test.c
> +++ b/cmd/tpm_test.c
> @@ -9,6 +9,7 @@
>  #include <log.h>
>  #include <tpm-v1.h>
>  #include "tpm-user-utils.h"
> +#include <tpm_api.h>
>  
>  /* Prints error and returns on failure */
>  #define TPM_CHECK(tpm_command) do { \
> @@ -49,7 +50,7 @@ static uint32_t tpm_get_flags(struct udevice *dev, uint8_t *disable,
>  	struct tpm_permanent_flags pflags;
>  	uint32_t result;
>  
> -	result = tpm_get_permanent_flags(dev, &pflags);
> +	result = tpm1_get_permanent_flags(dev, &pflags);
>  	if (result)
>  		return result;
>  	if (disable)
> @@ -90,7 +91,7 @@ static int test_early_extend(struct udevice *dev)
>  	tpm_init(dev);
>  	TPM_CHECK(tpm_startup(dev, TPM_ST_CLEAR));
>  	TPM_CHECK(tpm_continue_self_test(dev));
> -	TPM_CHECK(tpm_extend(dev, 1, value_in, value_out));
> +	TPM_CHECK(tpm_pcr_extend(dev, 1, value_in, value_out));
>  	printf("done\n");
>  	return 0;
>  }
> @@ -238,18 +239,18 @@ static void initialise_spaces(struct udevice *dev)
>  	uint32_t perm = TPM_NV_PER_WRITE_STCLEAR | TPM_NV_PER_PPWRITE;
>  
>  	printf("\tInitialising spaces\n");
> -	tpm_nv_set_locked(dev);  /* useful only the first time */
> -	tpm_nv_define_space(dev, INDEX0, perm, 4);
> +	tpm1_nv_set_locked(dev);  /* useful only the first time */
> +	tpm1_nv_define_space(dev, INDEX0, perm, 4);
>  	tpm_nv_write_value(dev, INDEX0, (uint8_t *)&zero, 4);
> -	tpm_nv_define_space(dev, INDEX1, perm, 4);
> +	tpm1_nv_define_space(dev, INDEX1, perm, 4);
>  	tpm_nv_write_value(dev, INDEX1, (uint8_t *)&zero, 4);
> -	tpm_nv_define_space(dev, INDEX2, perm, 4);
> +	tpm1_nv_define_space(dev, INDEX2, perm, 4);
>  	tpm_nv_write_value(dev, INDEX2, (uint8_t *)&zero, 4);
> -	tpm_nv_define_space(dev, INDEX3, perm, 4);
> +	tpm1_nv_define_space(dev, INDEX3, perm, 4);
>  	tpm_nv_write_value(dev, INDEX3, (uint8_t *)&zero, 4);
>  	perm = TPM_NV_PER_READ_STCLEAR | TPM_NV_PER_WRITE_STCLEAR |
>  		TPM_NV_PER_PPWRITE;
> -	tpm_nv_define_space(dev, INDEX_INITIALISED, perm, 1);
> +	tpm1_nv_define_space(dev, INDEX_INITIALISED, perm, 1);
>  }
>  
>  static int test_readonly(struct udevice *dev)
> @@ -325,30 +326,33 @@ static int test_redefine_unowned(struct udevice *dev)
>  
>  	/* Redefines spaces a couple of times. */
>  	perm = TPM_NV_PER_PPWRITE | TPM_NV_PER_GLOBALLOCK;
> -	TPM_CHECK(tpm_nv_define_space(dev, INDEX0, perm, 2 * sizeof(uint32_t)));
> -	TPM_CHECK(tpm_nv_define_space(dev, INDEX0, perm, sizeof(uint32_t)));
> +	TPM_CHECK(tpm1_nv_define_space(dev, INDEX0, perm,
> +				       2 * sizeof(uint32_t)));
> +	TPM_CHECK(tpm1_nv_define_space(dev, INDEX0, perm, sizeof(uint32_t)));
>  	perm = TPM_NV_PER_PPWRITE;
> -	TPM_CHECK(tpm_nv_define_space(dev, INDEX1, perm, 2 * sizeof(uint32_t)));
> -	TPM_CHECK(tpm_nv_define_space(dev, INDEX1, perm, sizeof(uint32_t)));
> +	TPM_CHECK(tpm1_nv_define_space(dev, INDEX1, perm,
> +				       2 * sizeof(uint32_t)));
> +	TPM_CHECK(tpm1_nv_define_space(dev, INDEX1, perm, sizeof(uint32_t)));
>  
>  	/* Sets the global lock */
>  	tpm_set_global_lock(dev);
>  
>  	/* Verifies that index0 cannot be redefined */
> -	result = tpm_nv_define_space(dev, INDEX0, perm, sizeof(uint32_t));
> +	result = tpm1_nv_define_space(dev, INDEX0, perm, sizeof(uint32_t));
>  	assert(result == TPM_AREA_LOCKED);
>  
>  	/* Checks that index1 can */
> -	TPM_CHECK(tpm_nv_define_space(dev, INDEX1, perm, 2 * sizeof(uint32_t)));
> -	TPM_CHECK(tpm_nv_define_space(dev, INDEX1, perm, sizeof(uint32_t)));
> +	TPM_CHECK(tpm1_nv_define_space(dev, INDEX1, perm,
> +				       2 * sizeof(uint32_t)));
> +	TPM_CHECK(tpm1_nv_define_space(dev, INDEX1, perm, sizeof(uint32_t)));
>  
>  	/* Turns off PP */
>  	tpm_tsc_physical_presence(dev, PHYS_PRESENCE);
>  
>  	/* Verifies that neither index0 nor index1 can be redefined */
> -	result = tpm_nv_define_space(dev, INDEX0, perm, sizeof(uint32_t));
> +	result = tpm1_nv_define_space(dev, INDEX0, perm, sizeof(uint32_t));
>  	assert(result == TPM_BAD_PRESENCE);
> -	result = tpm_nv_define_space(dev, INDEX1, perm, sizeof(uint32_t));
> +	result = tpm1_nv_define_space(dev, INDEX1, perm, sizeof(uint32_t));
>  	assert(result == TPM_BAD_PRESENCE);
>  
>  	printf("done\n");
> @@ -434,7 +438,7 @@ static int test_timing(struct udevice *dev)
>  		   100);
>  	TTPM_CHECK(tpm_nv_read_value(dev, INDEX0, (uint8_t *)&x, sizeof(x)),
>  		   100);
> -	TTPM_CHECK(tpm_extend(dev, 0, in, out), 200);
> +	TTPM_CHECK(tpm_pcr_extend(dev, 0, in, out), 200);
>  	TTPM_CHECK(tpm_set_global_lock(dev), 50);
>  	TTPM_CHECK(tpm_tsc_physical_presence(dev, PHYS_PRESENCE), 100);
>  	printf("done\n");
> diff --git a/include/tpm-v1.h b/include/tpm-v1.h
> index 59ad4aecf42..2e33ed4b949 100644
> --- a/include/tpm-v1.h
> +++ b/include/tpm-v1.h
> @@ -287,7 +287,7 @@ struct __packed tpm_nv_data_public {
>   * @param mode		TPM startup mode
>   * @return return code of the operation
>   */
> -u32 tpm_startup(struct udevice *dev, enum tpm_startup_type mode);
> +u32 tpm1_startup(struct udevice *dev, enum tpm_startup_type mode);
>  
>  /**
>   * Issue a TPM_SelfTestFull command.
> @@ -295,7 +295,7 @@ u32 tpm_startup(struct udevice *dev, enum tpm_startup_type mode);
>   * @param dev		TPM device
>   * @return return code of the operation
>   */
> -u32 tpm_self_test_full(struct udevice *dev);
> +u32 tpm1_self_test_full(struct udevice *dev);
>  
>  /**
>   * Issue a TPM_ContinueSelfTest command.
> @@ -303,7 +303,7 @@ u32 tpm_self_test_full(struct udevice *dev);
>   * @param dev		TPM device
>   * @return return code of the operation
>   */
> -u32 tpm_continue_self_test(struct udevice *dev);
> +u32 tpm1_continue_self_test(struct udevice *dev);
>  
>  /**
>   * Issue a TPM_NV_DefineSpace command.  The implementation is limited
> @@ -316,7 +316,7 @@ u32 tpm_continue_self_test(struct udevice *dev);
>   * @param size		size of the area
>   * @return return code of the operation
>   */
> -u32 tpm_nv_define_space(struct udevice *dev, u32 index, u32 perm, u32 size);
> +u32 tpm1_nv_define_space(struct udevice *dev, u32 index, u32 perm, u32 size);
>  
>  /**
>   * Issue a TPM_NV_ReadValue command.  This implementation is limited
> @@ -329,7 +329,7 @@ u32 tpm_nv_define_space(struct udevice *dev, u32 index, u32 perm, u32 size);
>   * @param count		size of output buffer
>   * @return return code of the operation
>   */
> -u32 tpm_nv_read_value(struct udevice *dev, u32 index, void *data, u32 count);
> +u32 tpm1_nv_read_value(struct udevice *dev, u32 index, void *data, u32 count);
>  
>  /**
>   * Issue a TPM_NV_WriteValue command.  This implementation is limited
> @@ -342,8 +342,8 @@ u32 tpm_nv_read_value(struct udevice *dev, u32 index, void *data, u32 count);
>   * @param length	length of data bytes of input buffer
>   * @return return code of the operation
>   */
> -u32 tpm_nv_write_value(struct udevice *dev, u32 index, const void *data,
> -		       u32 length);
> +u32 tpm1_nv_write_value(struct udevice *dev, u32 index, const void *data,
> +			u32 length);
>  
>  /**
>   * Issue a TPM_Extend command.
> @@ -356,8 +356,8 @@ u32 tpm_nv_write_value(struct udevice *dev, u32 index, const void *data,
>   *			command
>   * @return return code of the operation
>   */
> -u32 tpm_extend(struct udevice *dev, u32 index, const void *in_digest,
> -	       void *out_digest);
> +u32 tpm1_extend(struct udevice *dev, u32 index, const void *in_digest,
> +		void *out_digest);
>  
>  /**
>   * Issue a TPM_PCRRead command.
> @@ -368,7 +368,7 @@ u32 tpm_extend(struct udevice *dev, u32 index, const void *in_digest,
>   * @param count		size of output buffer
>   * @return return code of the operation
>   */
> -u32 tpm_pcr_read(struct udevice *dev, u32 index, void *data, size_t count);
> +u32 tpm1_pcr_read(struct udevice *dev, u32 index, void *data, size_t count);
>  
>  /**
>   * Issue a TSC_PhysicalPresence command.  TPM physical presence flag
> @@ -378,7 +378,7 @@ u32 tpm_pcr_read(struct udevice *dev, u32 index, void *data, size_t count);
>   * @param presence	TPM physical presence flag
>   * @return return code of the operation
>   */
> -u32 tpm_tsc_physical_presence(struct udevice *dev, u16 presence);
> +u32 tpm1_tsc_physical_presence(struct udevice *dev, u16 presence);
>  
>  /**
>   * Issue a TPM_ReadPubek command.
> @@ -388,7 +388,7 @@ u32 tpm_tsc_physical_presence(struct udevice *dev, u16 presence);
>   * @param count		size of output buffer
>   * @return return code of the operation
>   */
> -u32 tpm_read_pubek(struct udevice *dev, void *data, size_t count);
> +u32 tpm1_read_pubek(struct udevice *dev, void *data, size_t count);
>  
>  /**
>   * Issue a TPM_ForceClear command.
> @@ -396,7 +396,7 @@ u32 tpm_read_pubek(struct udevice *dev, void *data, size_t count);
>   * @param dev		TPM device
>   * @return return code of the operation
>   */
> -u32 tpm_force_clear(struct udevice *dev);
> +u32 tpm1_force_clear(struct udevice *dev);
>  
>  /**
>   * Issue a TPM_PhysicalEnable command.
> @@ -404,7 +404,7 @@ u32 tpm_force_clear(struct udevice *dev);
>   * @param dev		TPM device
>   * @return return code of the operation
>   */
> -u32 tpm_physical_enable(struct udevice *dev);
> +u32 tpm1_physical_enable(struct udevice *dev);
>  
>  /**
>   * Issue a TPM_PhysicalDisable command.
> @@ -412,7 +412,7 @@ u32 tpm_physical_enable(struct udevice *dev);
>   * @param dev		TPM device
>   * @return return code of the operation
>   */
> -u32 tpm_physical_disable(struct udevice *dev);
> +u32 tpm1_physical_disable(struct udevice *dev);
>  
>  /**
>   * Issue a TPM_PhysicalSetDeactivated command.
> @@ -421,7 +421,7 @@ u32 tpm_physical_disable(struct udevice *dev);
>   * @param state		boolean state of the deactivated flag
>   * @return return code of the operation
>   */
> -u32 tpm_physical_set_deactivated(struct udevice *dev, u8 state);
> +u32 tpm1_physical_set_deactivated(struct udevice *dev, u8 state);
>  
>  /**
>   * Issue a TPM_GetCapability command.  This implementation is limited
> @@ -435,8 +435,8 @@ u32 tpm_physical_set_deactivated(struct udevice *dev, u8 state);
>   * @param count		size of output buffer
>   * @return return code of the operation
>   */
> -u32 tpm_get_capability(struct udevice *dev, u32 cap_area, u32 sub_cap,
> -		       void *cap, size_t count);
> +u32 tpm1_get_capability(struct udevice *dev, u32 cap_area, u32 sub_cap,
> +			void *cap, size_t count);
>  
>  /**
>   * Issue a TPM_FlushSpecific command for a AUTH resource.
> @@ -445,7 +445,7 @@ u32 tpm_get_capability(struct udevice *dev, u32 cap_area, u32 sub_cap,
>   * @param auth_handle	handle of the auth session
>   * @return return code of the operation
>   */
> -u32 tpm_terminate_auth_session(struct udevice *dev, u32 auth_handle);
> +u32 tpm1_terminate_auth_session(struct udevice *dev, u32 auth_handle);
>  
>  /**
>   * Issue a TPM_OIAP command to setup an object independent authorization
> @@ -458,7 +458,7 @@ u32 tpm_terminate_auth_session(struct udevice *dev, u32 auth_handle);
>   * @param auth_handle	pointer to the (new) auth handle or NULL.
>   * @return return code of the operation
>   */
> -u32 tpm_oiap(struct udevice *dev, u32 *auth_handle);
> +u32 tpm1_oiap(struct udevice *dev, u32 *auth_handle);
>  
>  /**
>   * Ends an active OIAP session.
> @@ -466,7 +466,7 @@ u32 tpm_oiap(struct udevice *dev, u32 *auth_handle);
>   * @param dev		TPM device
>   * @return return code of the operation
>   */
> -u32 tpm_end_oiap(struct udevice *dev);
> +u32 tpm1_end_oiap(struct udevice *dev);
>  
>  /**
>   * Issue a TPM_LoadKey2 (Auth1) command using an OIAP session for authenticating
> @@ -480,9 +480,9 @@ u32 tpm_end_oiap(struct udevice *dev);
>   * @param key_handle	pointer to the key handle
>   * @return return code of the operation
>   */
> -u32 tpm_load_key2_oiap(struct udevice *dev, u32 parent_handle, const void *key,
> -		       size_t key_length, const void *parent_key_usage_auth,
> -		       u32 *key_handle);
> +u32 tpm1_load_key2_oiap(struct udevice *dev, u32 parent_handle, const void *key,
> +			size_t key_length, const void *parent_key_usage_auth,
> +			u32 *key_handle);
>  
>  /**
>   * Issue a TPM_GetPubKey (Auth1) command using an OIAP session for
> @@ -498,9 +498,9 @@ u32 tpm_load_key2_oiap(struct udevice *dev, u32 parent_handle, const void *key,
>   *			of the stored TPM_PUBKEY structure (iff pubkey != NULL).
>   * @return return code of the operation
>   */
> -u32 tpm_get_pub_key_oiap(struct udevice *dev, u32 key_handle,
> -			 const void *usage_auth, void *pubkey,
> -			 size_t *pubkey_len);
> +u32 tpm1_get_pub_key_oiap(struct udevice *dev, u32 key_handle,
> +			  const void *usage_auth, void *pubkey,
> +			  size_t *pubkey_len);
>  
>  /**
>   * Get the TPM permanent flags value
> @@ -509,8 +509,8 @@ u32 tpm_get_pub_key_oiap(struct udevice *dev, u32 key_handle,
>   * @param pflags	Place to put permanent flags
>   * @return return code of the operation
>   */
> -u32 tpm_get_permanent_flags(struct udevice *dev,
> -			    struct tpm_permanent_flags *pflags);
> +u32 tpm1_get_permanent_flags(struct udevice *dev,
> +			     struct tpm_permanent_flags *pflags);
>  
>  /**
>   * Get the TPM permissions
> @@ -519,7 +519,7 @@ u32 tpm_get_permanent_flags(struct udevice *dev,
>   * @param perm		Returns permissions value
>   * @return return code of the operation
>   */
> -u32 tpm_get_permissions(struct udevice *dev, u32 index, u32 *perm);
> +u32 tpm1_get_permissions(struct udevice *dev, u32 index, u32 *perm);
>  
>  /**
>   * Flush a resource with a given handle and type from the TPM
> @@ -529,7 +529,7 @@ u32 tpm_get_permissions(struct udevice *dev, u32 index, u32 *perm);
>   * @param resource_type                type of the resource
>   * @return return code of the operation
>   */
> -u32 tpm_flush_specific(struct udevice *dev, u32 key_handle, u32 resource_type);
> +u32 tpm1_flush_specific(struct udevice *dev, u32 key_handle, u32 resource_type);
>  
>  #ifdef CONFIG_TPM_LOAD_KEY_BY_SHA1
>  /**
> @@ -541,8 +541,8 @@ u32 tpm_flush_specific(struct udevice *dev, u32 key_handle, u32 resource_type);
>   * @param[out] handle	The handle of the key (Non-null iff found)
>   * @return 0 if key was found in TPM; != 0 if not.
>   */
> -u32 tpm_find_key_sha1(struct udevice *dev, const u8 auth[20],
> -		      const u8 pubkey_digest[20], u32 *handle);
> +u32 tpm1_find_key_sha1(struct udevice *dev, const u8 auth[20],
> +		       const u8 pubkey_digest[20], u32 *handle);
>  #endif /* CONFIG_TPM_LOAD_KEY_BY_SHA1 */
>  
>  /**
> @@ -555,7 +555,7 @@ u32 tpm_find_key_sha1(struct udevice *dev, const u8 auth[20],
>   * @param count		size of output buffer
>   * @return return code of the operation
>   */
> -u32 tpm_get_random(struct udevice *dev, void *data, u32 count);
> +u32 tpm1_get_random(struct udevice *dev, void *data, u32 count);
>  
>  /**
>   * tpm_finalise_physical_presence() - Finalise physical presence
> @@ -563,15 +563,15 @@ u32 tpm_get_random(struct udevice *dev, void *data, u32 count);
>   * @param dev		TPM device
>   * @return return code of the operation (0 = success)
>   */
> -u32 tpm_finalise_physical_presence(struct udevice *dev);
> +u32 tpm1_finalise_physical_presence(struct udevice *dev);
>  
>  /**
> - * tpm_nv_set_locked() - lock the non-volatile space
> + * tpm_nv_enable_locking() - lock the non-volatile space
>   *
>   * @param dev		TPM device
>   * @return return code of the operation (0 = success)
>   */
> -u32 tpm_nv_set_locked(struct udevice *dev);
> +u32 tpm1_nv_set_locked(struct udevice *dev);
>  
>  /**
>   * tpm_set_global_lock() - set the global lock
> @@ -587,6 +587,6 @@ u32 tpm_set_global_lock(struct udevice *dev);
>   * @param dev		TPM device
>   * @return return code of the operation (0 = success)
>   */
> -u32 tpm_resume(struct udevice *dev);
> +u32 tpm1_resume(struct udevice *dev);
>  
>  #endif /* __TPM_V1_H */
> diff --git a/lib/Makefile b/lib/Makefile
> index edc1c3dd4f9..c42d4e12335 100644
> --- a/lib/Makefile
> +++ b/lib/Makefile
> @@ -53,6 +53,7 @@ endif
>  obj-$(CONFIG_$(SPL_TPL_)TPM) += tpm-common.o
>  ifeq ($(CONFIG_$(SPL_TPL_)TPM),y)
>  obj-y += crc8.o
> +obj-$(CONFIG_TPM) += tpm_api.o
>  obj-$(CONFIG_TPM_V1) += tpm-v1.o
>  obj-$(CONFIG_TPM_V2) += tpm-v2.o
>  endif
> diff --git a/lib/tpm-v1.c b/lib/tpm-v1.c
> index a846fe00dd3..8dc144080ca 100644
> --- a/lib/tpm-v1.c
> +++ b/lib/tpm-v1.c
> @@ -32,7 +32,7 @@ static struct session_data oiap_session = {0, };
>  
>  #endif /* CONFIG_TPM_AUTH_SESSIONS */
>  
> -u32 tpm_startup(struct udevice *dev, enum tpm_startup_type mode)
> +u32 tpm1_startup(struct udevice *dev, enum tpm_startup_type mode)
>  {
>  	const u8 command[12] = {
>  		0x0, 0xc1, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x99, 0x0, 0x0,
> @@ -48,12 +48,12 @@ u32 tpm_startup(struct udevice *dev, enum tpm_startup_type mode)
>  	return tpm_sendrecv_command(dev, buf, NULL, NULL);
>  }
>  
> -u32 tpm_resume(struct udevice *dev)
> +u32 tpm1_resume(struct udevice *dev)
>  {
> -	return tpm_startup(dev, TPM_ST_STATE);
> +	return tpm1_startup(dev, TPM_ST_STATE);
>  }
>  
> -u32 tpm_self_test_full(struct udevice *dev)
> +u32 tpm1_self_test_full(struct udevice *dev)
>  {
>  	const u8 command[10] = {
>  		0x0, 0xc1, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x50,
> @@ -61,7 +61,7 @@ u32 tpm_self_test_full(struct udevice *dev)
>  	return tpm_sendrecv_command(dev, command, NULL, NULL);
>  }
>  
> -u32 tpm_continue_self_test(struct udevice *dev)
> +u32 tpm1_continue_self_test(struct udevice *dev)
>  {
>  	const u8 command[10] = {
>  		0x0, 0xc1, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x53,
> @@ -69,35 +69,33 @@ u32 tpm_continue_self_test(struct udevice *dev)
>  	return tpm_sendrecv_command(dev, command, NULL, NULL);
>  }
>  
> -u32 tpm_clear_and_reenable(struct udevice *dev)
> +u32 tpm1_clear_and_reenable(struct udevice *dev)
>  {
>  	u32 ret;
>  
>  	log_info("TPM: Clear and re-enable\n");
> -	ret = tpm_force_clear(dev);
> +	ret = tpm1_force_clear(dev);
>  	if (ret != TPM_SUCCESS) {
>  		log_err("Can't initiate a force clear\n");
>  		return ret;
>  	}
>  
> -	if (tpm_get_version(dev) == TPM_V1) {
> -		ret = tpm_physical_enable(dev);
> -		if (ret != TPM_SUCCESS) {
> -			log_err("TPM: Can't set enabled state\n");
> -			return ret;
> -		}
> +	ret = tpm1_physical_enable(dev);
> +	if (ret != TPM_SUCCESS) {
> +		log_err("TPM: Can't set enabled state\n");
> +		return ret;
> +	}
>  
> -		ret = tpm_physical_set_deactivated(dev, 0);
> -		if (ret != TPM_SUCCESS) {
> -			log_err("TPM: Can't set deactivated state\n");
> -			return ret;
> -		}
> +	ret = tpm1_physical_set_deactivated(dev, 0);
> +	if (ret != TPM_SUCCESS) {
> +		log_err("TPM: Can't set deactivated state\n");
> +		return ret;
>  	}
>  
>  	return TPM_SUCCESS;
>  }
>  
> -u32 tpm_nv_define_space(struct udevice *dev, u32 index, u32 perm, u32 size)
> +u32 tpm1_nv_define_space(struct udevice *dev, u32 index, u32 perm, u32 size)
>  {
>  	const u8 command[101] = {
>  		0x0, 0xc1,		/* TPM_TAG */
> @@ -140,12 +138,12 @@ u32 tpm_nv_define_space(struct udevice *dev, u32 index, u32 perm, u32 size)
>  	return tpm_sendrecv_command(dev, buf, NULL, NULL);
>  }
>  
> -u32 tpm_nv_set_locked(struct udevice *dev)
> +u32 tpm1_nv_set_locked(struct udevice *dev)
>  {
> -	return tpm_nv_define_space(dev, TPM_NV_INDEX_LOCK, 0, 0);
> +	return tpm1_nv_define_space(dev, TPM_NV_INDEX_LOCK, 0, 0);
>  }
>  
> -u32 tpm_nv_read_value(struct udevice *dev, u32 index, void *data, u32 count)
> +u32 tpm1_nv_read_value(struct udevice *dev, u32 index, void *data, u32 count)
>  {
>  	const u8 command[22] = {
>  		0x0, 0xc1, 0x0, 0x0, 0x0, 0x16, 0x0, 0x0, 0x0, 0xcf,
> @@ -179,8 +177,8 @@ u32 tpm_nv_read_value(struct udevice *dev, u32 index, void *data, u32 count)
>  	return 0;
>  }
>  
> -u32 tpm_nv_write_value(struct udevice *dev, u32 index, const void *data,
> -		       u32 length)
> +u32 tpm1_nv_write_value(struct udevice *dev, u32 index, const void *data,
> +			u32 length)
>  {
>  	const u8 command[256] = {
>  		0x0, 0xc1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xcd,
> @@ -210,13 +208,8 @@ u32 tpm_nv_write_value(struct udevice *dev, u32 index, const void *data,
>  	return 0;
>  }
>  
> -uint32_t tpm_set_global_lock(struct udevice *dev)
> -{
> -	return tpm_nv_write_value(dev, TPM_NV_INDEX_0, NULL, 0);
> -}
> -
> -u32 tpm_extend(struct udevice *dev, u32 index, const void *in_digest,
> -	       void *out_digest)
> +u32 tpm1_extend(struct udevice *dev, u32 index, const void *in_digest,
> +		void *out_digest)
>  {
>  	const u8 command[34] = {
>  		0x0, 0xc1, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x14,
> @@ -247,7 +240,7 @@ u32 tpm_extend(struct udevice *dev, u32 index, const void *in_digest,
>  	return 0;
>  }
>  
> -u32 tpm_pcr_read(struct udevice *dev, u32 index, void *data, size_t count)
> +u32 tpm1_pcr_read(struct udevice *dev, u32 index, void *data, size_t count)
>  {
>  	const u8 command[14] = {
>  		0x0, 0xc1, 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x15,
> @@ -275,7 +268,7 @@ u32 tpm_pcr_read(struct udevice *dev, u32 index, void *data, size_t count)
>  	return 0;
>  }
>  
> -u32 tpm_tsc_physical_presence(struct udevice *dev, u16 presence)
> +u32 tpm1_tsc_physical_presence(struct udevice *dev, u16 presence)
>  {
>  	const u8 command[12] = {
>  		0x0, 0xc1, 0x0, 0x0, 0x0, 0xc, 0x40, 0x0, 0x0, 0xa, 0x0, 0x0,
> @@ -291,7 +284,7 @@ u32 tpm_tsc_physical_presence(struct udevice *dev, u16 presence)
>  	return tpm_sendrecv_command(dev, buf, NULL, NULL);
>  }
>  
> -u32 tpm_finalise_physical_presence(struct udevice *dev)
> +u32 tpm1_finalise_physical_presence(struct udevice *dev)
>  {
>  	const u8 command[12] = {
>  		0x0, 0xc1, 0x0, 0x0, 0x0, 0xc, 0x40, 0x0, 0x0, 0xa, 0x2, 0xa0,
> @@ -300,7 +293,7 @@ u32 tpm_finalise_physical_presence(struct udevice *dev)
>  	return tpm_sendrecv_command(dev, command, NULL, NULL);
>  }
>  
> -u32 tpm_read_pubek(struct udevice *dev, void *data, size_t count)
> +u32 tpm1_read_pubek(struct udevice *dev, void *data, size_t count)
>  {
>  	const u8 command[30] = {
>  		0x0, 0xc1, 0x0, 0x0, 0x0, 0x1e, 0x0, 0x0, 0x0, 0x7c,
> @@ -331,7 +324,7 @@ u32 tpm_read_pubek(struct udevice *dev, void *data, size_t count)
>  	return 0;
>  }
>  
> -u32 tpm_force_clear(struct udevice *dev)
> +u32 tpm1_force_clear(struct udevice *dev)
>  {
>  	const u8 command[10] = {
>  		0x0, 0xc1, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x5d,
> @@ -340,7 +333,7 @@ u32 tpm_force_clear(struct udevice *dev)
>  	return tpm_sendrecv_command(dev, command, NULL, NULL);
>  }
>  
> -u32 tpm_physical_enable(struct udevice *dev)
> +u32 tpm1_physical_enable(struct udevice *dev)
>  {
>  	const u8 command[10] = {
>  		0x0, 0xc1, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x6f,
> @@ -349,7 +342,7 @@ u32 tpm_physical_enable(struct udevice *dev)
>  	return tpm_sendrecv_command(dev, command, NULL, NULL);
>  }
>  
> -u32 tpm_physical_disable(struct udevice *dev)
> +u32 tpm1_physical_disable(struct udevice *dev)
>  {
>  	const u8 command[10] = {
>  		0x0, 0xc1, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x70,
> @@ -358,7 +351,7 @@ u32 tpm_physical_disable(struct udevice *dev)
>  	return tpm_sendrecv_command(dev, command, NULL, NULL);
>  }
>  
> -u32 tpm_physical_set_deactivated(struct udevice *dev, u8 state)
> +u32 tpm1_physical_set_deactivated(struct udevice *dev, u8 state)
>  {
>  	const u8 command[11] = {
>  		0x0, 0xc1, 0x0, 0x0, 0x0, 0xb, 0x0, 0x0, 0x0, 0x72,
> @@ -374,8 +367,8 @@ u32 tpm_physical_set_deactivated(struct udevice *dev, u8 state)
>  	return tpm_sendrecv_command(dev, buf, NULL, NULL);
>  }
>  
> -u32 tpm_get_capability(struct udevice *dev, u32 cap_area, u32 sub_cap,
> -		       void *cap, size_t count)
> +u32 tpm1_get_capability(struct udevice *dev, u32 cap_area, u32 sub_cap,
> +			void *cap, size_t count)
>  {
>  	const u8 command[22] = {
>  		0x0, 0xc1,		/* TPM_TAG */
> @@ -414,8 +407,8 @@ u32 tpm_get_capability(struct udevice *dev, u32 cap_area, u32 sub_cap,
>  	return 0;
>  }
>  
> -u32 tpm_get_permanent_flags(struct udevice *dev,
> -			    struct tpm_permanent_flags *pflags)
> +u32 tpm1_get_permanent_flags(struct udevice *dev,
> +			     struct tpm_permanent_flags *pflags)
>  {
>  	const u8 command[22] = {
>  		0x0, 0xc1,		/* TPM_TAG */
> @@ -453,7 +446,7 @@ u32 tpm_get_permanent_flags(struct udevice *dev,
>  	return 0;
>  }
>  
> -u32 tpm_get_permissions(struct udevice *dev, u32 index, u32 *perm)
> +u32 tpm1_get_permissions(struct udevice *dev, u32 index, u32 *perm)
>  {
>  	const u8 command[22] = {
>  		0x0, 0xc1,		/* TPM_TAG */
> @@ -482,7 +475,7 @@ u32 tpm_get_permissions(struct udevice *dev, u32 index, u32 *perm)
>  }
>  
>  #ifdef CONFIG_TPM_FLUSH_RESOURCES
> -u32 tpm_flush_specific(struct udevice *dev, u32 key_handle, u32 resource_type)
> +u32 tpm1_flush_specific(struct udevice *dev, u32 key_handle, u32 resource_type)
>  {
>  	const u8 command[18] = {
>  		0x00, 0xc1,             /* TPM_TAG */
> @@ -641,7 +634,7 @@ static u32 verify_response_auth(u32 command_code, const void *response,
>  	return TPM_SUCCESS;
>  }
>  
> -u32 tpm_terminate_auth_session(struct udevice *dev, u32 auth_handle)
> +u32 tpm1_terminate_auth_session(struct udevice *dev, u32 auth_handle)
>  {
>  	const u8 command[18] = {
>  		0x00, 0xc1,		/* TPM_TAG */
> @@ -663,16 +656,16 @@ u32 tpm_terminate_auth_session(struct udevice *dev, u32 auth_handle)
>  	return tpm_sendrecv_command(dev, request, NULL, NULL);
>  }
>  
> -u32 tpm_end_oiap(struct udevice *dev)
> +u32 tpm1_end_oiap(struct udevice *dev)
>  {
>  	u32 err = TPM_SUCCESS;
>  
>  	if (oiap_session.valid)
> -		err = tpm_terminate_auth_session(dev, oiap_session.handle);
> +		err = tpm1_terminate_auth_session(dev, oiap_session.handle);
>  	return err;
>  }
>  
> -u32 tpm_oiap(struct udevice *dev, u32 *auth_handle)
> +u32 tpm1_oiap(struct udevice *dev, u32 *auth_handle)
>  {
>  	const u8 command[10] = {
>  		0x00, 0xc1,		/* TPM_TAG */
> @@ -686,7 +679,7 @@ u32 tpm_oiap(struct udevice *dev, u32 *auth_handle)
>  	u32 err;
>  
>  	if (oiap_session.valid)
> -		tpm_terminate_auth_session(dev, oiap_session.handle);
> +		tpm1_terminate_auth_session(dev, oiap_session.handle);
>  
>  	err = tpm_sendrecv_command(dev, command, response, &response_length);
>  	if (err)
> @@ -702,9 +695,9 @@ u32 tpm_oiap(struct udevice *dev, u32 *auth_handle)
>  	return 0;
>  }
>  
> -u32 tpm_load_key2_oiap(struct udevice *dev, u32 parent_handle, const void *key,
> -		       size_t key_length, const void *parent_key_usage_auth,
> -		       u32 *key_handle)
> +u32 tpm1_load_key2_oiap(struct udevice *dev, u32 parent_handle, const void *key,
> +			size_t key_length, const void *parent_key_usage_auth,
> +			u32 *key_handle)
>  {
>  	const u8 command[14] = {
>  		0x00, 0xc2,		/* TPM_TAG */
> @@ -723,7 +716,7 @@ u32 tpm_load_key2_oiap(struct udevice *dev, u32 parent_handle, const void *key,
>  	u32 err;
>  
>  	if (!oiap_session.valid) {
> -		err = tpm_oiap(dev, NULL);
> +		err = tpm1_oiap(dev, NULL);
>  		if (err)
>  			return err;
>  	}
> @@ -768,9 +761,9 @@ u32 tpm_load_key2_oiap(struct udevice *dev, u32 parent_handle, const void *key,
>  	return 0;
>  }
>  
> -u32 tpm_get_pub_key_oiap(struct udevice *dev, u32 key_handle,
> -			 const void *usage_auth, void *pubkey,
> -			 size_t *pubkey_len)
> +u32 tpm1_get_pub_key_oiap(struct udevice *dev, u32 key_handle,
> +			  const void *usage_auth, void *pubkey,
> +			  size_t *pubkey_len)
>  {
>  	const u8 command[14] = {
>  		0x00, 0xc2,		/* TPM_TAG */
> @@ -788,7 +781,7 @@ u32 tpm_get_pub_key_oiap(struct udevice *dev, u32 key_handle,
>  	u32 err;
>  
>  	if (!oiap_session.valid) {
> -		err = tpm_oiap(dev, NULL);
> +		err = tpm1_oiap(dev, NULL);
>  		if (err)
>  			return err;
>  	}
> @@ -834,8 +827,8 @@ u32 tpm_get_pub_key_oiap(struct udevice *dev, u32 key_handle,
>  }
>  
>  #ifdef CONFIG_TPM_LOAD_KEY_BY_SHA1
> -u32 tpm_find_key_sha1(struct udevice *dev, const u8 auth[20],
> -		      const u8 pubkey_digest[20], u32 *handle)
> +u32 tpm1_find_key_sha1(struct udevice *dev, const u8 auth[20],
> +		       const u8 pubkey_digest[20], u32 *handle)
>  {
>  	u16 key_count;
>  	u32 key_handles[10];
> @@ -876,7 +869,7 @@ u32 tpm_find_key_sha1(struct udevice *dev, const u8 auth[20],
>  
>  #endif /* CONFIG_TPM_AUTH_SESSIONS */
>  
> -u32 tpm_get_random(struct udevice *dev, void *data, u32 count)
> +u32 tpm1_get_random(struct udevice *dev, void *data, u32 count)
>  {
>  	const u8 command[14] = {
>  		0x0, 0xc1,		/* TPM_TAG */
> -- 
> 2.30.0.280.ga3ce27912f-goog
> 


More information about the U-Boot mailing list