<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/char/tpm/Makefile, branch linux-4.9.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.9.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.9.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2016-06-25T14:28:57Z</updated>
<entry>
<title>tpm/tpm_tis_spi: Add support for spi phy</title>
<updated>2016-06-25T14:28:57Z</updated>
<author>
<name>Christophe Ricard</name>
</author>
<published>2016-05-18T22:35:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0edbfea537d10c0de5505d0413368aad71027663'/>
<id>urn:sha1:0edbfea537d10c0de5505d0413368aad71027663</id>
<content type='text'>
Spi protocol standardized by the TCG is now supported by most of TPM
vendors.

It supports SPI Bit Protocol as describe in the TCG PTP
specification (chapter 6.4.6 SPI Bit Protocol).

Irq mode is not supported.

This commit is based on the initial work by Peter Huewe.

Signed-off-by: Peter Huewe &lt;peter.huewe@infineon.com&gt;
Signed-off-by: Alexander Steffen &lt;Alexander.Steffen@infineon.com&gt;
Signed-off-by: Christophe Ricard &lt;christophe-h.ricard@st.com&gt;
Reviewed-by: Jarkko Sakkinen &lt;jarkko.sakkinen@linux.intel.com&gt;
Tested-by: Jarkko Sakkinen &lt;jarkko.sakkinen@linux.intel.com&gt;
Tested-by: Stefan Berger &lt;stefanb@linux.vnet.ibm.com&gt;
Reviewed-by: Stefan Berger &lt;stefanb@linux.vnet.ibm.com&gt;
Signed-off-by: Jarkko Sakkinen &lt;jarkko.sakkinen@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>tpm/tpm_tis: Split tpm_tis driver into a core and TCG TIS compliant phy</title>
<updated>2016-06-25T14:28:57Z</updated>
<author>
<name>Christophe Ricard</name>
</author>
<published>2016-05-18T22:35:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=41a5e1cf1fe151ed48b4b3106c748d03a85133ce'/>
<id>urn:sha1:41a5e1cf1fe151ed48b4b3106c748d03a85133ce</id>
<content type='text'>
To avoid code duplication between the old tpm_tis and the new and future
native tcg tis driver(ie: spi, i2c...), the tpm_tis driver was reworked,
so that all common logic is extracted and can be reused from all drivers.

The core methods can also be used from other TIS like drivers.

itpm workaround is now managed with a specific tis flag
TPM_TIS_ITPM_POSSIBLE.

This commit is based on the initial work by Peter Huewe.

Signed-off-by: Peter Huewe &lt;peter.huewe@infineon.com&gt;
Signed-off-by: Christophe Ricard &lt;christophe-h.ricard@st.com&gt;
Reviewed-by: Jarkko Sakkinen &lt;jarkko.sakkinen@linux.intel.com&gt;
Tested-by: Jarkko Sakkinen &lt;jarkko.sakkinen@linux.intel.com&gt;
Tested-by: Stefan Berger &lt;stefanb@linux.vnet.ibm.com&gt;
Reviewed-by: Stefan Berger &lt;stefanb@linux.vnet.ibm.com&gt;
Signed-off-by: Jarkko Sakkinen &lt;jarkko.sakkinen@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>tpm: Proxy driver for supporting multiple emulated TPMs</title>
<updated>2016-06-25T14:26:35Z</updated>
<author>
<name>Stefan Berger</name>
</author>
<published>2016-04-18T17:26:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6f99612e250041a2402d3b1694bccb149cd424a4'/>
<id>urn:sha1:6f99612e250041a2402d3b1694bccb149cd424a4</id>
<content type='text'>
This patch implements a proxy driver for supporting multiple emulated TPMs
in a system.

The driver implements a device /dev/vtpmx that is used to created
a client device pair /dev/tpmX (e.g., /dev/tpm10) and a server side that
is accessed using a file descriptor returned by an ioctl.
The device /dev/tpmX is the usual TPM device created by the core TPM
driver. Applications or kernel subsystems can send TPM commands to it
and the corresponding server-side file descriptor receives these
commands and delivers them to an emulated TPM.

The driver retrievs the TPM 1.2 durations and timeouts. Since this requires
the startup of the TPM, we send a startup for TPM 1.2 as well as TPM 2.

Signed-off-by: Stefan Berger &lt;stefanb@linux.vnet.ibm.com&gt;
Reviewed-by: Jason Gunthorpe &lt;jgunthorpe@obsidianresearch.com&gt;

