9a506d5c9a
When Cr50 TPM is being reset, it continues replying to the SPI bus requests, sends wrong register values in response to read requests. This patch makes sure that the TPM driver does not proceed unless proper value is read from the TPM device identification register. If the read value is still wrong after 10 retries taken with 10 ms intervals, the driver gives up and declares TPM broken/unavailable. BRANCH=cr50 BUG=b:68012381 TEST=ran a script resetting the Fizz device as soon as the "index 0x1007 return code 0" string shows up in the AP console output. The script keeps rebooting the Fizz indefinitely, before this script Fizz would fail to read TPM properly and fall into recovery after no more than four reboots. Change-Id: I7e67ec62c2bf31077b9ae558e09214d07eccf96b Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://review.coreboot.org/22231 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org> |
||
---|---|---|
.. | ||
acpi | ||
tpm | ||
adesto.c | ||
amic.c | ||
atmel.c | ||
boot_device_rw_nommap.c | ||
cbfs_spi.c | ||
eon.c | ||
flashconsole.c | ||
gigadevice.c | ||
Kconfig | ||
macronix.c | ||
Makefile.inc | ||
spansion.c | ||
spi-generic.c | ||
spi_flash.c | ||
spi_flash_internal.h | ||
spiconsole.c | ||
sst.c | ||
stmicro.c | ||
winbond.c |