cr50: Increase cr50 i2c probe timeout
Turns out 150ms isn't enough in the worst reset conditions. On guybrush the TPM is reset in S0i3 and the CR50 is allowed to hibernate. The CR50 is woken up and initialized early during S0i3 resume. Occasionally the CR50 isn't ready before the probe times out. BUG=b:213828947 BRANCH=None TEST=suspend_stress_test -c 1000 Change-Id: Ifda438080cf1ad2796c7061223a6a97b8e6e9987 Signed-off-by: Rob Barnes <robbarnes@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/61104 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Paul Menzel <paulepanter@mailbox.org> Reviewed-by: Raul Rangel <rrangel@chromium.org> Reviewed-by: Karthik Ramasubramanian <kramasub@google.com> Reviewed-by: Keith Short <keithshort@chromium.org>
This commit is contained in:
parent
57309d362c
commit
5a8b9c94a6
|
@ -445,13 +445,13 @@ static int cr50_i2c_probe(struct tpm_chip *chip, uint32_t *did_vid)
|
||||||
int retries;
|
int retries;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 150 ms should be enough to synchronize with the TPM even under the
|
* 200 ms should be enough to synchronize with the TPM even under the
|
||||||
* worst nested reset request conditions. In vast majority of cases
|
* worst nested reset request conditions. In vast majority of cases
|
||||||
* there would be no wait at all.
|
* there would be no wait at all.
|
||||||
*/
|
*/
|
||||||
printk(BIOS_INFO, "Probing TPM I2C: ");
|
printk(BIOS_INFO, "Probing TPM I2C: ");
|
||||||
|
|
||||||
for (retries = 15; retries > 0; retries--) {
|
for (retries = 20; retries > 0; retries--) {
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
rc = cr50_i2c_read(chip, TPM_DID_VID(0), (uint8_t *)did_vid, 4);
|
rc = cr50_i2c_read(chip, TPM_DID_VID(0), (uint8_t *)did_vid, 4);
|
||||||
|
|
Loading…
Reference in New Issue