Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1616193 > unrolled thread

Regression between Linux 3.16 and 4.8/4.9 on Lenovo X60 with coreboot

Started byPaul Menzel <pmenzel@molgen.mpg.de>
First post2017-04-04 18:30 +0200
Last post2017-04-04 19:50 +0200
Articles 3 — 2 participants

Back to article view | Back to linux.kernel


Contents

  Regression between Linux 3.16 and 4.8/4.9 on Lenovo X60 with coreboot Paul Menzel <pmenzel@molgen.mpg.de> - 2017-04-04 18:30 +0200
    Re: [tpmdd-devel] Regression between Linux 3.16 and 4.8/4.9 on  Lenovo X60 with coreboot Jason Gunthorpe <jgunthorpe@obsidianresearch.com> - 2017-04-04 19:20 +0200
      Re: [tpmdd-devel] Regression between Linux 3.16 and 4.8/4.9 on Lenovo  X60 with coreboot Paul Menzel <pmenzel@molgen.mpg.de> - 2017-04-04 19:50 +0200

#1616193 — Regression between Linux 3.16 and 4.8/4.9 on Lenovo X60 with coreboot

FromPaul Menzel <pmenzel@molgen.mpg.de>
Date2017-04-04 18:30 +0200
SubjectRegression between Linux 3.16 and 4.8/4.9 on Lenovo X60 with coreboot
Message-ID<tszvc-7i4-13@gated-at.bofh.it>
Dear Linux folks,


Currently, TPM support is added to the coreboot project for the Lenovo 
X60 [1].

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.

```
$ more /proc/version Linux version 3.16.0-4-686-pae 
(debian-kernel@lists.debian.org) (gcc version 4.8.4 (Debian 4.8.4-1) ) 
#1 SMP Debian 3.16.39-1+deb8u2 (2017-03-07)
$ journalctl -k -o cat | grep -i tpm
tpm_tis 00:08: 1.2 TPM (device-id 0x3202, rev-id 5)
tpm_tis 00:08: Issuing TPM_STARTUP
```

The device `/dev/tpm0` is present.

Here are the results with Linux 4.8.15.

```
kernel: [    0.000000] Linux version 4.8.0-0.bpo.2-686-pae 
(debian-kernel@lists.debian.org) (gcc version 4.9.2 (Debian 4.9.2-10) ) 
#1 SMP Debian 4.8.15-2~bpo8+2 (2017-01-17)
[…]
kernel: [   11.302522] tpm tpm0: tpm_transmit: tpm_send: error -5
kernel: [   11.302598] tpm_tis 00:08: Could not get TPM timeouts and 
durations
```

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

```
kernel: [   35.024386] tpm_tis tpm_tis: 1.2 TPM (device-id 0x3202, rev-id 5)
kernel: [   49.160752] tpm_tis 00:08: can't request region for resource 
[mem 0xfed40000-0xfed44fff]
kernel: [   49.160865] tpm_tis: probe of 00:08 failed with error -16
```

And here with Linux 4.9.13.

```
kernel: [ 7.813547] tpm_tis 00:08: 1.2 TPM (device-id 0x3202, rev-id 5)
kernel: [ 7.891026] tpm tpm0: Issuing TPM_STARTUP
kernel: [ 8.042783] tpm tpm0: Unable to read burstcount
kernel: [ 8.042893] tpm tpm0: tpm_transmit: tpm_send: error -16
kernel: [ 8.042900] tpm_tis 00:08: Could not get TPM timeouts and duration
```

If I am not mistaken, the error code 16 is for the macro `EBUSY`.

It’d be great, if the TPM would also be created in the newer Linux 
Kernel versions, so that Debian users can upgrade to the upcoming stable 
release, which ships Linux 4.9.

Unfortunately, I won’t be able to bisect the commit introducing the 
regression. Could you please tell me how to debug, why the burstcount 
cannot be read.


Kind regards,

Paul


[1] https://review.coreboot.org/13410/

[toc] | [next] | [standalone]


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

FromJason Gunthorpe <jgunthorpe@obsidianresearch.com>
Date2017-04-04 19:20 +0200
SubjectRe: [tpmdd-devel] Regression between Linux 3.16 and 4.8/4.9 on Lenovo X60 with coreboot
Message-ID<tsAhA-7QC-23@gated-at.bofh.it>
In reply to#1616193
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.

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

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.

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

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

Jason

[toc] | [prev] | [next] | [standalone]


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

FromPaul Menzel <pmenzel@molgen.mpg.de>
Date2017-04-04 19:50 +0200
SubjectRe: [tpmdd-devel] Regression between Linux 3.16 and 4.8/4.9 on Lenovo X60 with coreboot
Message-ID<tsAKB-81K-1@gated-at.bofh.it>
In reply to#1616230
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

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web