All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] Documentation: tpm_tis
@ 2024-03-20  8:56 Jarkko Sakkinen
  2024-03-20 14:27 ` Randy Dunlap
  2024-03-20 16:15 ` Stefan Berger
  0 siblings, 2 replies; 9+ messages in thread
From: Jarkko Sakkinen @ 2024-03-20  8:56 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
Cc: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
---
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..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
+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 5 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 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.44.0


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

* Re: [PATCH v2] Documentation: tpm_tis
  2024-03-20  8:56 [PATCH v2] Documentation: tpm_tis Jarkko Sakkinen
@ 2024-03-20 14:27 ` Randy Dunlap
  2024-03-21 15:55   ` Jarkko Sakkinen
  2024-03-20 16:15 ` Stefan Berger
  1 sibling, 1 reply; 9+ messages in thread
From: Randy Dunlap @ 2024-03-20 14:27 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

Hi,

On 3/20/24 01: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@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
> Cc: Randy Dunlap <rdunlap@infradead.org>
> Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>

Makes sense to me. Thanks.

Reviewed-by: Randy Dunlap <rdunlap@infradead.org>

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

-- 
#Randy

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

* Re: [PATCH v2] Documentation: tpm_tis
  2024-03-20  8:56 [PATCH v2] Documentation: tpm_tis Jarkko Sakkinen
  2024-03-20 14:27 ` Randy Dunlap
@ 2024-03-20 16:15 ` Stefan Berger
  2024-03-21 15:51   ` Jarkko Sakkinen
  1 sibling, 1 reply; 9+ messages in thread
From: Stefan Berger @ 2024-03-20 16:15 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 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@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
> Cc: Randy Dunlap <rdunlap@infradead.org>
> Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
> ---
> 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..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'.

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

> +Specification, which is the hardware interface specification for TPM 1.x chips.

It's also available for TPM2.

> +
> +Communication is based on a 5 KiB buffer shared by the TPM chip through a

I thought it was typically 4 KiB.

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

equal-sized MMIO regions?

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

I think I know what pending localities are because I have worked with 
this device but I am not sure whether the user can deduce this from the 
paragraph above. Also, why this particular detail when the driver only 
uses locality 0 and nobody is competing about access to localities?

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

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

* Re: [PATCH v2] Documentation: tpm_tis
  2024-03-20 16:15 ` Stefan Berger
@ 2024-03-21 15:51   ` Jarkko Sakkinen
  2024-03-21 16:09     ` Stefan Berger
  0 siblings, 1 reply; 9+ messages in thread
From: Jarkko Sakkinen @ 2024-03-21 15:51 UTC (permalink / raw)
  To: Stefan Berger, 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 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@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
> > Cc: Randy Dunlap <rdunlap@infradead.org>
> > Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
> > ---
> > 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..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.

>
> > +
> > +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]?

>
> > +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
>
> equal-sized MMIO regions?

I'm not sure what spec you are referring to but [1] defines also other
communication paths.

>
> > +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:
>
> I think I know what pending localities are because I have worked with 
> this device but I am not sure whether the user can deduce this from the 
> paragraph above. Also, why this particular detail when the driver only 
> uses locality 0 and nobody is competing about access to localities?

This is pretty good summary that is IMHO somewhat useful.

You are welcome to contribute to the documentation but it has to start
from something.

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


[1] https://trustedcomputinggroup.org/resource/pc-client-platform-tpm-profile-ptp-specification/

BR, Jarkko

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

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

On Wed Mar 20, 2024 at 4:27 PM EET, Randy Dunlap wrote:
> Hi,
>
> On 3/20/24 01: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@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
> > Cc: Randy Dunlap <rdunlap@infradead.org>
> > Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
>
> Makes sense to me. Thanks.
>
> Reviewed-by: Randy Dunlap <rdunlap@infradead.org>

Good to hear, I tried to write a summary that makes common sense :-)

Thanks for the review!

BR, Jarkko

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

* Re: [PATCH v2] Documentation: tpm_tis
  2024-03-21 15:51   ` Jarkko Sakkinen
