[PATCH v4 00/11] tpm: Support using TPM1 and TPM2 from a single API

Simon Glass sjg at chromium.org
Sat Feb 6 22:23:31 CET 2021


At present if an application wants to be written so it can work with
both TPMv1.2 and TPM2 it must use two different APIs. This is inconvenient
since it requires adding code to deal with the mismatch between the two.
It would be better to have a common API that all boards could share.

This series provides a simple API the covers some basic features and
implements them for both TPM standards.

Changes in v4:
- Use uint type for size and explain it in the commit message
- Drop unnecessary update of offset

Changes in v3:
- Add a comment to the offset and fix up the value

Changes in v2:
- Add comments for the offset value
- Add definition of TPM2_RC_NV_DEFINED return code

Simon Glass (11):
  tpm: Don't include cr50 in TPL/SPL
  tpm: Use logging in the uclass
  tpm: Add debugging of request in tpm_sendrecv_command()
  tpm: Add an API that can support v1.2 and v2
  tpm: Switch TPMv1 over to use the new API
  tpm: Add a basic API implementation for TPMv2
  tpm: Reduce duplication in a few functions
  tpm: Add an implementation of define_space
  tpm: Add TPM2 support for read/write values
  tpm: Add TPM2 support for write_lock
  tpm: Allow disabling platform hierarchy with TPM2

 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 ++--
 drivers/tpm/Makefile                  |   2 +-
 drivers/tpm/cr50_i2c.c                |   4 +-
 drivers/tpm/tpm-uclass.c              |   8 +-
 include/tpm-common.h                  |   3 +
 include/tpm-v1.h                      |  76 +++---
 include/tpm-v2.h                      |  81 +++++++
 include/tpm_api.h                     | 322 ++++++++++++++++++++++++++
 lib/Makefile                          |   1 +
 lib/tpm-common.c                      |  10 +-
 lib/tpm-v1.c                          | 115 +++++----
 lib/tpm-v2.c                          | 202 +++++++++++++++-
 lib/tpm_api.c                         | 285 +++++++++++++++++++++++
 19 files changed, 1072 insertions(+), 182 deletions(-)
 create mode 100644 include/tpm_api.h
 create mode 100644 lib/tpm_api.c

-- 
2.30.0.478.g8a0d178c01-goog



More information about the U-Boot mailing list