CC: linux-kernel@vger.kernel.org
CC: linux-doc@vger.kernel.org
CC: linux-api@vger.kernel.org
Reviewed-by: Jarkko Sakkinen &lt;jarkko.sakkinen@linux.intel.com&gt;
Tested-by: Jarkko Sakkinen &lt;jarkko.sakkinen@linux.intel.com&gt;
Signed-off-by: Jarkko Sakkinen &lt;jarkko.sakkinen@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>tpm/tpm_i2c_stm_st33: Split tpm_i2c_tpm_st33 in 2 layers (core + phy)</title>
<updated>2015-03-18T21:43:06Z</updated>
<author>
<name>Christophe Ricard</name>
</author>
<published>2015-03-08T10:17:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=bf38b8710892333cec2d8069644eb36ff435fd6f'/>
<id>urn:sha1:bf38b8710892333cec2d8069644eb36ff435fd6f</id>
<content type='text'>
tpm_i2c_stm_st33 is a TIS 1.2 TPM with a core interface which can be used
by different phy such as i2c or spi. The core part is called st33zp24 which
is also the main part reference.

include/linux/platform_data/tpm_stm_st33.h is renamed consequently.
The driver is also split into an i2c phy in charge of sending/receiving
data as well as managing platform data or dts configuration.

Acked-by: Jarkko Sakkinen &lt;jarkko.sakknen@linux.intel.com&gt;
Reviewed-by: Jason Gunthorpe &lt;jason.gunthorpe@obsidianresearch.com&gt;
Signed-off-by: Christophe Ricard &lt;christophe-h.ricard@st.com&gt;
Signed-off-by: Peter Huewe &lt;peterhuewe@gmx.de&gt;
</content>
</entry>
<entry>
<title>tpm: TPM 2.0 CRB Interface</title>
<updated>2015-01-17T13:00:12Z</updated>
<author>
<name>Jarkko Sakkinen</name>
</author>
<published>2014-12-12T19:46:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=30fc8d138e9123f374a3c3867e7c7c5cd4004941'/>
<id>urn:sha1:30fc8d138e9123f374a3c3867e7c7c5cd4004941</id>
<content type='text'>
tpm_crb is a driver for TPM 2.0 Command Response Buffer (CRB) Interface
as defined in PC Client Platform TPM Profile (PTP) Specification.

Only polling and single locality is supported as these are the limitations
of the available hardware, Platform Trust Techonlogy (PTT) in Haswell
CPUs.

The driver always applies CRB with ACPI start because PTT reports using
only ACPI start as start method but as a result of my testing it requires
also CRB start.

Signed-off-by: Jarkko Sakkinen &lt;jarkko.sakkinen@linux.intel.com&gt;
Reviewed-by: Jasob Gunthorpe &lt;jason.gunthorpe@obsidianresearch.com&gt;
Reviewed-by: Stefan Berger &lt;stefanb@linux.vnet.ibm.com&gt;
Signed-off-by: Peter Huewe &lt;peterhuewe@gmx.de&gt;
</content>
</entry>
<entry>
<title>tpm: TPM 2.0 baseline support</title>
<updated>2015-01-17T13:00:11Z</updated>
<author>
<name>Jarkko Sakkinen</name>
</author>
<published>2014-12-12T19:46:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7a1d7e6dd76a2070e2d86826391468edc33bb6d6'/>
<id>urn:sha1:7a1d7e6dd76a2070e2d86826391468edc33bb6d6</id>
<content type='text'>
TPM 2.0 devices are separated by adding a field 'flags' to struct
tpm_chip and defining a flag TPM_CHIP_FLAG_TPM2 for tagging them.

This patch adds the following internal functions:

- tpm2_get_random()
- tpm2_get_tpm_pt()
- tpm2_pcr_extend()
- tpm2_pcr_read()
- tpm2_startup()

Additionally, the following exported functions are implemented for
implementing TPM 2.0 device drivers:

- tpm2_do_selftest()
- tpm2_calc_ordinal_durations()
- tpm2_gen_interrupt()

The existing functions that are exported for the use for existing
subsystems have been changed to check the flags field in struct
tpm_chip and use appropriate TPM 2.0 counterpart if
TPM_CHIP_FLAG_TPM2 is est.

The code for tpm2_calc_ordinal_duration() and tpm2_startup() were
originally written by Will Arthur.

Signed-off-by: Jarkko Sakkinen &lt;jarkko.sakkinen@linux.intel.com&gt;
Signed-off-by: Will Arthur &lt;will.c.arthur@intel.com&gt;
Reviewed-by: Jasob Gunthorpe &lt;jason.gunthorpe@obsidianresearch.com&gt;
Reviewed-by: Stefan Berger &lt;stefanb@linux.vnet.ibm.com&gt;
Reviewed-by: Peter Huewe &lt;peterhuewe@gmx.de&gt;
Tested-by: Peter Huewe &lt;peterhuewe@gmx.de&gt;

