@@ -249,6 +249,10 @@ function(suit_create_package)
249249 sysbuild_get(BINARY_FILE IMAGE ${image} VAR CONFIG_KERNEL_BIN_NAME KCONFIG)
250250 sysbuild_get(target IMAGE ${image} VAR CONFIG_SUIT_ENVELOPE_TARGET KCONFIG)
251251 sysbuild_get(encrypt IMAGE ${image} VAR CONFIG_SUIT_ENVELOPE_TARGET_ENCRYPT KCONFIG)
252+ get_property (is_variant_image TARGET ${image} PROPERTY NCS_VARIANT_APPLICATION)
253+ if (DEFINED is_variant_image)
254+ set (target "${target} _b" )
255+ endif ()
252256
253257 set (BINARY_FILE "${BINARY_FILE} .bin" )
254258
@@ -331,11 +335,15 @@ function(suit_create_package)
331335 message (SEND_ERROR "DFU: Creation of SUIT artifacts failed." )
332336 return ()
333337 endif ()
338+ get_property (is_variant_image TARGET ${image} PROPERTY NCS_VARIANT_APPLICATION)
339+ if (DEFINED is_variant_image)
340+ set (target "${target} _b" )
341+ endif ()
334342
335343 set (ENVELOPE_YAML_FILE ${SUIT_ROOT_DIRECTORY}${target} .yaml)
336344 set (ENVELOPE_SUIT_FILE ${SUIT_ROOT_DIRECTORY}${target} .suit)
337345
338- suit_render_template(${INPUT_ENVELOPE_JINJA_FILE} ${ENVELOPE_YAML_FILE} "${TEMPLATE_ARGS} " )
346+ suit_render_template(${INPUT_ENVELOPE_JINJA_FILE} ${ENVELOPE_YAML_FILE} "${TEMPLATE_ARGS} " ${target} )
339347 suit_create_envelope(${ENVELOPE_YAML_FILE} ${ENVELOPE_SUIT_FILE} )
340348
341349 unset (sign_envelope)
@@ -455,7 +463,7 @@ function(suit_create_package)
455463 suit_set_absolute_or_relative_path(${INPUT_APP_RECOVERY_ENVELOPE_JINJA_FILE} ${app_config_dir} INPUT_APP_RECOVERY_ENVELOPE_JINJA_FILE)
456464 set (APP_RECOVERY_ENVELOPE_YAML_FILE ${SUIT_ROOT_DIRECTORY}${APP_RECOVERY_NAME} .yaml)
457465 set (APP_RECOVERY_ENVELOPE_SUIT_FILE ${SUIT_ROOT_DIRECTORY}${APP_RECOVERY_NAME} .suit)
458- suit_render_template(${INPUT_APP_RECOVERY_ENVELOPE_JINJA_FILE} ${APP_RECOVERY_ENVELOPE_YAML_FILE} "${TEMPLATE_ARGS} " )
466+ suit_render_template(${INPUT_APP_RECOVERY_ENVELOPE_JINJA_FILE} ${APP_RECOVERY_ENVELOPE_YAML_FILE} "${TEMPLATE_ARGS} " ${APP_RECOVERY_NAME} )
459467 suit_create_envelope(${APP_RECOVERY_ENVELOPE_YAML_FILE} ${APP_RECOVERY_ENVELOPE_SUIT_FILE} )
460468
461469 if (SB_CONFIG_SUIT_ENVELOPE_APP_RECOVERY_SIGN)
@@ -515,7 +523,7 @@ function(suit_create_package)
515523 suit_set_absolute_or_relative_path(${INPUT_ROOT_ENVELOPE_JINJA_FILE} ${app_config_dir} INPUT_ROOT_ENVELOPE_JINJA_FILE)
516524 set (ROOT_ENVELOPE_YAML_FILE ${SUIT_ROOT_DIRECTORY}${ROOT_NAME} .yaml)
517525 set (ROOT_ENVELOPE_SUIT_FILE ${SUIT_ROOT_DIRECTORY}${ROOT_NAME} .suit)
518- suit_render_template(${INPUT_ROOT_ENVELOPE_JINJA_FILE} ${ROOT_ENVELOPE_YAML_FILE} "${TEMPLATE_ARGS} " )
526+ suit_render_template(${INPUT_ROOT_ENVELOPE_JINJA_FILE} ${ROOT_ENVELOPE_YAML_FILE} "${TEMPLATE_ARGS} " ${ROOT_NAME} )
519527 suit_create_envelope(${ROOT_ENVELOPE_YAML_FILE} ${ROOT_ENVELOPE_SUIT_FILE} )
520528
521529 if (SB_CONFIG_SUIT_ENVELOPE_ROOT_SIGN)
@@ -610,6 +618,27 @@ endfunction()
610618# suit_setup_merge()
611619#
612620function (suit_setup_merge)
621+ foreach (image ${IMAGES} )
622+ unset (target )
623+ sysbuild_get(target IMAGE ${image} VAR CONFIG_SUIT_ENVELOPE_TARGET KCONFIG)
624+ if (NOT DEFINED target OR target STREQUAL "" )
625+ continue ()
626+ endif ()
627+
628+ sysbuild_get(IMAGE_BINARY_DIR IMAGE ${image} VAR APPLICATION_BINARY_DIR CACHE )
629+ sysbuild_get(IMAGE_BINARY_FILE IMAGE ${image} VAR CONFIG_KERNEL_BIN_NAME KCONFIG)
630+
631+ unset (main_image)
632+ get_property (main_image TARGET ${image} PROPERTY NCS_VARIANT_APPLICATION)
633+ if (DEFINED main_image)
634+ suit_add_merge_hex_file(
635+ FILES "${IMAGE_BINARY_DIR} /zephyr/${IMAGE_BINARY_FILE} .hex"
636+ DEPENDENCIES ${main_image}
637+ TARGET ${target}
638+ )
639+ endif ()
640+ endforeach ()
641+
613642 sysbuild_get(BINARY_DIR IMAGE ${DEFAULT_IMAGE} VAR APPLICATION_BINARY_DIR CACHE )
614643 foreach (image ${IMAGES} )
615644 set (ARTIFACTS_TO_MERGE)
@@ -620,9 +649,9 @@ function(suit_setup_merge)
620649 continue ()
621650 endif ()
622651
623- unset (IMAGE_TARGET_NAME )
624- sysbuild_get(IMAGE_TARGET_NAME IMAGE ${image} VAR CONFIG_SUIT_ENVELOPE_TARGET KCONFIG)
625- if (NOT DEFINED IMAGE_TARGET_NAME OR IMAGE_TARGET_NAME STREQUAL "" )
652+ unset (target )
653+ sysbuild_get(target IMAGE ${image} VAR CONFIG_SUIT_ENVELOPE_TARGET KCONFIG)
654+ if (NOT DEFINED target OR target STREQUAL "" )
626655 message (STATUS "DFU: Target name for ${image} is not defined. Skipping." )
627656 continue ()
628657 endif ()
@@ -633,16 +662,16 @@ function(suit_setup_merge)
633662
634663 set (OUTPUT_HEX_FILE "${IMAGE_BINARY_DIR} /zephyr/${CONFIG_SUIT_ENVELOPE_OUTPUT_ARTIFACT} " )
635664
636- list (APPEND ARTIFACTS_TO_MERGE ${BINARY_DIR} /zephyr/suit_installed_envelopes_${IMAGE_TARGET_NAME } _merged.hex)
665+ list (APPEND ARTIFACTS_TO_MERGE ${BINARY_DIR} /zephyr/suit_installed_envelopes_${target } _merged.hex)
637666 list (APPEND ARTIFACTS_TO_MERGE ${IMAGE_BINARY_DIR} /zephyr/${IMAGE_BINARY_FILE} .hex)
638667 list (APPEND ARTIFACTS_TO_MERGE ${IMAGE_BINARY_DIR} /zephyr/uicr.hex)
639668
640669 # Get a list of files (and their dependencies) which need merging into the uicr merged file
641670 # and add them at the end of the list, allowing for overwriting
642671 unset (merge_files)
643672 unset (merge_dependencies)
644- get_property (merge_files GLOBAL PROPERTY SUIT_MERGE_${IMAGE_TARGET_NAME } _FILE)
645- get_property (merge_dependencies GLOBAL PROPERTY SUIT_MERGE_${IMAGE_TARGET_NAME } _DEPENDENCIES)
673+ get_property (merge_files GLOBAL PROPERTY SUIT_MERGE_${target } _FILE)
674+ get_property (merge_dependencies GLOBAL PROPERTY SUIT_MERGE_${target } _DEPENDENCIES)
646675 if (NOT DEFINED merge_files)
647676 set (merge_files)
648677 set (merge_dependencies)
0 commit comments