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@xxxxxx>
> Cc: Jarkko Sakkinen <jarkko.sakkinen@xxxxxxxxxxxxxxx>
> Cc: Jason Gunthorpe <jgg@xxxxxxxx>
> Signed-off-by: Alexey Klimov <aklimov@xxxxxxxxxx>
> Signed-off-by: Jerry Snitselaar <jsnitsel@xxxxxxxxxx>
> ---
> 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.