summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaisuke Nojiri <dnojiri@chromium.org>2020-06-24 12:15:15 -0700
committerCommit Bot <commit-bot@chromium.org>2020-06-26 03:13:06 +0000
commitee378a97e26eff37577144d0166d4a0398a9ae7d (patch)
tree0ec0ce400a8691f519e04916ebab19df9b72420e
parentf63835743dfc7d01a0c2a3c1cde8480a6237bac7 (diff)
downloadchrome-ec-ee378a97e26eff37577144d0166d4a0398a9ae7d.tar.gz
EFS2: Ping cr50 beforehand in case it's asleep
There are situations where EC resets while Cr50 is in sleep. In such cases, Cr50 doesn't get ready for ec-comm until EC talks to Cr50 thus EC may time out after 5 attempts. This patch makes EC toggle PACKET_MODE_EN proactively in case Cr50 is in sleep. BUG=b:158486465 BRANCH=none TEST=Shutdown Trembyle, hibernate EC, press power button. EC receives response from Cr50 without timeout. Change-Id: I02fcfdc00e2596d6ca6a7be4e0a8996654639984 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2264893 Reviewed-by: Eric Peers <epeers@google.com> Tested-by: Eric Peers <epeers@google.com> Tested-by: Daisuke Nojiri <dnojiri@chromium.org> Auto-Submit: Daisuke Nojiri <dnojiri@chromium.org> Commit-Queue: Daisuke Nojiri <dnojiri@chromium.org>
-rw-r--r--common/vboot/efs2.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/common/vboot/efs2.c b/common/vboot/efs2.c
index e6b818c3ad..963d10a4b2 100644
--- a/common/vboot/efs2.c
+++ b/common/vboot/efs2.c
@@ -160,6 +160,12 @@ static enum cr50_comm_err verify_hash(void)
const uint8_t *hash;
int rv;
+ /* Wake up Cr50 beforehand in case it's asleep. */
+ enable_packet_mode(true);
+ CPRINTS("Ping Cr50");
+ msleep(1);
+ enable_packet_mode(false);
+
rv = vboot_get_rw_hash(&hash);
if (rv)
return rv;