
Hi Ilias,
On Tue, 30 May 2023 at 00:18, Ilias Apalodimas ilias.apalodimas@linaro.org wrote:
For a TPM device to be operational we need to initialize it and perform its startup sequence. The 'tpm init' command currently calls tpm_init() which ends up calling the ->open() per-device callback and performs the initial hardware configuration as well as requesting locality 0 for the caller. There no code that currently calls tpm_init() without following up with a tpm_startup() and tpm_self_test_full() or tpm_continue_self_test().
So let's wire up the 'tpm init' command and call tpm_auto_start() which leaves the device in an operational state and adjust any defconfigs using 'tpm init'.
It's worth noting that calling tpm_init() only, doesn't allow a someone to use the TPM since the startup sequence is mandatory. We always repeat the pattern of calling
- tpm_init()
- tpm_startup()
- tpm_self_test_full() or tpm_continue_self_test()
as a result we don't expect any regression or boot delays with the current change.
While at it fix the identation of test_tpm_autostart() comments as well.
Signed-off-by: Ilias Apalodimas ilias.apalodimas@linaro.org
This is a split and resend of https://lore.kernel.org/u-boot/20230510074359.2837818-9-ilias.apalodimas@lin... Since Simon some had concerns I decided to split this off the series and send it as a single patch for further discussion.
cmd/tpm-common.c | 3 ++- configs/chromebook_coral_defconfig | 2 +- test/dm/tpm.c | 9 +++++---- test/py/tests/test_tpm2.py | 9 --------- 4 files changed, 8 insertions(+), 15 deletions(-)
We've already discussed this before. Please can you:
- Call tpm_autostart() instead - Add a new 'tpm autostart' command
That way we can keep tpm_init() as it is.
Regards, Simon