linux/drivers/char/tpm
Jason Gunthorpe 7240b98320 TPM: Wait for TPM_ACCESS tpmRegValidSts to go high at startup
The TIS specification (pg 47) says the valid bit must be set, but
the TPM will not set it until it has completed its internal startup.

The driver checks that the valid bit is set during request_locality,
but it issues a TPM_ACCESS_REQUEST_USE without validating the
valid bit is set.

Some TPMs will ignore the TPM_ACCESS_REQUEST_USE, until valid is
set which causes the request_locality to timeout, which breaks the
driver attach.

Wait one timeout unit for valid to assert. If valid does not assert
then assume -ENODEV.

Seen on embedded with a:
1.2 TPM (device-id 0x3204, rev-id 64)

Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Signed-off-by: Kent Yoder <key@linux.vnet.ibm.com>
2013-02-05 09:38:25 -06:00
..
Kconfig TPM: STMicroelectronics ST33 I2C BUILD STUFF 2013-02-05 09:38:23 -06:00
Makefile TPM: STMicroelectronics ST33 I2C BUILD STUFF 2013-02-05 09:38:23 -06:00
tpm_acpi.c TPM: Switch to __packed instead of __attribute__((packed)) 2013-02-05 09:38:22 -06:00
tpm_atmel.c tpm: Fix cancellation of TPM commands (polling mode) 2013-02-05 09:38:24 -06:00
tpm_atmel.h tpmdd maintainers 2007-08-22 19:52:44 -07:00
tpm_eventlog.c tpm: modularize event log collection 2012-08-22 11:11:25 -05:00
tpm_eventlog.h drivers/char/tpm: Add securityfs support for event log 2012-08-22 16:22:47 -05:00
tpm_i2c_infineon.c tpm: Fix cancellation of TPM commands (polling mode) 2013-02-05 09:38:24 -06:00
tpm_i2c_stm_st33.c tpm: Fix cancellation of TPM commands (polling mode) 2013-02-05 09:38:24 -06:00
tpm_i2c_stm_st33.h tpm_i2c_stm_st33: fix oops when i2c client is unavailable 2013-02-05 09:38:24 -06:00
tpm_ibmvtpm.c tpm: Fix cancellation of TPM commands (polling mode) 2013-02-05 09:38:24 -06:00
tpm_ibmvtpm.h drivers/char/tpm: remove tasklet and cleanup 2012-11-01 15:23:14 -05:00
tpm_infineon.c Char/Misc driver merge for 3.8-rc1 2012-12-11 13:56:38 -08:00
tpm_nsc.c tpm: Fix cancellation of TPM commands (polling mode) 2013-02-05 09:38:24 -06:00
tpm_of.c drivers/char/tpm: Add securityfs support for event log 2012-08-22 16:22:47 -05:00
tpm_ppi.c driver/char/tpm: fix regression causesd by ppi 2012-10-10 09:50:56 -05:00
tpm_tis.c TPM: Wait for TPM_ACCESS tpmRegValidSts to go high at startup 2013-02-05 09:38:25 -06:00
tpm.c tpm: Fix cancellation of TPM commands (interrupt mode) 2013-02-05 09:38:24 -06:00
tpm.h tpm: Fix cancellation of TPM commands (interrupt mode) 2013-02-05 09:38:24 -06:00