diff mbox series

[5/8] tpm: sandbox: Allow init of TPM in a different phase

Message ID 20220301001125.1554442-6-sjg@chromium.org
State Changes Requested
Delegated to: Ilias Apalodimas
Headers show
Series tpm: Various minor fixes and enhancements | expand

Commit Message

Simon Glass March 1, 2022, 12:11 a.m. UTC
At present the emulator assumes that the TPM is inited in the same phase
where it is used. But in fact SPL may init the TPM, so we don't want to
complain when U-Boot proper later uses it. Remove this check.

It might be best to save this information into the device state for the
TPM, so that we can make sure the TPM was inited at some point. For now,
this seems good enough.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 drivers/tpm/tpm2_tis_sandbox.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Comments

Ilias Apalodimas June 7, 2022, 8:48 a.m. UTC | #1
Hi Simon, 

On Mon, Feb 28, 2022 at 05:11:22PM -0700, Simon Glass wrote:
> At present the emulator assumes that the TPM is inited in the same phase
> where it is used. But in fact SPL may init the TPM, so we don't want to
> complain when U-Boot proper later uses it. Remove this check.
> 
> It might be best to save this information into the device state for the
> TPM, so that we can make sure the TPM was inited at some point. For now,
> this seems good enough.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
> 
>  drivers/tpm/tpm2_tis_sandbox.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/tpm/tpm2_tis_sandbox.c b/drivers/tpm/tpm2_tis_sandbox.c
> index ac6eb14353..c26f5d35ab 100644
> --- a/drivers/tpm/tpm2_tis_sandbox.c
> +++ b/drivers/tpm/tpm2_tis_sandbox.c
> @@ -366,8 +366,10 @@ static int sandbox_tpm2_check_readyness(struct udevice *dev, int command)
>  
>  		break;
>  	default:
> -		if (!tpm->tests_done)
> -			return TPM2_RC_NEEDS_TEST;
> +		/* Skip this, since the startup may have happened in SPL
> +		 * if (!tpm->tests_done)
> +		 *    return TPM2_RC_NEEDS_TEST;
> +		 */


This looks reasonable.  On top of that the TPM will return 'already
initialized' if someone tries to do that after SPL, so we should be safe.

>  
>  		break;
>  	}
> -- 
> 2.35.1.574.g5d30c73bfb-goog
> 

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
diff mbox series

Patch

diff --git a/drivers/tpm/tpm2_tis_sandbox.c b/drivers/tpm/tpm2_tis_sandbox.c
index ac6eb14353..c26f5d35ab 100644
--- a/drivers/tpm/tpm2_tis_sandbox.c
+++ b/drivers/tpm/tpm2_tis_sandbox.c
@@ -366,8 +366,10 @@  static int sandbox_tpm2_check_readyness(struct udevice *dev, int command)
 
 		break;
 	default:
-		if (!tpm->tests_done)
-			return TPM2_RC_NEEDS_TEST;
+		/* Skip this, since the startup may have happened in SPL
+		 * if (!tpm->tests_done)
+		 *    return TPM2_RC_NEEDS_TEST;
+		 */
 
 		break;
 	}