[phuewe: Fixed copy paste error * 2]
Signed-off-by: Peter Huewe &lt;peterhuewe@gmx.de&gt;
</content>
</entry>
<entry>
<title>tpm: two-phase chip management functions</title>
<updated>2015-01-17T13:00:09Z</updated>
<author>
<name>Jarkko Sakkinen</name>
</author>
<published>2014-12-12T19:46:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=afb5abc262e962089ef2d7c2bbf71bb6f53a2a78'/>
<id>urn:sha1:afb5abc262e962089ef2d7c2bbf71bb6f53a2a78</id>
<content type='text'>
tpm_register_hardware() and tpm_remove_hardware() are called often
before initializing the device. The problem is that the device might
not be fully initialized when it comes visible to the user space.

This patch resolves the issue by diving initialization into two
parts:

- tpmm_chip_alloc() creates struct tpm_chip.

- tpm_chip_register() sets up the character device and sysfs
  attributes.

The framework takes care of freeing struct tpm_chip by using the devres
API. The broken release callback has been wiped. ACPI drivers do not
ever get this callback.

Regards to Jason Gunthorpe for carefully reviewing this part of the
code.

Signed-off-by: Jarkko Sakkinen &lt;jarkko.sakkinen@linux.intel.com&gt;
Reviewed-by: Jasob Gunthorpe &lt;jason.gunthorpe@obsidianresearch.com&gt;
Reviewed-by: Stefan Berger &lt;stefanb@linux.vnet.ibm.com&gt;
Tested-by: Scot Doyle &lt;lkml14@scotdoyle.com&gt;
Tested-by: Peter Huewe &lt;peterhuewe@gmx.de&gt;
[phuewe: update to upstream changes]
Signed-off-by: Peter Huewe &lt;peterhuewe@gmx.de&gt;
</content>
</entry>
<entry>
<title>tpm/tpm_i2c_stm_st33: Update Kconfig in order to be inline to other similar product</title>
<updated>2015-01-17T13:00:06Z</updated>
<author>
<name>Christophe Ricard</name>
</author>
<published>2014-12-01T18:32:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=578aa13eb796ce3f20523504424e973f351e4870'/>
<id>urn:sha1:578aa13eb796ce3f20523504424e973f351e4870</id>
<content type='text'>
STMicroelectronics i2c tpm is the only one to have a different tristate
label.

Rename it "TPM Interface Specification 1.2 Interface (I2C - STMicroelectronics)"

Reviewed-by: Jason Gunthorpe &lt;jgunthorpe@obsidianresearch.com&gt;
Signed-off-by: Christophe Ricard &lt;christophe-h.ricard@st.com&gt;
[phuewe: corrected module name in the helptext]
Signed-off-by: Peter Huewe &lt;peterhuewe@gmx.de&gt;
</content>
</entry>
<entry>
<title>tpm: Move sysfs functions from tpm-interface to tpm-sysfs</title>
<updated>2014-01-06T13:37:24Z</updated>
<author>
<name>Jason Gunthorpe</name>
</author>
<published>2013-11-26T20:30:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=000a07b0aac1bc69bcf602b468d975c3e37a155c'/>
<id>urn:sha1:000a07b0aac1bc69bcf602b468d975c3e37a155c</id>
<content type='text'>
CLASS-sysfs.c is a common idiom for linux subsystems.

This is the first step to pulling all the sysfs support code from
the drivers into tpm-sysfs. This is a plain text copy from tpm-interface
with support changes to make it compile.

_tpm_pcr_read is made non-static and is called tpm_pcr_read_dev.

Signed-off-by: Jason Gunthorpe &lt;jgunthorpe@obsidianresearch.com&gt;
Signed-off-by: Peter Huewe &lt;peterhuewe@gmx.de&gt;
</content>
</entry>
<entry>
<title>tpm: Pull everything related to /dev/tpmX into tpm-dev.c</title>
<updated>2014-01-06T13:37:24Z</updated>
<author>
<name>Jason Gunthorpe</name>
</author>
<published>2013-11-26T20:30:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=afdba32e2a9ea729a9f9f280dbf6c718773c7ded'/>
<id>urn:sha1:afdba32e2a9ea729a9f9f280dbf6c718773c7ded</id>
<content type='text'>
CLASS-dev.c is a common idiom for Linux subsystems

This pulls all the code related to the miscdev into tpm-dev.c and makes it
static. The identical file_operation structs in the drivers are purged and the
tpm common code unconditionally creates the miscdev.

Signed-off-by: Jason Gunthorpe &lt;jgunthorpe@obsidianresearch.com&gt;
Reviewed-by: Joel Schopp &lt;jschopp@linux.vnet.ibm.com&gt;
Reviewed-by: Ashley Lai &lt;adlai@linux.vnet.ibm.com&gt;
[phuewe:
tpm_dev_release is now used only in this file, thus the EXPORT_SYMBOL
can be dropped and the function be marked as static.
It has no other in-kernel users]
Signed-off-by: Peter Huewe &lt;peterhuewe@gmx.de&gt;
</content>
</entry>
</feed>
