<p>Duncan Laurie has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/20363">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">soc/intel/skylake: storage: Add 2ms delay before exiting D3<br><br>For the skylake/kabylake generation of PCH there is an ACPI workaround<br>for emmc/sd power state that involves disabling and re-enabling dynamic<br>clock gating after enabling power to the controller, before setting the<br>power state to D0.<br><br>Under certain conditions we have observed that the controller is not<br>powered and ready by the time the kernel attempts to read the PME<br>control and status register and so the system will hang while attempting<br>to read PCI config register 0x84.<br><br>To ensure that the controller is ready add a 2ms delay after re-enabling<br>dynamic clock gating and before setting the power state to D0.<br><br>This issue has been observed on eMMC, but the same workaround exists for<br>the SD card interface so the same delay is added there.<br><br>BUG=b:35587084<br>BRANCH=eve<br>TEST=manual stress testing of D0<>D3 transition across many devices<br>shows no hard hang after 2 days.<br><br>Change-Id: If0f0323cf5437c54c907c332937b5de9dda2d8f6<br>Signed-off-by: Duncan Laurie <dlaurie@chromium.org><br>---<br>M src/soc/intel/skylake/acpi/scs.asl<br>1 file changed, 2 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/63/20363/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">diff --git a/src/soc/intel/skylake/acpi/scs.asl b/src/soc/intel/skylake/acpi/scs.asl<br>index 1f89689..c2f50cc 100644<br>--- a/src/soc/intel/skylake/acpi/scs.asl<br>+++ b/src/soc/intel/skylake/acpi/scs.asl<br>@@ -85,6 +85,7 @@<br> <br>              /* Set bits 31, 6, 2, 0 */<br>            ^^PCRO (PID_SCS, 0x600, 0x80000045)<br>+          Sleep (2)<br> <br>          /* Set Power State to D0 */<br>           Store (Zero, Local0)<br>@@ -139,6 +140,7 @@<br> <br>          /* Set bits 31, 6, 2, 0 */<br>            ^^PCRO (PID_SCS, 0x600, 0x00000185)<br>+          Sleep (2)<br> <br>          /* Set Power State to D0 */<br>           Store (Zero, Local0)<br></pre><p>To view, visit <a href="https://review.coreboot.org/20363">change 20363</a>. To unsubscribe, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/20363"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: coreboot </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: If0f0323cf5437c54c907c332937b5de9dda2d8f6 </div>
<div style="display:none"> Gerrit-Change-Number: 20363 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Duncan Laurie <dlaurie@chromium.org> </div>