Re: [RFC PATCH] tpm, tpm_vtpm_proxy: boot-time TPM
From: Jarkko Sakkinen
Date: Sat Jul 19 2025 - 10:17:33 EST
On Wed, Jul 16, 2025 at 11:44:02AM -0700, Randy Dunlap wrote:
> (mostly nits, along with Paul's comments)
>
>
> On 7/16/25 5:18 AM, Jarkko Sakkinen wrote:
> > From: Jarkko Sakkinen <jarkko.sakkinen@xxxxxxxxxxx>
> >
> > Provide a kernel command-line parameter named as `supplicant`, which
> > contains a path to an TPM emulator binary. When defind, the kernel will
>
> to a TPM
>
> > launch the program during boot-time.
> >
> > This feature is most useful in feature testing e.g., in environments
>
> testing, e.g.,
>
> > where other means are not possible, such as CI runners. Its original use
> > case highlights also quite well of its applicability for pre-production
> > hardware: it was used to provide a TPM implemnentation for a RISC-V SoC
> > running on FPGA with no TPM HW implementation at the time.
> >
> > Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@xxxxxxxxxxx>
> > ---
> > Bumped into this in my archives so thought to make it available just in
> > case anyone is interested.
> > ---
> > .../admin-guide/kernel-parameters.txt | 14 +++++
> > drivers/char/tpm/tpm_vtpm_proxy.c | 51 +++++++++++++++++++
> > 2 files changed, 65 insertions(+)
> >
> > diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
> > index f1f2c0874da9..e062de99480e 100644
> > --- a/Documentation/admin-guide/kernel-parameters.txt
> > +++ b/Documentation/admin-guide/kernel-parameters.txt
> > @@ -7230,6 +7230,20 @@
> > defined by Trusted Computing Group (TCG) see
> > https://trustedcomputinggroup.org/resource/pc-client-platform-tpm-profile-ptp-specification/
> >
> > + tpm_vtpm_proxy.supplicant= [TPM]
> > + When defined, this field must contain a legit path to a
>
> legitimate
> or valid
>
> > + program emulating a TPM chip, which will be started
> > + during the driver initialization, thus providing a
> > + mechanism for the user space have an emulated TPM from
> > + the get go. Kernel prepares the process with a file
>
> get-go.
> or just don't use slang terms.
>
> > + pre-opened file descriptor in the index 3 for
> > + /dev/vtpmx.
> > +
> > + An emulator can optionally provide support for
> > + localities by reacting to the vendor command defined
> > + by the driver: 0x20001000. Its payload is a single
> > + byte containing the new locality.
> > +
> > tp_printk [FTRACE]
> > Have the tracepoints sent to printk as well as the
> > tracing ring buffer. This is useful for early boot up
>
> thanks.
> --
> ~Randy
>
Thank you for reviewing this (especially given how bad shape it was)!
BR, Jarkko