summaryrefslogtreecommitdiff
path: root/common/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/main.c')
-rw-r--r--common/main.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/common/main.c b/common/main.c
index dff6c6a126..d517636f0e 100644
--- a/common/main.c
+++ b/common/main.c
@@ -162,12 +162,15 @@ test_mockable __keep int main(void)
button_init();
#endif
-#ifdef CONFIG_RWSIG
+#if defined(CONFIG_RWSIG) && !defined(HAS_TASK_RWSIG)
/*
- * Check the RW firmware signature
- * and eventually jump to it if it is good.
+ * Check the RW firmware signature and jump to it if it is good.
+ *
+ * Only the Read-Only firmware needs to do the signature check.
*/
- check_rw_signature();
+ if (system_get_image_copy() == SYSTEM_IMAGE_RO &&
+ rwsig_check_signature())
+ rwsig_jump_now();
#endif
/*