55#
66
77function (bm_install_setup)
8- if (NOT DEFINED SB_CONFIG_BM_BOOTLOADER_NONE)
8+ if (NOT SB_CONFIG_BM_BOOTLOADER_NONE)
99 ExternalZephyrProject_Add(
1010 APPLICATION ${SB_CONFIG_BM_BOOTLOADER_IMAGE_NAME}
1111 SOURCE_DIR ${SB_CONFIG_BM_BOOTLOADER_IMAGE_PATH}
@@ -15,7 +15,14 @@ function(bm_install_setup)
1515 sysbuild_add_dependencies(CONFIGURE ${DEFAULT_IMAGE} ${SB_CONFIG_BM_BOOTLOADER_IMAGE_NAME} )
1616 sysbuild_add_dependencies(FLASH ${DEFAULT_IMAGE} ${SB_CONFIG_BM_BOOTLOADER_IMAGE_NAME} )
1717
18- if (NOT DEFINED SB_CONFIG_BM_FIRMWARE_LOADER_NONE)
18+ if (SB_CONFIG_BM_BOOT_BOOTCONF_LOCK_WRITES)
19+ ExternalZephyrProject_Add(
20+ APPLICATION bootconf
21+ SOURCE_DIR ${ZEPHYR_NRF_BM_MODULE_DIR} /cmake/bootconf
22+ )
23+ endif ()
24+
25+ if (NOT SB_CONFIG_BM_FIRMWARE_LOADER_NONE)
1926 ExternalZephyrProject_Add(
2027 APPLICATION ${SB_CONFIG_BM_FIRMWARE_LOADER_IMAGE_NAME}
2128 SOURCE_DIR ${SB_CONFIG_BM_FIRMWARE_LOADER_IMAGE_PATH}
@@ -118,7 +125,7 @@ endfunction()
118125function (${SYSBUILD_CURRENT_MODULE_NAME} _pre_cmake)
119126 cmake_parse_arguments (PRE_CMAKE "" "" "IMAGES" ${ARGN} )
120127
121- if (NOT DEFINED SB_CONFIG_NCS_BM)
128+ if (NOT SB_CONFIG_NCS_BM)
122129 # Disable bare-metal on all images
123130 foreach (image ${PRE_CMAKE_IMAGES} )
124131 set_config_int(${image} CONFIG_NCS_BM n)
@@ -127,10 +134,10 @@ function(${SYSBUILD_CURRENT_MODULE_NAME}_pre_cmake)
127134 return ()
128135 endif ()
129136
130- if (NOT DEFINED SB_CONFIG_BM_BOOTLOADER_NONE)
137+ if (NOT SB_CONFIG_BM_BOOTLOADER_NONE)
131138 set (bm_install_images 1)
132139
133- if (NOT DEFINED SB_CONFIG_BM_FIRMWARE_LOADER_NONE)
140+ if (NOT SB_CONFIG_BM_FIRMWARE_LOADER_NONE)
134141 # Firmware loader present
135142 set_target_properties (${SB_CONFIG_BM_FIRMWARE_LOADER_IMAGE_NAME} PROPERTIES
136143 IMAGE_CONF_SCRIPT ${ZEPHYR_NRF_BM_MODULE_DIR} /sysbuild/image_configurations/MAIN_image_default.cmake
@@ -192,7 +199,7 @@ function(${SYSBUILD_CURRENT_MODULE_NAME}_pre_cmake)
192199 set_config_int(${image} CONFIG_BM_METADATA_WRITE n)
193200 endif ()
194201
195- if (NOT DEFINED SB_CONFIG_BM_BOOTLOADER_NONE AND NOT image STREQUAL "mcuboot" )
202+ if (NOT SB_CONFIG_BM_BOOTLOADER_NONE AND NOT image STREQUAL "mcuboot" )
196203 if (SB_CONFIG_SOC_SERIES_NRF54LX)
197204 set_config_int(installer CONFIG_ROM_START_OFFSET 0x800)
198205 else ()
@@ -204,15 +211,15 @@ function(${SYSBUILD_CURRENT_MODULE_NAME}_pre_cmake)
204211 if (SB_CONFIG_SOFTDEVICE_NONE)
205212 set_config_bool(${DEFAULT_IMAGE} CONFIG_SOFTDEVICE n)
206213
207- if (NOT DEFINED SB_CONFIG_BM_BOOTLOADER_NONE AND NOT DEFINED SB_CONFIG_BM_FIRMWARE_LOADER_NONE)
214+ if (NOT SB_CONFIG_BM_BOOTLOADER_NONE AND NOT SB_CONFIG_BM_FIRMWARE_LOADER_NONE)
208215 set_config_bool(${SB_CONFIG_BM_FIRMWARE_LOADER_IMAGE_NAME} CONFIG_SOFTDEVICE n)
209216 endif ()
210217 else ()
211218 foreach (option SOFTDEVICE_S115 SOFTDEVICE_S145)
212219 if (SB_CONFIG_${option} )
213220 set_config_bool(${DEFAULT_IMAGE} CONFIG_${option} y)
214221
215- if (NOT DEFINED SB_CONFIG_BM_BOOTLOADER_NONE AND NOT DEFINED SB_CONFIG_BM_FIRMWARE_LOADER_NONE AND NOT DEFINED SB_CONFIG_BM_FIRMWARE_LOADER_UART_MCUMGR)
222+ if (NOT SB_CONFIG_BM_BOOTLOADER_NONE AND NOT SB_CONFIG_BM_FIRMWARE_LOADER_NONE AND NOT SB_CONFIG_BM_FIRMWARE_LOADER_UART_MCUMGR)
216223 set_config_bool(${SB_CONFIG_BM_FIRMWARE_LOADER_IMAGE_NAME} CONFIG_${option} y)
217224 endif ()
218225 break ()
@@ -222,38 +229,50 @@ function(${SYSBUILD_CURRENT_MODULE_NAME}_pre_cmake)
222229endfunction ()
223230
224231function (${SYSBUILD_CURRENT_MODULE_NAME} _post_cmake)
225- if (NOT DEFINED SB_CONFIG_NCS_BM)
232+ if (NOT SB_CONFIG_NCS_BM)
226233 return ()
227234 endif ()
228235
229236 cmake_parse_arguments (PRE_CMAKE "" "" "IMAGES" ${ARGN} )
230237
231- if (NOT DEFINED SB_CONFIG_BM_BOOTLOADER_NONE)
238+ if (NOT SB_CONFIG_BM_BOOTLOADER_NONE)
232239 set (check_targets mcuboot;${DEFAULT_IMAGE} )
233240 set (dependency_targets ${SB_CONFIG_SOFTDEVICE_FILE} )
234241 set (production_targets mcuboot;${DEFAULT_IMAGE} )
235242 set (production_files)
236243
237- if (NOT DEFINED SB_CONFIG_BM_FIRMWARE_LOADER_NONE)
244+ if (NOT SB_CONFIG_BM_FIRMWARE_LOADER_NONE)
238245 list (APPEND check_targets installer)
239246 list (APPEND check_targets ${SB_CONFIG_BM_FIRMWARE_LOADER_IMAGE_NAME} )
240247 list (APPEND production_targets ${SB_CONFIG_BM_FIRMWARE_LOADER_IMAGE_NAME} )
241248 endif ()
242249
250+ if (SB_CONFIG_BM_BOOT_BOOTCONF_LOCK_WRITES)
251+ list (APPEND check_targets bootconf)
252+ list (APPEND dependency_targets bootconf)
253+ list (APPEND production_targets bootconf)
254+ endif ()
255+
243256 foreach (image ${check_targets} )
244- sysbuild_get(${image} _kernel_bin_name IMAGE ${image} VAR CONFIG_KERNEL_BIN_NAME KCONFIG)
245257 sysbuild_get(${image} _binary_dir IMAGE ${image} VAR APPLICATION_BINARY_DIR CACHE )
246258
247259 list (APPEND dependency_targets
248260 ${image} _extra_byproducts
249261 ${${image} _binary_dir}/zephyr/.config
250- ${${image} _binary_dir}/zephyr/${${image} _kernel_bin_name}.bin
251262 )
252263
253- if ("${image} " STREQUAL "${SB_CONFIG_BM_FIRMWARE_LOADER_IMAGE_NAME} " )
264+ if (NOT "${image} " STREQUAL "bootconf" )
265+ sysbuild_get(${image} _kernel_bin_name IMAGE ${image} VAR CONFIG_KERNEL_BIN_NAME KCONFIG)
266+
254267 list (APPEND dependency_targets
255- ${${image} _binary_dir}/zephyr/${${image} _kernel_bin_name}.signed. bin
268+ ${${image} _binary_dir}/zephyr/${${image} _kernel_bin_name}.bin
256269 )
270+
271+ if ("${image} " STREQUAL "${SB_CONFIG_BM_FIRMWARE_LOADER_IMAGE_NAME} " )
272+ list (APPEND dependency_targets
273+ ${${image} _binary_dir}/zephyr/${${image} _kernel_bin_name}.signed.bin
274+ )
275+ endif ()
257276 endif ()
258277 endforeach ()
259278
@@ -280,15 +299,24 @@ function(${SYSBUILD_CURRENT_MODULE_NAME}_post_cmake)
280299 endif ()
281300
282301 foreach (image ${production_targets} )
283- sysbuild_get(${image} _kernel_bin_name IMAGE ${image} VAR CONFIG_KERNEL_BIN_NAME KCONFIG)
284302 sysbuild_get(${image} _binary_dir IMAGE ${image} VAR APPLICATION_BINARY_DIR CACHE )
285303
286- if ("${image} " STREQUAL "mcuboot " )
304+ if ("${image} " STREQUAL "bootconf " )
287305 list (APPEND production_files
288- ${${image} _binary_dir}/zephyr/${${image} _kernel_bin_name}_signed_softdevice_flash_metadata.hex)
306+ ${${image} _binary_dir}/bootconf.hex
307+ )
289308 else ()
290- list (APPEND production_files
291- ${${image} _binary_dir}/zephyr/${${image} _kernel_bin_name}.signed.hex)
309+ sysbuild_get(${image} _kernel_bin_name IMAGE ${image} VAR CONFIG_KERNEL_BIN_NAME KCONFIG)
310+
311+ if ("${image} " STREQUAL "mcuboot" )
312+ list (APPEND production_files
313+ ${${image} _binary_dir}/zephyr/${${image} _kernel_bin_name}_signed_softdevice_flash_metadata.hex
314+ )
315+ else ()
316+ list (APPEND production_files
317+ ${${image} _binary_dir}/zephyr/${${image} _kernel_bin_name}.signed.hex
318+ )
319+ endif ()
292320 endif ()
293321 endforeach ()
294322
0 commit comments