@@ -103,10 +103,9 @@ endfunction()
103103# 'output_file' - path to output signed envelope
104104function (suit_sign_envelope input_file output_file)
105105 cmake_path(GET ZEPHYR_NRF_MODULE_DIR PARENT_PATH NRF_DIR_PARENT)
106- sysbuild_get(CONFIG_SUIT_ENVELOPE_SIGN_SCRIPT IMAGE ${DEFAULT_IMAGE} VAR CONFIG_SUIT_ENVELOPE_SIGN_SCRIPT KCONFIG)
107- suit_set_absolute_or_relative_path(${CONFIG_SUIT_ENVELOPE_SIGN_SCRIPT} ${NRF_DIR_PARENT} SIGN_SCRIPT)
106+ suit_set_absolute_or_relative_path(${SB_CONFIG_SUIT_ENVELOPE_SIGN_SCRIPT} ${NRF_DIR_PARENT} SIGN_SCRIPT)
108107 if (NOT EXISTS ${SIGN_SCRIPT} )
109- message (SEND_ERROR "DFU: ${CONFIG_SUIT_ENVELOPE_SIGN_SCRIPT } does not exist. Corrupted configuration?" )
108+ message (SEND_ERROR "DFU: ${SB_CONFIG_SUIT_ENVELOPE_SIGN_SCRIPT } does not exist. Corrupted configuration?" )
110109 return ()
111110 endif ()
112111 set_property (
@@ -164,14 +163,23 @@ function(suit_create_package)
164163 set (CORE_ARGS)
165164 set (STORAGE_BOOT_ARGS)
166165
167- sysbuild_get(CONFIG_SUIT_ENVELOPE_EDITABLE_TEMPLATES_LOCATION IMAGE ${DEFAULT_IMAGE} VAR CONFIG_SUIT_ENVELOPE_EDITABLE_TEMPLATES_LOCATION KCONFIG)
168- suit_set_absolute_or_relative_path(${CONFIG_SUIT_ENVELOPE_EDITABLE_TEMPLATES_LOCATION} ${PROJECT_BINARY_DIR} INPUT_TEMPLATES_DIRECTORY)
169- sysbuild_get(ENVELOPE_SHALL_BE_SIGNED IMAGE ${DEFAULT_IMAGE} VAR CONFIG_SUIT_ENVELOPE_SIGN KCONFIG)
166+ suit_set_absolute_or_relative_path(${SB_CONFIG_SUIT_ENVELOPE_EDITABLE_TEMPLATES_LOCATION} ${PROJECT_BINARY_DIR} INPUT_TEMPLATES_DIRECTORY)
167+ set (ENVELOPE_SHALL_BE_SIGNED ${SB_CONFIG_SUIT_ENVELOPE_SIGN} )
170168 if (NOT DEFINED ENVELOPE_SHALL_BE_SIGNED)
171169 set (ENVELOPE_SHALL_BE_SIGNED FALSE )
172170 endif ()
173171
172+ list (APPEND CORE_ARGS
173+ --core sysbuild,,,${CMAKE_BINARY_DIR} /zephyr/.config
174+ )
175+
174176 foreach (image ${IMAGES} )
177+ sysbuild_get(GENERATE_LOCAL_ENVELOPE IMAGE ${image} VAR CONFIG_SUIT_LOCAL_ENVELOPE_GENERATE KCONFIG)
178+ if (NOT DEFINED GENERATE_LOCAL_ENVELOPE)
179+ continue ()
180+ endif ()
181+ unset (GENERATE_LOCAL_ENVELOPE)
182+
175183 sysbuild_get(INPUT_ENVELOPE_JINJA_FILE IMAGE ${image} VAR CONFIG_SUIT_ENVELOPE_TEMPLATE KCONFIG)
176184 sysbuild_get(target IMAGE ${image} VAR CONFIG_SUIT_ENVELOPE_TARGET KCONFIG)
177185 sysbuild_get(BINARY_DIR IMAGE ${image} VAR APPLICATION_BINARY_DIR CACHE )
@@ -185,10 +193,9 @@ function(suit_create_package)
185193 set (BINARY_FILE "${BINARY_FILE} .bin" )
186194
187195 list (APPEND CORE_ARGS
188- --core ${target} ,${SUIT_ROOT_DIRECTORY}${target} .bin,${BINARY_DIR} /zephyr/edt.pickle
196+ --core ${target} ,${SUIT_ROOT_DIRECTORY}${target} .bin,${BINARY_DIR} /zephyr/edt.pickle, ${BINARY_DIR} /zephyr/.config
189197 )
190198
191- sysbuild_get(CONFIG_SUIT_ENVELOPE_ROOT_ARTIFACT_NAME IMAGE ${DEFAULT_IMAGE} VAR CONFIG_SUIT_ENVELOPE_ROOT_ARTIFACT_NAME KCONFIG)
192199 set (ENVELOPE_YAML_FILE ${SUIT_ROOT_DIRECTORY}${target} .yaml)
193200 set (ENVELOPE_SUIT_FILE ${SUIT_ROOT_DIRECTORY}${target} .suit)
194201
@@ -200,14 +207,11 @@ function(suit_create_package)
200207 )
201208 endforeach ()
202209
203- sysbuild_get (INPUT_ROOT_ENVELOPE_JINJA_FILE IMAGE ${DEFAULT_IMAGE} VAR CONFIG_SUIT_ENVELOPE_ROOT_TEMPLATE KCONFIG )
210+ set (INPUT_ROOT_ENVELOPE_JINJA_FILE ${SB_CONFIG_SUIT_ENVELOPE_ROOT_TEMPLATE} )
204211
205212 # create root envelope if defined
206213 if (DEFINED INPUT_ROOT_ENVELOPE_JINJA_FILE AND NOT INPUT_ROOT_ENVELOPE_JINJA_FILE STREQUAL "" )
207- sysbuild_get(ROOT_NAME IMAGE ${DEFAULT_IMAGE} VAR CONFIG_SUIT_ENVELOPE_ROOT_ARTIFACT_NAME KCONFIG)
208- if (NOT DEFINED ROOT_NAME OR ROOT_NAME STREQUAL "" )
209- set (ROOT_NAME "root" )
210- endif ()
214+ set (ROOT_NAME ${SB_CONFIG_SUIT_ENVELOPE_ROOT_ARTIFACT_NAME} )
211215 suit_copy_input_template(${INPUT_TEMPLATES_DIRECTORY} "${INPUT_ROOT_ENVELOPE_JINJA_FILE} " ROOT_ENVELOPE_JINJA_FILE)
212216 suit_check_template_digest(${INPUT_TEMPLATES_DIRECTORY} "${INPUT_ROOT_ENVELOPE_JINJA_FILE} " )
213217 set (ROOT_ENVELOPE_YAML_FILE ${SUIT_ROOT_DIRECTORY}${ROOT_NAME} .yaml)
@@ -242,6 +246,13 @@ function(suit_setup_merge)
242246 sysbuild_get(BINARY_DIR IMAGE ${DEFAULT_IMAGE} VAR APPLICATION_BINARY_DIR CACHE )
243247 foreach (image ${IMAGES} )
244248 set (ARTIFACTS_TO_MERGE)
249+
250+ sysbuild_get(GENERATE_LOCAL_ENVELOPE IMAGE ${image} VAR CONFIG_SUIT_LOCAL_ENVELOPE_GENERATE KCONFIG)
251+ if (NOT DEFINED GENERATE_LOCAL_ENVELOPE)
252+ continue ()
253+ endif ()
254+ unset (GENERATE_LOCAL_ENVELOPE)
255+
245256 sysbuild_get(IMAGE_BINARY_DIR IMAGE ${image} VAR APPLICATION_BINARY_DIR CACHE )
246257 sysbuild_get(IMAGE_BINARY_FILE IMAGE ${image} VAR CONFIG_KERNEL_BIN_NAME KCONFIG)
247258 sysbuild_get(IMAGE_TARGET_NAME IMAGE ${image} VAR CONFIG_SUIT_ENVELOPE_TARGET KCONFIG)
@@ -275,8 +286,6 @@ function(suit_setup_merge)
275286 endforeach ()
276287endfunction ()
277288
278- # Enable SUIT envelope generation only if DEFAULT_IMAGE has it enabled.
279- sysbuild_get(CONFIG_SUIT_ENVELOPE IMAGE ${DEFAULT_IMAGE} VAR CONFIG_SUIT_ENVELOPE KCONFIG)
280- if (CONFIG_SUIT_ENVELOPE)
289+ if (SB_CONFIG_SUIT_ENVELOPE)
281290 suit_create_package()
282- endif ()
291+ endif ()
0 commit comments