drivers/tpm: Move TPM init to end of device init phase

Boards which use an I2C TPM and do not use vboot will not have the
I2C bus initialized/ready at the start of the device init phase.
If TPM init is called before the bus, init will fail with I2C
transfer timeouts and a significantly lengthened boot time.

Resolves: https://ticket.coreboot.org/issues/429

TEST=build/boot google/reef w/o vboot, verify successful TPM init.

Change-Id: Ic47e465db1c06d8b79a1f0a06906843149b6dacd
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/68550
Reviewed-by: Alexandru Stan <amstan@chromium.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
This commit is contained in:
Matt DeVillier 2022-10-18 14:31:50 -05:00 committed by Felix Held
parent 3d242755ef
commit 411023af72
1 changed files with 1 additions and 1 deletions

View File

@ -10,4 +10,4 @@ static void init_tpm_dev(void *unused)
tpm_setup(s3resume); tpm_setup(s3resume);
} }
BOOT_STATE_INIT_ENTRY(BS_DEV_INIT, BS_ON_ENTRY, init_tpm_dev, NULL); BOOT_STATE_INIT_ENTRY(BS_DEV_INIT, BS_ON_EXIT, init_tpm_dev, NULL);