Messages in this thread | | | Date | Thu, 29 Aug 2019 11:04:44 -0700 | From | Jerry Snitselaar <> | Subject | Re: [PATCH 2/2 v2] tpm_tis: override durations for STM tpm with firmware 1.2.8.28 |
| |
On Thu Aug 29 19, Jarkko Sakkinen wrote: >On Thu, Aug 29, 2019 at 05:40:40PM +0300, Jarkko Sakkinen wrote: >> On Tue, Aug 27, 2019 at 05:46:21PM -0700, Jerry Snitselaar wrote: >> > There was revealed a bug in the STM TPM chipset used in Dell R415s. >> > Bug is observed so far only on chipset firmware 1.2.8.28 >> > (1.2 TPM, device-id 0x0, rev-id 78). After some number of >> > operations chipset hangs and stays in inconsistent state: >> > >> > tpm_tis 00:09: Operation Timed out >> > tpm_tis 00:09: tpm_transmit: tpm_send: error -5 >> > >> > Durations returned by the chip are the same like on other >> > firmware revisions but apparently with specifically 1.2.8.28 fw >> > durations should be reset to 2 minutes to enable tpm chip work >> > properly. No working way of updating firmware was found. >> > >> > This patch adds implementation of ->update_durations method >> > that matches only STM devices with specific firmware version. >> > >> > Cc: Peter Huewe <peterhuewe@gmx.de> >> > Cc: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> >> > Cc: Jason Gunthorpe <jgg@ziepe.ca> >> > Signed-off-by: Alexey Klimov <aklimov@redhat.com> >> > Signed-off-by: Jerry Snitselaar <jsnitsel@redhat.com> >> > --- >> > v2: Make suggested changes from Jarkko >> > - change struct field name to durations from durs >> > - formatting cleanups >> > - turn into void function like update_timeouts and >> > use chip->duration_adjusted to track whether adjustment occurred. >> >> The code repetition looks horrible so I wrote a patch that should help: >> >> https://patchwork.kernel.org/patch/11121475/ >> >> Read the remar that prepends the diffstat. > >Forgot from that remark that I did not have TPM 1.x available at hand >(WFH today) so please also review and test it. > >/Jrakko
I will test it this morning, and once that is done I'll submit a v3 that cleans up the version comparison in the update_durations function.
| |