@ 2024-03-21 16:09     ` Stefan Berger
  2024-03-21 16:24       ` Jarkko Sakkinen
  0 siblings, 1 reply; 9+ messages in thread
From: Stefan Berger @ 2024-03-21 16:09 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 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@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
>>> Cc: Randy Dunlap <rdunlap@infradead.org>
>>> Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
>>> ---
>>> 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..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.

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

* Re: [PATCH v2] Documentation: tpm_tis
  2024-03-21 16:09     ` Stefan Berger
@ 2024-03-21 16:24       ` Jarkko Sakkinen
  2024-03-21 16:32         ` Jarkko Sakkinen
  0 siblings, 1 reply; 9+ messages in thread
From: Jarkko Sakkinen @ 2024-03-21 16:24 UTC (permalink / raw)
  To: Stefan Berger, 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: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@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
> >>> Cc: Randy Dunlap <rdunlap@infradead.org>
> >>> Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
> >>> ---
> >>> 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..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

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

* Re: [PATCH v2] Documentation: tpm_tis
  2024-03-21 16:24       ` Jarkko Sakkinen
@ 2024-03-21 16:32         ` Jarkko Sakkinen
  2024-03-21 16:35           ` Jarkko Sakkinen
  0 siblings, 1 reply; 9+ messages in thread
From: Jarkko Sakkinen @ 2024-03-21 16:32 UTC (permalink / raw)
  To: Jarkko Sakkinen, Stefan Berger, 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:24 PM EET, Jarkko Sakkinen wrote:
> 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@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
> > >>> Cc: Randy Dunlap <rdunlap@infradead.org>
> > >>> Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
> > >>> ---
> > >>> 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..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.

E.g. Table 15 - *FIFO* Interface Identifier Register

Not *TIS* Inteface Identifier Register.

I don't want to invent my own terminology here and this the spec
that we usually refer in every possible discussion around the topic.

BR, Jarkko

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

* Re: [PATCH v2] Documentation: tpm_tis
  2024-03-21 16:32         ` Jarkko Sakkinen
@ 2024-03-21 16:35           ` Jarkko Sakkinen
  0 siblings, 0 replies; 9+ messages in thread
From: Jarkko Sakkinen @ 2024-03-21 16:35 UTC (permalink / raw)
  To: Jarkko Sakkinen, Stefan Berger, 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:32 PM EET, Jarkko Sakkinen wrote:
> On Thu Mar 21, 2024 at 6:24 PM EET, Jarkko Sakkinen wrote:
> > 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@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
> > > >>> Cc: Randy Dunlap <rdunlap@infradead.org>
> > > >>> Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
> > > >>> ---
> > > >>> 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..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.
>
> E.g. Table 15 - *FIFO* Interface Identifier Register
>
> Not *TIS* Inteface Identifier Register.
>
> I don't want to invent my own terminology here and this the spec
> that we usually refer in every possible discussion around the topic.

That table actually also clarifies this pretty well, see interface type:

0000 – FIFO interface as defined in PTP for TPM 2.0 is active.
0001 – CRB interface is active.
1111 – FIFO interface as defined in TIS1.3 is active (all other fields
of this register are don’t care).

E.g. FIFO interface can be configured according to TIS 1.3 specification
but the interface is still referred as FIFO interface in the current
spec.

BR, Jarkko


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

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

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-20  8:56 [PATCH v2] Documentation: tpm_tis Jarkko Sakkinen
2024-03-20 14:27 ` Randy Dunlap
2024-03-21 15:55   ` Jarkko Sakkinen
2024-03-20 16:15 ` Stefan Berger
2024-03-21 15:51   ` Jarkko Sakkinen
2024-03-21 16:09     ` Stefan Berger
2024-03-21 16:24       ` Jarkko Sakkinen
2024-03-21 16:32         ` Jarkko Sakkinen
2024-03-21 16:35           ` Jarkko Sakkinen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.