Re: [tpmdd-devel] Regression between Linux 3.16 and 4.8/4.9 on Lenovo X60 with coreboot

From: Paul Menzel
Date: Tue Apr 04 2017 - 13:44:41 EST


Dear Jason,


Thank you for your reply.


On 2017-04-04 19:15, Jason Gunthorpe wrote:
On Tue, Apr 04, 2017 at 06:29:06PM +0200, Paul Menzel wrote:

Unfortunately, there seems to have been a regression between Linux 3.16
and 4.8 and 4.9, so that the Linux kernel doesnât create the TPM
device.

That old kernel did not check error codes when reading burst count,
the new one does. It is quite possible the older kernel is failing to
read burst count and subtly malfunctioning.

GNUtoo got the messages below. Unfortunately, I donât know, what Linux Kernel that is.

```
tpm_tis 00:07: 1.2 TPM (device-id 0x3202, rev-id 5)
tpm tpm0: A TPM error (38) occurred attempting to determine the timeouts
tpm tpm0: Issuing TPM_STARTUP
tpm tpm0: [Hardware Error]: Adjusting reported timeouts: A 10000->10000us B 10000->10000us C 0->750000us D 0->750000us
```

It would be helpful if you could prove/disprove this statement by
adding some debugging to 3.16.

Could you please help me with that? Can I enable certain options to get more debugging information?

As to why the burst count cannot be read.. I don't know, check if
increasing the retries helps, it could be this particular TPM is out
of spec for the cold startup process.

How can I increase the retry count?

Remove module and run `sudo modprobe tpm_tis itpm=1 force=1`.

Is this really an 'itpm'? It doesn't look like it..

Sorry, I donât know. Leaving that out, gives the same messages though.

```
tpm tpm0: Unable to read burstcount
tpm tpm0: tpm_transmit: tpm_send: error -16
tpm_tis tpm_tis: Could not get TPM timeouts and durations
```


Kind regards,

Paul Menzel