Thread (27 messages) 27 messages, 4 authors, 2014-12-09

Aw: Re: [tpmdd-devel] [PATCH v9 8/8] tpm: TPM 2.0 FIFO Interface

From: Peter Huewe <hidden>
Date: 2014-12-05 15:01:16
Also in: lkml

quoted
Am Donnerstag, 4. Dezember 2014, 06:55:18 schrieb Jarkko Sakkinen:
quoted
From: Will Arthur <redacted>

Detect TPM 2.0 by using the extended STS (STS3) register. For TPM 2.0,
instead of calling tpm_get_timeouts(), assign duration and timeout
values defined in the TPM 2.0 PTP specification.

Signed-off-by: Will Arthur <redacted>
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
quoted
quoted
+ sts3 = ioread8(chip->vendor.iobase + TPM_STS3(1));
+ if ((sts3 & TPM_STS3_TPM2_FAM) == TPM_STS3_TPM2_FAM)
+ chip->flags = TPM_CHIP_FLAG_TPM2;
+
quoted
When loading tpm_tis force=1 with my tpm1.2 chip on a machine without bios
integration, it fets detected as a TPM2.0 chip :/

sudo rmmod tpm_tis
# modprobe tpm_tis force=1
modprobe: ERROR: could not insert 'tpm_tis': No such device
# dmesg
[ 263.903828] tpm_tis tpm_tis: 2.0 TPM (device-id 0xB, rev-id 16)
[ 263.948049] tpm_tis tpm_tis: A TPM error (10) occurred continue selftest
[ 263.948120] tpm_tis tpm_tis: TPM self test failed


sts3 is reported as 0xff from my TPM1.2

Hmm,
my TPM2.0 chip also reports sts3 as 0xff (when loading with force=1 on a
machine without bios integration)

[ 307.095344] sts3 ff
[ 307.095366] tpm_tis tpm_tis: 2.0 TPM (device-id 0x1A, rev-id 16)
[ 307.140047] tpm_tis tpm_tis: A TPM error (256) occurred continue selftest
[ 307.140056] tpm_tis tpm_tis: TPM self test failed

You are reading "sts3" - before requesting the locality and thus it returns 0xff for a TPM20 chip as well.
--> You have to have an active locality first.


For a TPM2.0 0xFF is not a valid value (if active locality is set), since reading commandCancel and resetEstablishment bit always return 0 on reads (according to spec).

--> 0xFF should be treated as a TPM1.2 (older tpms with TIS 1.2)
--> 0x04 should be treated as TPM 2.0
--> 0x08 should be treated as TPM1.2 (newer tpms with TIS1.3 enhanced)



Thanks,
Peter
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help