@@ -33,10 +33,14 @@ void suit_execution_mode_startup_failed(void)
3333 case EXECUTION_MODE_FAIL_INSTALL_NORDIC_TOP :
3434 /* SUIT processes update candiadate. */
3535 case EXECUTION_MODE_INSTALL :
36+ /* SUIT processes recovery as foreground update. */
37+ case EXECUTION_MODE_INSTALL_FOREGROUND_DFU :
3638 /* SUIT processes recovery update. */
3739 case EXECUTION_MODE_INSTALL_RECOVERY :
3840 /* SUIT boots from root manifest. */
3941 case EXECUTION_MODE_INVOKE :
42+ /* SUIT boots from recovery manifest as foreground update. */
43+ case EXECUTION_MODE_INVOKE_FOREGROUND_DFU :
4044 /* SUIT boots from recovery manifest. */
4145 case EXECUTION_MODE_INVOKE_RECOVERY :
4246 current_execution_mode = EXECUTION_MODE_FAIL_STARTUP ;
@@ -50,10 +54,14 @@ void suit_execution_mode_startup_failed(void)
5054 case EXECUTION_MODE_FAIL_MPI_INVALID_MISSING :
5155 /* System not booted, MPI misconfigured. */
5256 case EXECUTION_MODE_FAIL_MPI_UNSUPPORTED :
57+ /* System not booted, unable to boot recovery manifest as foreground update. */
58+ case EXECUTION_MODE_FAIL_INVOKE_FOREGROUND_DFU :
5359 /* System not booted, unable to boot recovery manifest. */
5460 case EXECUTION_MODE_FAIL_INVOKE_RECOVERY :
5561 /* System booted from root manifest. */
5662 case EXECUTION_MODE_POST_INVOKE :
63+ /* System booted from recovery manifest as foreground update. */
64+ case EXECUTION_MODE_POST_INVOKE_FOREGROUND_DFU :
5765 /* System booted from recovery manifest. */
5866 case EXECUTION_MODE_POST_INVOKE_RECOVERY :
5967 /* System failed before invoking SUIT orchestrator. */
@@ -68,12 +76,16 @@ bool suit_execution_mode_booting(void)
6876 switch (current_execution_mode ) {
6977 /* SUIT processes update candiadate. */
7078 case EXECUTION_MODE_INSTALL :
79+ /* SUIT processes recovery as foreground update. */
80+ case EXECUTION_MODE_INSTALL_FOREGROUND_DFU :
7181 /* SUIT processes recovery update. */
7282 case EXECUTION_MODE_INSTALL_RECOVERY :
7383 /* System is unprovisioned, SUIT updates Nordic components. */
7484 case EXECUTION_MODE_FAIL_INSTALL_NORDIC_TOP :
7585 /* System booted from root manifest. */
7686 case EXECUTION_MODE_POST_INVOKE :
87+ /* System booted from recovery manifest as foreground update. */
88+ case EXECUTION_MODE_POST_INVOKE_FOREGROUND_DFU :
7789 /* System booted from recovery manifest. */
7890 case EXECUTION_MODE_POST_INVOKE_RECOVERY :
7991 /* System not booted, application MPI missing. */
@@ -84,6 +96,8 @@ bool suit_execution_mode_booting(void)
8496 case EXECUTION_MODE_FAIL_MPI_INVALID_MISSING :
8597 /* System not booted, MPI misconfigured. */
8698 case EXECUTION_MODE_FAIL_MPI_UNSUPPORTED :
99+ /* System not booted, unable to boot recovery manifest as foreground update. */
100+ case EXECUTION_MODE_FAIL_INVOKE_FOREGROUND_DFU :
87101 /* System not booted, unable to boot recovery manifest. */
88102 case EXECUTION_MODE_FAIL_INVOKE_RECOVERY :
89103 /* System failed before invoking SUIT orchestrator. */
@@ -94,6 +108,8 @@ bool suit_execution_mode_booting(void)
94108 case EXECUTION_MODE_STARTUP :
95109 /* SUIT boots from root manifest. */
96110 case EXECUTION_MODE_INVOKE :
111+ /* SUIT boots from recovery manifest as foreground update. */
112+ case EXECUTION_MODE_INVOKE_FOREGROUND_DFU :
97113 /* SUIT boots from recovery manifest. */
98114 case EXECUTION_MODE_INVOKE_RECOVERY :
99115 break ;
@@ -108,10 +124,14 @@ bool suit_execution_mode_updating(void)
108124 switch (current_execution_mode ) {
109125 /* SUIT boots from root manifest. */
110126 case EXECUTION_MODE_INVOKE :
127+ /* SUIT boots from recovery manifest as foreground update. */
128+ case EXECUTION_MODE_INVOKE_FOREGROUND_DFU :
111129 /* SUIT boots from recovery manifest. */
112130 case EXECUTION_MODE_INVOKE_RECOVERY :
113131 /* System booted from root manifest. */
114132 case EXECUTION_MODE_POST_INVOKE :
133+ /* System booted from recovery manifest as foreground update. */
134+ case EXECUTION_MODE_POST_INVOKE_FOREGROUND_DFU :
115135 /* System booted from recovery manifest. */
116136 case EXECUTION_MODE_POST_INVOKE_RECOVERY :
117137 /* System not booted, application MPI missing. */
@@ -122,6 +142,8 @@ bool suit_execution_mode_updating(void)
122142 case EXECUTION_MODE_FAIL_MPI_INVALID_MISSING :
123143 /* System not booted, MPI misconfigured. */
124144 case EXECUTION_MODE_FAIL_MPI_UNSUPPORTED :
145+ /* System not booted, unable to boot recovery manifest as foreground update. */
146+ case EXECUTION_MODE_FAIL_INVOKE_FOREGROUND_DFU :
125147 /* System not booted, unable to boot recovery manifest. */
126148 case EXECUTION_MODE_FAIL_INVOKE_RECOVERY :
127149 /* System failed before invoking SUIT orchestrator. */
@@ -132,6 +154,8 @@ bool suit_execution_mode_updating(void)
132154 case EXECUTION_MODE_STARTUP :
133155 /* SUIT processes update candiadate. */
134156 case EXECUTION_MODE_INSTALL :
157+ /* SUIT processes recovery as foreground update. */
158+ case EXECUTION_MODE_INSTALL_FOREGROUND_DFU :
135159 /* SUIT processes recovery update. */
136160 case EXECUTION_MODE_INSTALL_RECOVERY :
137161 /* System is unprovisioned, SUIT updates Nordic components. */
@@ -150,14 +174,20 @@ bool suit_execution_mode_failed(void)
150174 case EXECUTION_MODE_STARTUP :
151175 /* SUIT processes update candiadate. */
152176 case EXECUTION_MODE_INSTALL :
177+ /* SUIT processes recovery as foreground update. */
178+ case EXECUTION_MODE_INSTALL_FOREGROUND_DFU :
153179 /* SUIT processes recovery update. */
154180 case EXECUTION_MODE_INSTALL_RECOVERY :
155181 /* SUIT boots from root manifest. */
156182 case EXECUTION_MODE_INVOKE :
183+ /* SUIT boots from recovery manifest as foreground update. */
184+ case EXECUTION_MODE_INVOKE_FOREGROUND_DFU :
157185 /* SUIT boots from recovery manifest. */
158186 case EXECUTION_MODE_INVOKE_RECOVERY :
159187 /* System booted from root manifest. */
160188 case EXECUTION_MODE_POST_INVOKE :
189+ /* System booted from recovery manifest as foreground update. */
190+ case EXECUTION_MODE_POST_INVOKE_FOREGROUND_DFU :
161191 /* System booted from recovery manifest. */
162192 case EXECUTION_MODE_POST_INVOKE_RECOVERY :
163193 /* System is unprovisioned, SUIT updates Nordic components. */
@@ -172,6 +202,8 @@ bool suit_execution_mode_failed(void)
172202 case EXECUTION_MODE_FAIL_MPI_INVALID_MISSING :
173203 /* System not booted, MPI misconfigured. */
174204 case EXECUTION_MODE_FAIL_MPI_UNSUPPORTED :
205+ /* System not booted, unable to boot recovery manifest as foreground update. */
206+ case EXECUTION_MODE_FAIL_INVOKE_FOREGROUND_DFU :
175207 /* System not booted, unable to boot recovery manifest. */
176208 case EXECUTION_MODE_FAIL_INVOKE_RECOVERY :
177209 /* System failed before invoking SUIT orchestrator. */
@@ -182,3 +214,47 @@ bool suit_execution_mode_failed(void)
182214
183215 return true;
184216}
217+
218+ suit_boot_mode_t suit_execution_mode_to_boot_mode (suit_execution_mode_t exec_mode )
219+ {
220+ switch (exec_mode ) {
221+ case EXECUTION_MODE_INVOKE :
222+ return SUIT_BOOT_MODE_INVOKE ;
223+ case EXECUTION_MODE_INVOKE_FOREGROUND_DFU :
224+ return SUIT_BOOT_MODE_INVOKE_FOREGROUND_DFU ;
225+ case EXECUTION_MODE_INVOKE_RECOVERY :
226+ return SUIT_BOOT_MODE_INVOKE_RECOVERY ;
227+ case EXECUTION_MODE_INSTALL :
228+ return SUIT_BOOT_MODE_INSTALL ;
229+ case EXECUTION_MODE_INSTALL_FOREGROUND_DFU :
230+ return SUIT_BOOT_MODE_INSTALL_FOREGROUND_DFU ;
231+ case EXECUTION_MODE_INSTALL_RECOVERY :
232+ return SUIT_BOOT_MODE_INSTALL_RECOVERY ;
233+ case EXECUTION_MODE_POST_INVOKE :
234+ return SUIT_BOOT_MODE_POST_INVOKE ;
235+ case EXECUTION_MODE_POST_INVOKE_FOREGROUND_DFU :
236+ return SUIT_BOOT_MODE_POST_INVOKE_FOREGROUND_DFU ;
237+ case EXECUTION_MODE_POST_INVOKE_RECOVERY :
238+ return SUIT_BOOT_MODE_POST_INVOKE_RECOVERY ;
239+ case EXECUTION_MODE_FAIL_NO_MPI :
240+ return SUIT_BOOT_MODE_FAIL_NO_MPI ;
241+ case EXECUTION_MODE_FAIL_MPI_INVALID :
242+ return SUIT_BOOT_MODE_FAIL_MPI_INVALID ;
243+ case EXECUTION_MODE_FAIL_MPI_INVALID_MISSING :
244+ return SUIT_BOOT_MODE_FAIL_MPI_INVALID_MISSING ;
245+ case EXECUTION_MODE_FAIL_MPI_UNSUPPORTED :
246+ return SUIT_BOOT_MODE_FAIL_MPI_UNSUPPORTED ;
247+ case EXECUTION_MODE_FAIL_INVOKE_FOREGROUND_DFU :
248+ return SUIT_BOOT_MODE_FAIL_INVOKE_FOREGROUND_DFU ;
249+ case EXECUTION_MODE_FAIL_INVOKE_RECOVERY :
250+ return SUIT_BOOT_MODE_FAIL_INVOKE_RECOVERY ;
251+ case EXECUTION_MODE_FAIL_INSTALL_NORDIC_TOP :
252+ return SUIT_BOOT_MODE_FAIL_INSTALL_NORDIC_TOP ;
253+ case EXECUTION_MODE_FAIL_STARTUP :
254+ return SUIT_BOOT_MODE_FAIL_STARTUP ;
255+ default :
256+ break ;
257+ }
258+
259+ return SUIT_BOOT_MODE_UNKNOWN ;
260+ }
0 commit comments