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.2Hmm, 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