diff options
author | Daisuke Nojiri <dnojiri@chromium.org> | 2020-06-24 12:15:15 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-06-26 03:13:06 +0000 |
commit | ee378a97e26eff37577144d0166d4a0398a9ae7d (patch) | |
tree | 0ec0ce400a8691f519e04916ebab19df9b72420e | |
parent | f63835743dfc7d01a0c2a3c1cde8480a6237bac7 (diff) | |
download | chrome-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.c | 6 |
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; |