summaryrefslogtreecommitdiff
path: root/common/main.c
diff options
context:
space:
mode:
authorDaisuke Nojiri <dnojiri@chromium.org>2018-01-25 12:47:33 -0800
committerchrome-bot <chrome-bot@chromium.org>2018-02-03 02:38:10 -0800
commit044cc724967fbb424dd4f686a67abce5a67cfdec (patch)
tree4d57676879db285b665f121d77851d43c0c70a74 /common/main.c
parentcd5173dfe0e80ad2ca622e64aeb9d14b82ef494f (diff)
downloadchrome-ec-044cc724967fbb424dd4f686a67abce5a67cfdec.tar.gz
Enable PD communication in RO for external display
This patch makes EC enable PD communication if it's running in manual recovery mode. This is required to show recovery screen on a type-c monitor. This patch also makes EC-EFS ignore power availability. It will make EC verify & jump to RW even if power is sourced by a barrel jack adapter. This should allow depthcharge to show screens (e.g. broken, warning) on a type-c monitor. BUG=b:72387533 BRANCH=none TEST=On Fizz with type-c monitor, verify - Recovery screen is displayed in manual recovery mode. - Critical update screen is displayed in normal mode. - Warning screen is displayed in developer mode. Monitors tested: Dingdong, Dell S2718D Change-Id: Ib53e02d1e5c0f5b2d96d9a02fd33022f92e52b04 Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/898346 Reviewed-by: Randall Spangler <rspangler@chromium.org>
Diffstat (limited to 'common/main.c')
-rw-r--r--common/main.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/common/main.c b/common/main.c
index fe3424b67f..90d4a640c3 100644
--- a/common/main.c
+++ b/common/main.c
@@ -27,6 +27,7 @@
#include "timer.h"
#include "uart.h"
#include "util.h"
+#include "vboot.h"
#include "watchdog.h"
/* Console output macros */
@@ -168,8 +169,15 @@ test_mockable __keep int main(void)
button_init();
#endif /* defined(CONFIG_DEDICATED_RECOVERY_BUTTON | CONFIG_VOLUME_BUTTONS) */
-#if !defined(CONFIG_VBOOT_EFS) && \
- defined(CONFIG_RWSIG) && !defined(HAS_TASK_RWSIG)
+#if defined(CONFIG_VBOOT_EFS)
+ /*
+ * For RO, it behaves as follows:
+ * In recovery, it enables PD communication and returns.
+ * In normal boot, it verifies and jumps to RW.
+ * For RW, it returns immediately.
+ */
+ vboot_main();
+#elif defined(CONFIG_RWSIG) && !defined(HAS_TASK_RWSIG)
/*
* Check the RW firmware signature and jump to it if it is good.
*