Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754893AbdDDQ3L (ORCPT ); Tue, 4 Apr 2017 12:29:11 -0400 Received: from mx3.molgen.mpg.de ([141.14.17.11]:56933 "EHLO mx1.molgen.mpg.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752518AbdDDQ3K (ORCPT ); Tue, 4 Apr 2017 12:29:10 -0400 To: tpmdd-devel@lists.sourceforge.net Cc: Linux Kernel Mailing List From: Paul Menzel Subject: Regression between Linux 3.16 and 4.8/4.9 on Lenovo X60 with coreboot Message-ID: <31e0ed69-174b-93ce-abf2-66cf08b1594e@molgen.mpg.de> Date: Tue, 4 Apr 2017 18:29:06 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2106 Lines: 68 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/