[PATCH v4 0/9] tpm: Decouple Trenchboot dependencies

Jarkko Sakkinen posted 9 patches 22 hours ago
drivers/char/tpm/tpm-buf.c                | 141 ++++++----
drivers/char/tpm/tpm-chip.c               |  13 +-
drivers/char/tpm/tpm-sysfs.c              |  21 +-
drivers/char/tpm/tpm.h                    |   2 -
drivers/char/tpm/tpm1-cmd.c               | 185 +++++--------
drivers/char/tpm/tpm2-cmd.c               | 313 ++++++++++------------
drivers/char/tpm/tpm2-sessions.c          | 129 +++++----
drivers/char/tpm/tpm2-space.c             |  44 ++-
drivers/char/tpm/tpm_vtpm_proxy.c         |  30 +--
include/linux/tpm.h                       |  65 ++---
security/keys/trusted-keys/trusted_tpm1.c |  34 ++-
security/keys/trusted-keys/trusted_tpm2.c | 237 +++++++---------
12 files changed, 542 insertions(+), 672 deletions(-)
[PATCH v4 0/9] tpm: Decouple Trenchboot dependencies
Posted by Jarkko Sakkinen 22 hours ago
Overview
========

Decouple TPM driver features relevant for Trenchboot and make tpm-buf
robust and decoupled entity from the rest of driver. By doing this, code
can be easily linked to the early boot code.

Goals and scope
===============

This patch set contains only changes, which are acceptable to mainline
driver without existence Trenchboot feature.

At the same the primary goal of the included is to make driver code 
robust enough to meet Trenchboot's requirements.

These constraints should define a meaningful DoD for this patch set.

v4:
- PCR patch has been removed because it does not fly without Trenchboot
  context.
v3:
- I think 6.19 is a better goal for this and thus expanded the series to
  be a generic Trenchboot enablers series. This version also consolidates
  my two separate ongoing series.
v2:
- While including fixes from v1, this patch set has a refocus in order to
  do minimal changes to make code base more compatible  Trenchboot.

Jarkko Sakkinen (9):
  tpm: Cap the number of PCR banks
  tpm: Use -EPERM as fallback error code in tpm_ret_to_err
  KEYS: trusted: Use tpm_ret_to_err() in trusted_tpm2
  tpm2-sessions: Remove 'attributes' from tpm_buf_append_auth
  tpm2-sessions: Unmask tpm_buf_append_hmac_session()
  KEYS: trusted: Open code tpm2_buf_append()
  tpm-buf: check for corruption in tpm_buf_append_handle()
  tpm-buf: Remove chip parameter from tpm_buf_append_handle
  tpm-buf: Enable managed and stack allocations.

 drivers/char/tpm/tpm-buf.c                | 141 ++++++----
 drivers/char/tpm/tpm-chip.c               |  13 +-
 drivers/char/tpm/tpm-sysfs.c              |  21 +-
 drivers/char/tpm/tpm.h                    |   2 -
 drivers/char/tpm/tpm1-cmd.c               | 185 +++++--------
 drivers/char/tpm/tpm2-cmd.c               | 313 ++++++++++------------
 drivers/char/tpm/tpm2-sessions.c          | 129 +++++----
 drivers/char/tpm/tpm2-space.c             |  44 ++-
 drivers/char/tpm/tpm_vtpm_proxy.c         |  30 +--
 include/linux/tpm.h                       |  65 ++---
 security/keys/trusted-keys/trusted_tpm1.c |  34 ++-
 security/keys/trusted-keys/trusted_tpm2.c | 237 +++++++---------
 12 files changed, 542 insertions(+), 672 deletions(-)

-- 
2.39.5
Re: [PATCH v4 0/9] tpm: Decouple Trenchboot dependencies
Posted by Jarkko Sakkinen 21 hours ago
On Wed, Oct 01, 2025 at 01:16:58AM +0300, Jarkko Sakkinen wrote:
> Overview
> ========
> 
> Decouple TPM driver features relevant for Trenchboot and make tpm-buf
> robust and decoupled entity from the rest of driver. By doing this, code
> can be easily linked to the early boot code.
> 
> Goals and scope
> ===============
> 
> This patch set contains only changes, which are acceptable to mainline
> driver without existence Trenchboot feature.
> 
> At the same the primary goal of the included is to make driver code 
> robust enough to meet Trenchboot's requirements.
> 
> These constraints should define a meaningful DoD for this patch set.
> 
> v4:
> - PCR patch has been removed because it does not fly without Trenchboot
>   context.
> v3:
> - I think 6.19 is a better goal for this and thus expanded the series to
>   be a generic Trenchboot enablers series. This version also consolidates my two separate ongoing series.
> v2:
> - While including fixes from v1, this patch set has a refocus in order to
>   do minimal changes to make code base more compatible  Trenchboot.
> 
> Jarkko Sakkinen (9):
>   tpm: Cap the number of PCR banks
>   tpm: Use -EPERM as fallback error code in tpm_ret_to_err
>   KEYS: trusted: Use tpm_ret_to_err() in trusted_tpm2
>   tpm2-sessions: Remove 'attributes' from tpm_buf_append_auth
>   tpm2-sessions: Unmask tpm_buf_append_hmac_session()
>   KEYS: trusted: Open code tpm2_buf_append()
>   tpm-buf: check for corruption in tpm_buf_append_handle()
>   tpm-buf: Remove chip parameter from tpm_buf_append_handle
>   tpm-buf: Enable managed and stack allocations.
> 
>  drivers/char/tpm/tpm-buf.c                | 141 ++++++----
>  drivers/char/tpm/tpm-chip.c               |  13 +-
>  drivers/char/tpm/tpm-sysfs.c              |  21 +-
>  drivers/char/tpm/tpm.h                    |   2 -
>  drivers/char/tpm/tpm1-cmd.c               | 185 +++++--------
>  drivers/char/tpm/tpm2-cmd.c               | 313 ++++++++++------------
>  drivers/char/tpm/tpm2-sessions.c          | 129 +++++----
>  drivers/char/tpm/tpm2-space.c             |  44 ++-
>  drivers/char/tpm/tpm_vtpm_proxy.c         |  30 +--
>  include/linux/tpm.h                       |  65 ++---
>  security/keys/trusted-keys/trusted_tpm1.c |  34 ++-
>  security/keys/trusted-keys/trusted_tpm2.c | 237 +++++++---------
>  12 files changed, 542 insertions(+), 672 deletions(-)
> 
> -- 
> 2.39.5
> 

I've done testing in sequence of the patch set for every patch by
running:

1. https://codeberg.org/jarkko/linux-tpmdd-test/src/branch/main/board/pc_x86_64/test_tpm2_kselftest.exp.in
2. https://codeberg.org/jarkko/linux-tpmdd-test/src/branch/main/board/pc_x86_64/test_tpm2_trusted.exp.in

I also separately booted for the managed allocations patch with
swtpm in TPM 1.2 mode and did some manual testing.

Changes have been tested with HMAC encryption on to make sure that
tpm2-sessions changes have beeen applied correctly.

BR, Jarkko