Re: [PATCH v2] Documentation: tpm_tis

From: Stefan Berger
Date: Thu Mar 21 2024 - 12:10:12 EST




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.


+
+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.