Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1616193 > unrolled thread
| Started by | Paul Menzel <pmenzel@molgen.mpg.de> |
|---|---|
| First post | 2017-04-04 18:30 +0200 |
| Last post | 2017-04-04 19:50 +0200 |
| Articles | 3 — 2 participants |
Back to article view | Back to linux.kernel
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
| From | Paul Menzel <pmenzel@molgen.mpg.de> |
|---|---|
| Date | 2017-04-04 18:30 +0200 |
| Subject | Regression 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]
| From | Jason Gunthorpe <jgunthorpe@obsidianresearch.com> |
|---|---|
| Date | 2017-04-04 19:20 +0200 |
| Subject | Re: [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]
| From | Paul Menzel <pmenzel@molgen.mpg.de> |
|---|---|
| Date | 2017-04-04 19:50 +0200 |
| Subject | Re: [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