[PATCH v7 00/21] tpm: separate tpm 1.x and tpm 2.x commands

Jarkko Sakkinen jarkko.sakkinen at linux.intel.com
Sat Oct 20 01:19:53 UTC 2018


On Fri, 19 Oct 2018, Tomas Winkler wrote:
> This patch series provides initial separation of tpm 1.x and tpm 2.x
> commands, in foresight that the tpm 1.x chips will eventually phase out
> and can be compiled out for modern systems.
> A new file is added tpm1-cmd.c that contains tpm 1.x specific commands.
> In addition, tpm 1.x commands are now implemented using tpm_buf
> structure and instead of tpm_cmd_t construct. The latter is now removed.
>
> Note: my tpm 1.x HW availability is limited hence some more testing is needed.
>
> This series also contains two trivial cleanups and addition of new
> commands by TCG spec 1.36, now supported on new Intet's platforms.
>
> V6: 1. Dropping tpm: move pcr extend code to tpm2-cmd.c and rebasing code over that change
>    2. Trivial fixes in kdoc and header
> V7: 1. Add backportable patch for nuvoton duration calculation
>    2. Rebase durations patches over it.
>    3. Fix notorious typo tmp->tpm
>
>
> Tomas Winkler (21):
>  tpm: tpm_i2c_nuvoton: use correct command duration for TPM 2.x
>  tpm2: add new tpm2 commands according to TCG 1.36
>  tpm: sort objects in the Makefile
>  tpm: factor out tpm 1.x duration calculation to tpm1-cmd.c
>  tpm: add tpm_calc_ordinal_duration() wrapper
>  tpm: factor out tpm_get_timeouts()
>  tpm: move tpm1_pcr_extend to tpm1-cmd.c
>  tpm: move tpm_getcap to tpm1-cmd.c
>  tpm: factor out tpm1_get_random into tpm1-cmd.c
>  tpm: move tpm 1.x selftest code from tpm-interface.c tpm1-cmd.c
>  tpm: factor out tpm 1.x pm suspend flow into tpm1-cmd.c
>  tpm: factor out tpm_startup function
>  tpm: add tpm_auto_startup() into tpm-interface.c
>  tpm: tpm-interface.c drop unused macros
>  tpm: tpm-space.c remove unneeded semicolon
>  tpm: tpm1: rewrite tpm1_get_random() using tpm_buf structure
>  tpm1: implement tpm1_pcr_read_dev() using tpm_buf structure
>  tpm1: rename tpm1_pcr_read_dev to tpm1_pcr_read()
>  tpm1: reimplement SAVESTATE using tpm_buf
>  tpm1: reimplement tpm1_continue_selftest() using tpm_buf
>  tpm: use u32 instead of int for PCR index
>
> drivers/char/tpm/Makefile            |  16 +-
> drivers/char/tpm/st33zp24/st33zp24.c |   2 +-
> drivers/char/tpm/tpm-chip.c          |  11 +-
> drivers/char/tpm/tpm-interface.c     | 817 +++--------------------------------
> drivers/char/tpm/tpm-sysfs.c         |  52 +--
> drivers/char/tpm/tpm.h               |  97 ++---
> drivers/char/tpm/tpm1-cmd.c          | 781 +++++++++++++++++++++++++++++++++
> drivers/char/tpm/tpm2-cmd.c          | 301 +++++++------
> drivers/char/tpm/tpm2-space.c        |   2 +-
> drivers/char/tpm/tpm_i2c_nuvoton.c   |  11 +-
> drivers/char/tpm/tpm_tis_core.c      |  10 +-
> include/linux/tpm.h                  |  11 +-
> security/integrity/ima/ima_crypto.c  |   5 +-
> 13 files changed, 1082 insertions(+), 1034 deletions(-)
> create mode 100644 drivers/char/tpm/tpm1-cmd.c
>
> -- 
> 2.14.4
>
>

Starts to look reosonable:

https://patchwork.kernel.org/project/linux-integrity/list/?series=33257

This is the list of patches (assuming that I didn't miss anything) that
still need tested-by tags:

- tpm: factor out tpm1_get_random into tpm1-cmd.c
- tpm: factor out tpm 1.x pm suspend flow into tpm1-cmd.c
- tpm1: rename tpm1_pcr_read_dev to tpm1_pcr_read()
   (the subsystem tag is wrong in this, just noticed, should be 'tpm:')
- tpm: use u32 instead of int for PCR index

/Jarkko



More information about the Linux-security-module-archive mailing list