LKML Archive mirror
 help / color / mirror / Atom feed
* [PATCH v3] Documentation: tpm_tis
@ 2024-03-21 16:43 Jarkko Sakkinen
  2024-03-21 16:54 ` Jarkko Sakkinen
  0 siblings, 1 reply; 3+ messages in thread
From: Jarkko Sakkinen @ 2024-03-21 16:43 UTC (permalink / raw
  To: linux-integrity
  Cc: Jarkko Sakkinen, Jonathan Corbet, Daniel P . Smith,
	Lino Sanfilippo, Jason Gunthorpe, Peter Huewe, James Bottomley,
	Alexander Steffen, keyrings, linux-doc, linux-kernel,
	Randy Dunlap

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@lwn.net>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>
Cc: Lino Sanfilippo <l.sanfilippo@kunbus.com>
Cc: Jason Gunthorpe <jgg@ziepe.ca>
Cc: Peter Huewe <peterhuewe@gmx.de>
Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
Cc: Alexander Steffen <Alexander.Steffen@infineon.com>
Cc: keyrings@vger.kernel.org
Cc: linux-doc@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-integrity@vger.kernel.org
Reviewed-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
---
v3:
- Fixed incorrect buffer size:
  https://lore.kernel.org/linux-integrity/d957dbd3-4975-48d7-abc5-1a01c0959ea3@linux.ibm.com/
v2:
- Fixed errors reported by Randy:
  https://lore.kernel.org/all/aed28265-d677-491a-a045-24b351854b24@infradead.org/
- 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..078b75666086
--- /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
+tpm_tis_core dependent drivers. The prefix "tis" comes from the TPM Interface
+Specification, which is the hardware interface specification for TPM 1.x chips.
+
+Communication is based on a 20 KiB buffer shared by the TPM chip through a
+hardware bus or memory map, depending on the physical wiring. The buffer is
+further split into five equal-size 4 KiB buffers, which provide equivalent
+sets of registers for communication between the CPU and TPM. These
+communication endpoints are called localities in the TCG terminology.
+
+When the kernel wants to send commands to the TPM chip, it first reserves
+locality 0 by setting the requestUse bit in the TPM_ACCESS register. The bit is
+cleared by the chip when the access is granted. Once it completes its
+communication, the kernel writes the TPM_ACCESS.activeLocality bit. This
+informs the chip that the locality has been relinquished.
+
+Pending localities are served in order by the chip in descending order, one at
+a time:
+
+- Locality 0 has the lowest priority.
+- Locality 5 has the highest priority.
+
+Further information on the purpose and meaning of the localities can be found
+in section 3.2 of the TCG PC Client Platform TPM Profile Specification.
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v3] Documentation: tpm_tis
  2024-03-21 16:43 [PATCH v3] Documentation: tpm_tis Jarkko Sakkinen
@ 2024-03-21 16:54 ` Jarkko Sakkinen
  2024-03-21 17:01   ` Jarkko Sakkinen
  0 siblings, 1 reply; 3+ messages in thread
From: Jarkko Sakkinen @ 2024-03-21 16:54 UTC (permalink / raw
  To: Jarkko Sakkinen, linux-integrity
  Cc: Jonathan Corbet, Daniel P . Smith, Lino Sanfilippo,
	Jason Gunthorpe, Peter Huewe, James Bottomley, Alexander Steffen,
	keyrings, linux-doc, linux-kernel, Randy Dunlap

On Thu Mar 21, 2024 at 6:43 PM EET, 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.

$ pdftotext PC-Client-Specific-Platform-TPM-Profile-for-TPM-2p0-v1p05p_r14_pub.pdf
$ grep -ci 'FIFO interface' PC-Client-Specific-Platform-TPM-Profile-for-TPM-2p0-v1p05p_r14_pub.txt 
55

$ grep -ci 'TIS interface' PC-Client-Specific-Platform-TPM-Profile-for-TPM-2p0-v1p05p_r14_pub.txt
2

55 > 2 so that pretty much nails this terminology.

BR, Jarkko

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v3] Documentation: tpm_tis
  2024-03-21 16:54 ` Jarkko Sakkinen
@ 2024-03-21 17:01   ` Jarkko Sakkinen
  0 siblings, 0 replies; 3+ messages in thread
From: Jarkko Sakkinen @ 2024-03-21 17:01 UTC (permalink / raw
  To: Jarkko Sakkinen, linux-integrity
  Cc: Jonathan Corbet, Daniel P . Smith, Lino Sanfilippo,
	Jason Gunthorpe, Peter Huewe, James Bottomley, Alexander Steffen,
	keyrings, linux-doc, linux-kernel, Randy Dunlap

On Thu Mar 21, 2024 at 6:54 PM EET, Jarkko Sakkinen wrote:
> On Thu Mar 21, 2024 at 6:43 PM EET, 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.
>
> $ pdftotext PC-Client-Specific-Platform-TPM-Profile-for-TPM-2p0-v1p05p_r14_pub.pdf
> $ grep -ci 'FIFO interface' PC-Client-Specific-Platform-TPM-Profile-for-TPM-2p0-v1p05p_r14_pub.txt 
> 55
>
> $ grep -ci 'TIS interface' PC-Client-Specific-Platform-TPM-Profile-for-TPM-2p0-v1p05p_r14_pub.txt
> 2
>
> 55 > 2 so that pretty much nails this terminology.

To add, this documentation *clears* the confusion in "FIFO vs TIS" by
documenting where TIS comes from (i.e. from the original TPM Interface
Spefication).

If you read the current standards you bump quite often (55 times in the
current spec) to FIFO interface, so it is good to clarify their relation
in the kernel documentation.

BR, Jarkko

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-03-21 17:01 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-21 16:43 [PATCH v3] Documentation: tpm_tis Jarkko Sakkinen
2024-03-21 16:54 ` Jarkko Sakkinen
2024-03-21 17:01   ` Jarkko Sakkinen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).