From 079982a66eb666beb7c238f18ccfd47077e41504 Mon Sep 17 00:00:00 2001
From: Rahix <rahix@rahix.de>
Date: Fri, 3 Apr 2020 12:43:15 +0200
Subject: [PATCH] fix(lifecycle): Don't trigger a reset during startup

Signed-off-by: Rahix <rahix@rahix.de>
---
 epicardium/modules/lifecycle.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/epicardium/modules/lifecycle.c b/epicardium/modules/lifecycle.c
index 2e72880fb..bce448e69 100644
--- a/epicardium/modules/lifecycle.c
+++ b/epicardium/modules/lifecycle.c
@@ -355,9 +355,17 @@ void vLifecycleTask(void *pvParameters)
 
 	mutex_unlock(&core1_mutex);
 
-	/* If `main.py` exists, start it.  Otherwise, start `menu.py`. */
-	if (epic_exec("main.py") < 0) {
-		return_to_menu();
+	/*
+	 * If `main.py` exists, start it.  Otherwise, start `menu.py`.
+	 *
+	 * We are not using epic_exec() & return_to_menu() here because those
+	 * trigger a reset which is undesirable during startup.
+	 */
+	mutex_lock(&core1_mutex);
+	int ret = load_sync("main.py", false);
+	mutex_unlock(&core1_mutex);
+	if (ret < 0) {
+		load_menu(false);
 	}
 
 	hardware_init();
-- 
GitLab