Bug 205409

Summary: TPM bug causes suspend to turn off device
Product: Drivers Reporter: Christian Bundy (christianbundy)
Component: OtherAssignee: drivers_other
Status: NEW ---    
Severity: normal CC: hoinka, jarkko.sakkinen, yunying.sun
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: a3fbfae82b4cb3ff9928e29f34c64d0507cad874 Subsystem:
Regression: Yes Bisected commit-id:
Attachments: output of awk -f scripts/ver_linux
.config, arch linux default
git bisect log

Description Christian Bundy 2019-11-03 22:11:58 UTC
Created attachment 285765 [details]
output of awk -f scripts/ver_linux

After finding this bug in Linux 5.1 I've bisected the kernel and have identified that the regression started with commit a3fbfae82b4cb3ff9928e29f34c64d0507cad874.

Reading journalctl before this commit would always show this on boot:

    tpm_tis 00:08: 1.2 TPM (device-id 0xB, rev-id 16)
    tpm tpm0: [Firmware Bug]: TPM interrupt not working, polling instead

Starting with the above commit, instead I saw:

    tpm_tis 00:08: 1.2 TPM (device-id 0xB, rev-id 16)
    tpm tpm0: tpm_try_transmit: send(): error -5
    tpm tpm0: A TPM error (-5) occurred attempting to determine the timeouts
    tpm_tis 00:08: Could not get TPM timeouts and durations

I've tried removing the TPM module by adding blacklist commands /etc/modprobe.d/tpm.conf, but this doesn't seem to work. I can confirm that both `journalctl -b | grep -i tpm` and `cat /proc/modules | grep -i tpm` return no results when the module is disabled, but `systemctl suspend` still shuts down the computer.

Other discussions:

- https://github.com/raphael/linux-samus/issues/217
- https://bbs.archlinux.org/viewtopic.php?pid=1871717
Comment 1 Christian Bundy 2019-11-03 22:17:37 UTC
Created attachment 285767 [details]
.config, arch linux default
Comment 2 Christian Bundy 2019-11-04 14:49:34 UTC
Noticed a similar discussion back in April that I'd like to comment on:

https://lkml.org/lkml/2019/4/8/226

I think these bugs are separate but related; the proposed fix doesn't seem to resolve the problem for me, maybe because I have a TPM firmware bug? More info on my device is available here:

https://www.chromium.org/a/chromium.org/dev/chromium-os/developer-information-for-chrome-os-devices/chromebook-pixel-2015

My firmware should be up-to-date, but FWIW I'm on:

    seabios-hswbdw_book-mrchromebox_20180912.bin

I'll also add my `git bisect log` in case it's helpful.
Comment 3 Christian Bundy 2019-11-04 14:49:56 UTC
Created attachment 285779 [details]
git bisect log
Comment 4 Jan Hoinka 2019-11-06 02:22:13 UTC
I can confirm, and have successfully replicated these findings on a 2015 Chromebook Pixel 2.