blob: a39f4c4906e9ab104436bfde97df0e72e414bc44 [file] [log] [blame]
Jamie McCrae4c7942e2023-10-30 11:59:57 +00001function(mathup num align result)
2 math(EXPR out "(((${num}) + ((${align}) - 1)) & ~((${align}) - 1))")
3 set(${result} "${out}" PARENT_SCOPE)
4endfunction()
5
6function(${SYSBUILD_CURRENT_MODULE_NAME}_pre_image_cmake)
7 cmake_parse_arguments(POST_IMAGE_CMAKE "" "IMAGE" "IMAGES" ${ARGN})
8
9 if(NOT "${POST_IMAGE_CMAKE_IMAGE}" STREQUAL "mcuboot")
10 return()
11 endif()
12
13 set_property(
14 DIRECTORY APPEND PROPERTY
15 CMAKE_CONFIGURE_DEPENDS
16 ${CMAKE_BINARY_DIR}/mcuboot/CMakeCache.txt
17 ${CMAKE_BINARY_DIR}/mcuboot/zephyr/.config
18 )
19endfunction(${SYSBUILD_CURRENT_MODULE_NAME}_pre_image_cmake)
20
21function(${SYSBUILD_CURRENT_MODULE_NAME}_post_image_cmake)
22 cmake_parse_arguments(POST_IMAGE_CMAKE "" "IMAGE" "IMAGES" ${ARGN})
23
24 if(NOT "${POST_IMAGE_CMAKE_IMAGE}" STREQUAL "mcuboot")
25 return()
26 endif()
27
28 foreach(image ${IMAGES})
29 set(app_type)
30 get_property(app_type TARGET ${image} PROPERTY APP_TYPE)
31
32 if("${app_type}" STREQUAL "MAIN")
33 sysbuild_get(mcuboot_image_footer_size IMAGE mcuboot CACHE)
Jamie McCraea4eda302024-01-29 11:00:25 +000034 sysbuild_get(mcuboot_image_upgrade_footer_size IMAGE mcuboot CACHE)
Jamie McCrae4c7942e2023-10-30 11:59:57 +000035 math(EXPR mcuboot_image_footer_size "${mcuboot_image_footer_size}" OUTPUT_FORMAT HEXADECIMAL)
Jamie McCraea4eda302024-01-29 11:00:25 +000036 math(EXPR mcuboot_image_upgrade_footer_size "${mcuboot_image_upgrade_footer_size}" OUTPUT_FORMAT HEXADECIMAL)
Jamie McCrae4c7942e2023-10-30 11:59:57 +000037
38 set_property(TARGET ${image} APPEND_STRING PROPERTY CONFIG "CONFIG_ROM_END_OFFSET=${mcuboot_image_footer_size}\n")
Jamie McCraea4eda302024-01-29 11:00:25 +000039 set_property(TARGET ${image} APPEND_STRING PROPERTY CONFIG "CONFIG_MCUBOOT_UPDATE_FOOTER_SIZE=${mcuboot_image_upgrade_footer_size}\n")
Jamie McCrae4c7942e2023-10-30 11:59:57 +000040 return()
41 endif()
42 endforeach()
43endfunction(${SYSBUILD_CURRENT_MODULE_NAME}_post_image_cmake)