mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
Add two patches: vtpm-microsecond-duration.patch fixes the units for timeouts and command durations. vtpm-command-duration.patch increases the timeout linux uses to allow commands to succeed. Linux works around low timeouts, but not low durations. The second patch allows commands to complete that often timeout with the lower command durations. Signed-off-by: Jason Andryuk <jandryuk@gmail.com> Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org> Reviewed-by: Daniel P. Smith <dpsmith@apertussolutions.com>
53 lines
1.8 KiB
Diff
53 lines
1.8 KiB
Diff
From 5a510e0afd7c288e3f0fb3523ec749ba1366ad61 Mon Sep 17 00:00:00 2001
|
|
From: Jason Andryuk <jandryuk@gmail.com>
|
|
Date: Sun, 14 Mar 2021 12:42:10 -0400
|
|
Subject: [PATCH 1/2] Use microseconds for timeouts and durations
|
|
|
|
The timeout and duration fields should be in microseconds according to
|
|
the spec.
|
|
|
|
TPM_CAP_PROP_TIS_TIMEOUT:
|
|
A 4 element array of UINT32 values each denoting the timeout value in
|
|
microseconds for the following in this order:
|
|
|
|
TPM_CAP_PROP_DURATION:
|
|
A 3 element array of UINT32 values each denoting the duration value in
|
|
microseconds of the duration of the three classes of commands:
|
|
|
|
Linux will scale the timeouts up by 1000, but not the durations. Change
|
|
the units for both sets as appropriate.
|
|
|
|
Signed-off-by: Jason Andryuk <jandryuk@gmail.com>
|
|
---
|
|
tpm/tpm_data.c | 14 +++++++-------
|
|
1 file changed, 7 insertions(+), 7 deletions(-)
|
|
|
|
diff --git a/tpm/tpm_data.c b/tpm/tpm_data.c
|
|
index a3a79ef..bebaf10 100644
|
|
--- a/tpm/tpm_data.c
|
|
+++ b/tpm/tpm_data.c
|
|
@@ -67,13 +67,13 @@ static void init_nv_storage(void)
|
|
static void init_timeouts(void)
|
|
{
|
|
/* for the timeouts we use the PC platform defaults */
|
|
- tpmData.permanent.data.tis_timeouts[0] = 750;
|
|
- tpmData.permanent.data.tis_timeouts[1] = 2000;
|
|
- tpmData.permanent.data.tis_timeouts[2] = 750;
|
|
- tpmData.permanent.data.tis_timeouts[3] = 750;
|
|
- tpmData.permanent.data.cmd_durations[0] = 1;
|
|
- tpmData.permanent.data.cmd_durations[1] = 10;
|
|
- tpmData.permanent.data.cmd_durations[2] = 1000;
|
|
+ tpmData.permanent.data.tis_timeouts[0] = 750000;
|
|
+ tpmData.permanent.data.tis_timeouts[1] = 2000000;
|
|
+ tpmData.permanent.data.tis_timeouts[2] = 750000;
|
|
+ tpmData.permanent.data.tis_timeouts[3] = 750000;
|
|
+ tpmData.permanent.data.cmd_durations[0] = 1000;
|
|
+ tpmData.permanent.data.cmd_durations[1] = 10000;
|
|
+ tpmData.permanent.data.cmd_durations[2] = 1000000;
|
|
}
|
|
|
|
void tpm_init_data(void)
|
|
--
|
|
2.30.2
|
|
|