Felix Held has submitted this change. ( https://review.coreboot.org/c/coreboot/+/68600 )
Change subject: drivers/tpm: Move TPM init to end of device init phase ......................................................................
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/+/68600 Tested-by: build bot (Jenkins) no-reply@coreboot.org Reviewed-by: Angel Pons th3fanbus@gmail.com --- M src/drivers/tpm/tpm.c 1 file changed, 23 insertions(+), 1 deletion(-)
Approvals: build bot (Jenkins): Verified Angel Pons: Looks good to me, approved
diff --git a/src/drivers/tpm/tpm.c b/src/drivers/tpm/tpm.c index ce1a2b7..3b582c8 100644 --- a/src/drivers/tpm/tpm.c +++ b/src/drivers/tpm/tpm.c @@ -10,4 +10,4 @@ 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);