ec/google/wilco: Read back from EC RAM after S0ix entry

We are seeing an EC interrupt after setting the EC RAM offset that
indicates that the EC should transition to S0ix mode and this is
preventing the kernel from going into S0ix on the first try.

As a workaround if we read back from the EC RAM while still in the
_DSM handler it seems to prevent this problem.

BUG=b:130644677
BRANCH=sarien
TEST=ensure s0ix entry works on the first try with sarien

Change-Id: Id607c4c2b14b79d0cd1bcea0c2032be2f2c0c141
Signed-off-by: Duncan Laurie <dlaurie@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/33455
Reviewed-by: Shaunak Saha <shaunak.saha@intel.corp-partner.google.com>
Reviewed-by: Furquan Shaikh <furquan@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Duncan Laurie 2019-06-13 11:07:04 -07:00 committed by Duncan Laurie
parent de666dc9b8
commit 6ff848aaf8
1 changed files with 6 additions and 0 deletions

View File

@ -154,6 +154,12 @@ Device (EC0)
If (Arg0) { If (Arg0) {
Printf ("EC Enter S0ix") Printf ("EC Enter S0ix")
W (CSEX, One) W (CSEX, One)
/*
* Read back from EC RAM after enabling S0ix
* to prevent EC from aborting S0ix entry.
*/
R (EVT1)
} Else { } Else {
Printf ("EC Exit S0ix") Printf ("EC Exit S0ix")
W (CSEX, Zero) W (CSEX, Zero)