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

Paul Menzel
2017-04-06T18:26:34Z

On 2017-04-06 18:55, Jason Gunthorpe wrote:
> On Thu, Apr 06, 2017 at 08:18:33AM +0200, Paul Menzel wrote:
>
>> Indeed, that improves the situation. I still need to pass `force=1` to
>> the
>> module to get `/dev/tpm0`. No idea, why it’s not in included in Linux
>> 4.9
>> yet.
>
> Fair point.. Jarkko - could you forward that patch to -stable?
>
>> $ journalctl -k -o cat | grep tpm
>> tpm_tis tpm_tis: 1.2 TPM (device-id 0x3202, rev-id 5)
>> tpm tpm0: Issuing TPM_STARTUP
>> tpm tpm0: [Hardware Error]: Adjusting reported timeouts: A
>> 10000->10000us B
>> 10000->10000us C 0->752000us D 0->752000us
>
> There could be more relavent kernel messages than this, try
> grep -i tpm
>
> ?

At least I don’t spot more messages.

```
$ journalctl -b -3 -o cat | grep -i -e "Linux version" -e tpm
Linux version 4.11.0-rc5+ (root@d44d03a193d6) (gcc version 6.3.0
20170321 (Debian 6.3.0-10) ) #2 SMP Tue Apr 4 21:07:08 UTC 2017
joey : TTY=pts/6 ; PWD=/home/joey ; USER=root ; COMMAND=/usr/bin/apt
install tpm-tools
new user: name=tss, UID=123, GID=137, home=/var/lib/tpm,
shell=/bin/false
joey : TTY=pts/6 ; PWD=/home/joey ; USER=root ; COMMAND=/sbin/modprobe
-r tpm_tis tpm
joey : TTY=pts/6 ; PWD=/home/joey ; USER=root ; COMMAND=/sbin/modprobe
tpm_tis force=1
tpm_tis tpm_tis: 1.2 TPM (device-id 0x3202, rev-id 5)
tpm tpm0: Issuing TPM_STARTUP
tpm tpm0: [Hardware Error]: Adjusting reported timeouts: A
10000->10000us B 10000->10000us C 0->752000us D 0->752000us
```

>> So do you have an idea, what “ACPI requirements” changed in the `tpm`
>> module
>> since Linux 3.16 to be loaded automatically?
>
> We added direct ACPI binding to the driver in addition to PNP, so if
> you have an ACPI table it goes down that path and does some additional
> validation of what is in the TPM. The BIOS must provide a
> acpi_dev_resource_memory and a ACPI_SIG_TPM2 for the ACPI entry at a
> minimum.

Is it correct, that this is added in/for 4.11, so just recently? Testing
with Linux 4.10.8, everything is detected just fine.

```
$ journalctl -k -o cat | grep -i tpm
tpm_tis 00:08: 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->752000us D 0->752000us
```

> There are FW_BUG prints if those fail, so check your dmesg closely?
>
> http://lxr.free-electrons.com/source/drivers/char/tpm/tpm_tis.c#L250
>
> If not, can you annotate in some printk's into tpm_tis_acpi_init and
> recompile/re-test?

If nothing comes to mind with the new information above, then I could do
that. But I don’t know, if I’ll have time in the next two weeks for
that.

Kind regards,

Paul