<p>Daisuke Nojiri has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/21711">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Fizz: Continue booting with EC in RW for EC-EFS<br><br>If EC does EFS, it jumps to RW in all cases except when recovery<br>is requested manually. This patch makes Coreboot on EC-EFS systems<br>check whether EC is running in RO or not only when recovery is<br>requested manually.<br><br>BUG=b:66516882<br>BRANCH=none<br>TEST=Boot Fizz.<br><br>Change-Id: I45a874b73c46ea88cb831485757d194faa9f4c99<br>Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org><br>---<br>M src/ec/google/chromeec/ec.c<br>M src/vboot/bootmode.c<br>M src/vboot/vboot_common.h<br>3 files changed, 17 insertions(+), 2 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/11/21711/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">diff --git a/src/ec/google/chromeec/ec.c b/src/ec/google/chromeec/ec.c<br>index 03d4c3b..1783281 100644<br>--- a/src/ec/google/chromeec/ec.c<br>+++ b/src/ec/google/chromeec/ec.c<br>@@ -668,6 +668,15 @@<br> <br> static int ec_image_type; /* Cached EC image type (ro or rw). */<br> <br>+static<br>+int need_ec_in_ro(void)<br>+{<br>+   if (IS_ENABLED(CONFIG_VBOOT_EC_EFS))<br>+         return vboot_recovery_mode_enabled_manually();<br>+       else<br>+         return vboot_recovery_mode_enabled();<br>+}<br>+<br> void google_chromeec_init(void)<br> {<br>    struct chromeec_command cec_cmd;<br>@@ -698,8 +707,7 @@<br>         }<br> <br>  if (cec_cmd.cmd_code ||<br>-          (vboot_recovery_mode_enabled() &&<br>-             (cec_resp.current_image != EC_IMAGE_RO))) {<br>+         (need_ec_in_ro() && (cec_resp.current_image != EC_IMAGE_RO))) {<br>           /* Reboot the EC and make it come back in RO mode */<br>          printk(BIOS_DEBUG, "Rebooting with EC in RO mode:\n");<br>              post_code(0); /* clear current post code */<br>diff --git a/src/vboot/bootmode.c b/src/vboot/bootmode.c<br>index 1207448..23285dd 100644<br>--- a/src/vboot/bootmode.c<br>+++ b/src/vboot/bootmode.c<br>@@ -141,6 +141,11 @@<br>    return !!vboot_check_recovery_request();<br> }<br> <br>+int vboot_recovery_mode_enabled_manually(void)<br>+{<br>+ return vboot_check_recovery_request() == VB2_RECOVERY_RO_MANUAL;<br>+}<br>+<br> int __attribute__((weak)) clear_recovery_mode_switch(void)<br> {<br>      // Weak implementation. Nothing to do.<br>diff --git a/src/vboot/vboot_common.h b/src/vboot/vboot_common.h<br>index 8c92f7f..1636a5e 100644<br>--- a/src/vboot/vboot_common.h<br>+++ b/src/vboot/vboot_common.h<br>@@ -108,10 +108,12 @@<br> #if IS_ENABLED(CONFIG_VBOOT)<br> int vboot_developer_mode_enabled(void);<br> int vboot_recovery_mode_enabled(void);<br>+int vboot_recovery_mode_enabled_manually(void);<br> int vboot_recovery_mode_memory_retrain(void);<br> #else /* !CONFIG_VBOOT */<br> static inline int vboot_developer_mode_enabled(void) { return 0; }<br> static inline int vboot_recovery_mode_enabled(void) { return 0; }<br>+static inline int vboot_recovery_mode_enabled_manually(void) { return 0; }<br> static inline int vboot_recovery_mode_memory_retrain(void) { return 0; }<br> #endif<br> <br></pre><p>To view, visit <a href="https://review.coreboot.org/21711">change 21711</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/21711"/><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: I45a874b73c46ea88cb831485757d194faa9f4c99 </div>
<div style="display:none"> Gerrit-Change-Number: 21711 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Daisuke Nojiri <dnojiri@chromium.org> </div>