Re: [PATCH v2] Documentation: tpm_tis
From: Jarkko Sakkinen
Date: Thu Mar 21 2024 - 12:25:20 EST
On Thu Mar 21, 2024 at 6:09 PM EET, Stefan Berger wrote:
>
>
> On 3/21/24 11:51, Jarkko Sakkinen wrote:
> > On Wed Mar 20, 2024 at 6:15 PM EET, Stefan Berger wrote:
> >>
> >>
> >> On 3/20/24 04:56, Jarkko Sakkinen wrote:
> >>> Based recent discussions on LKML, provide preliminary bits of tpm_tis_core
> >>> dependent drivers. Includes only bare essentials but can be extended later
> >>> on case by case. This way some people may even want to read it later on.
> >>>
> >>> Cc: Jonathan Corbet <corbet@xxxxxxx>
> >>> CC: Daniel P. Smith <dpsmith@xxxxxxxxxxxxxxxxxxxx>
> >>> Cc: Lino Sanfilippo <l.sanfilippo@xxxxxxxxxx>
> >>> Cc: Jason Gunthorpe <jgg@xxxxxxxx>
> >>> Cc: Peter Huewe <peterhuewe@xxxxxx>
> >>> Cc: James Bottomley <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx>
> >>> Cc: Alexander Steffen <Alexander.Steffen@xxxxxxxxxxxx>
> >>> Cc: keyrings@xxxxxxxxxxxxxxx
> >>> Cc: linux-doc@xxxxxxxxxxxxxxx
> >>> Cc: linux-kernel@xxxxxxxxxxxxxxx
> >>> Cc: linux-integrity@xxxxxxxxxxxxxxx
> >>> Cc: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
> >>> Signed-off-by: Jarkko Sakkinen <jarkko@xxxxxxxxxx>
> >>> ---
> >>> v2:
> >>> - Fixed errors reported by Randy:
> >>> https://lore.kernel.org/all/aed28265-d677-491a-a045-24b351854b24@xxxxxxxxxxxxx/
> >>> - Improved the text a bit to have a better presentation.
> >>> ---
> >>> Documentation/security/tpm/index.rst | 1 +
> >>> Documentation/security/tpm/tpm_tis.rst | 30 ++++++++++++++++++++++++++
> >>> 2 files changed, 31 insertions(+)
> >>> create mode 100644 Documentation/security/tpm/tpm_tis.rst
> >>>
> >>> diff --git a/Documentation/security/tpm/index.rst b/Documentation/security/tpm/index.rst
> >>> index fc40e9f23c85..f27a17f60a96 100644
> >>> --- a/Documentation/security/tpm/index.rst
> >>> +++ b/Documentation/security/tpm/index.rst
> >>> @@ -5,6 +5,7 @@ Trusted Platform Module documentation
> >>> .. toctree::
> >>>
> >>> tpm_event_log
> >>> + tpm_tis
> >>> tpm_vtpm_proxy
> >>> xen-tpmfront
> >>> tpm_ftpm_tee
> >>> diff --git a/Documentation/security/tpm/tpm_tis.rst b/Documentation/security/tpm/tpm_tis.rst
> >>> new file mode 100644
> >>> index 000000000000..b331813b3c45
> >>> --- /dev/null
> >>> +++ b/Documentation/security/tpm/tpm_tis.rst
> >>> @@ -0,0 +1,30 @@
> >>> +.. SPDX-License-Identifier: GPL-2.0
> >>> +
> >>> +=========================
> >>> +TPM FIFO interface Driver
> >>> +=========================
> >>> +
> >>> +FIFO (First-In-First-Out) is the name of the hardware interface used by the
> >>
> >> FIFO is the type. I am surprised you call it a 'name'. I would say TIS
> >> is the 'name'.
> >
> > It's what the official specification calls it [1].
> >
> >
> >>
> >>> +tpm_tis_core dependent drivers. The prefix "tis" comes from the TPM Interface
> >>
> >> tis is a tla -- a three letter *acronym*. You aren't using it as a 'prefix'.
> >
> > I don't know what "tla" means.
> >
> >>
> >>> +Specification, which is the hardware interface specification for TPM 1.x chips.
> >>
> >> It's also available for TPM2.
> >
> > Yes, but TIS is the name used by the legacy specification.
>
>
> The point is that TIS is not just a TPM 1.x interface but also used for
> TPM 2.
FIFO interface is what is used in the spec so I'll stick to that.
> >
> >>
> >>> +
> >>> +Communication is based on a 5 KiB buffer shared by the TPM chip through a
> >>
> >> I thought it was typically 4 KiB.
> >
> > You are basing this on table 9 in [1]?
>
> Yes. See below.
>
> >
> >>
> >>> +hardware bus or memory map, depending on the physical wiring. The buffer is
> >>> +further split into five equal-size buffers, which provide equivalent sets of
>
> If you are referring to the MMIO region between 0xfed4 0000 and 0xfed4
> 4fff as a buffer then you are talking about a **20kb** MMIO region
> (0x5000) that is **split** into equal-sized MMIO regions, each having
> 4kb (0x1000). Yes, that's the 4kb then but there that one is no 5kb
> 'further split into five equal-sized buffers' of presumably 1kb each.
> Each locality has a 0x1000 sized MMIO region.
Oops, true! I'll fix this part thanks, had a blind spot :-)
Will fix for v3.
BR, Jarkko