Skip to content

Commit 0a5c298

Browse files
hakonfamnvlsianpu
authored andcommitted
[nrf toup] cmake: sign parent image regardless of build strategy
When a parent image selects MCUboot, it should be signed regardless of whether or not mcuboot is being built from source. Signed-off-by: Håkon Øye Amundsen <[email protected]>
1 parent 447495f commit 0a5c298

File tree

1 file changed

+73
-73
lines changed

1 file changed

+73
-73
lines changed

zephyr/CMakeLists.txt

Lines changed: 73 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -7,83 +7,83 @@ if(CONFIG_BOOTLOADER_MCUBOOT)
77

88
if (${require_build})
99
add_subdirectory(${MCUBOOT_BASE}/boot/zephyr ${CMAKE_BINARY_DIR}/mcuboot)
10+
endif() # ${require_build}
1011

11-
set(to_sign_hex ${KERNEL_HEX_NAME})
12+
set(to_sign_hex ${KERNEL_HEX_NAME})
1213

13-
# TODO: Assert that the bootloader and image use the same key.
14+
# TODO: Assert that the bootloader and image use the same key.
1415

15-
set(signed_image_hex ${PROJECT_BINARY_DIR}/signed.hex)
16-
set(signed_image_bin ${PROJECT_BINARY_DIR}/signed.bin)
17-
set(to_sign_bin ${PROJECT_BINARY_DIR}/to_sign.bin)
18-
set(update_hex ${PROJECT_BINARY_DIR}/update.hex)
19-
set(update_bin ${PROJECT_BINARY_DIR}/update.bin)
16+
set(signed_image_hex ${PROJECT_BINARY_DIR}/signed.hex)
17+
set(signed_image_bin ${PROJECT_BINARY_DIR}/signed.bin)
18+
set(to_sign_bin ${PROJECT_BINARY_DIR}/to_sign.bin)
19+
set(update_hex ${PROJECT_BINARY_DIR}/update.hex)
20+
set(update_bin ${PROJECT_BINARY_DIR}/update.bin)
2021

21-
get_property(app_binary_dir GLOBAL PROPERTY PROJECT_BINARY_DIR)
22-
set(merged_hex_file
23-
${app_binary_dir}/mcuboot_primary_app.hex)
24-
set(merged_hex_file_depends
25-
mcuboot_primary_app_hex)
26-
set(sign_merged
27-
$<TARGET_EXISTS:partition_manager>)
28-
set(to_sign_hex
29-
$<IF:${sign_merged},${merged_hex_file},${PROJECT_BINARY_DIR}/${KERNEL_HEX_NAME}>)
30-
set(sign_depends
31-
$<IF:${sign_merged},${merged_hex_file_depends},zephyr_final>)
32-
set(sign_cmd
33-
${PYTHON_EXECUTABLE}
34-
${MCUBOOT_BASE}/scripts/imgtool.py
35-
sign
36-
--key ${MCUBOOT_BASE}/${CONFIG_BOOT_SIGNATURE_KEY_FILE}
37-
--header-size $<TARGET_PROPERTY:partition_manager,MCUBOOT_HEADER_SIZE>
38-
--align ${DT_FLASH_WRITE_BLOCK_SIZE}
39-
--version 0.1 # TODO configurable?
40-
--slot-size $<TARGET_PROPERTY:partition_manager,MCUBOOT_SLOT_SIZE>
41-
--pad-header
42-
)
22+
get_property(app_binary_dir GLOBAL PROPERTY PROJECT_BINARY_DIR)
23+
set(merged_hex_file
24+
${app_binary_dir}/mcuboot_primary_app.hex)
25+
set(merged_hex_file_depends
26+
mcuboot_primary_app_hex)
27+
set(sign_merged
28+
$<TARGET_EXISTS:partition_manager>)
29+
set(to_sign_hex
30+
$<IF:${sign_merged},${merged_hex_file},${PROJECT_BINARY_DIR}/${KERNEL_HEX_NAME}>)
31+
set(sign_depends
32+
$<IF:${sign_merged},${merged_hex_file_depends},zephyr_final>)
33+
set(sign_cmd
34+
${PYTHON_EXECUTABLE}
35+
${MCUBOOT_BASE}/scripts/imgtool.py
36+
sign
37+
--key ${MCUBOOT_BASE}/${CONFIG_BOOT_SIGNATURE_KEY_FILE}
38+
--header-size $<TARGET_PROPERTY:partition_manager,MCUBOOT_HEADER_SIZE>
39+
--align ${DT_FLASH_WRITE_BLOCK_SIZE}
40+
--version 0.1 # TODO configurable?
41+
--slot-size $<TARGET_PROPERTY:partition_manager,MCUBOOT_SLOT_SIZE>
42+
--pad-header
43+
)
4344

44-
add_custom_command(
45-
OUTPUT
46-
${signed_image_hex}
47-
${update_hex}
48-
${update_bin}
49-
COMMAND
50-
${sign_cmd}
51-
${to_sign_hex}
52-
${signed_image_hex}
53-
COMMAND
54-
${CMAKE_OBJCOPY}
55-
--input-target=ihex
56-
--output-target=binary
57-
${to_sign_hex}
58-
${to_sign_bin}
59-
COMMAND
60-
${sign_cmd}
61-
${to_sign_bin}
62-
${update_bin}
63-
COMMAND
64-
${sign_cmd}
65-
--pad # This argument is needed for MCUboot to apply the test swap.
66-
${to_sign_hex}
67-
${update_hex}
68-
COMMAND
69-
${CMAKE_OBJCOPY}
70-
--input-target=ihex
71-
--output-target=ihex
72-
--change-address $<TARGET_PROPERTY:partition_manager,MCUBOOT_SLOT_SIZE>
73-
${update_hex}
74-
${PROJECT_BINARY_DIR}/moved_update.hex
75-
DEPENDS
76-
${sign_depends}
77-
)
78-
add_custom_target(mcuboot_sign_target DEPENDS ${signed_image_hex})
45+
add_custom_command(
46+
OUTPUT
47+
${signed_image_hex}
48+
${update_hex}
49+
${update_bin}
50+
COMMAND
51+
${sign_cmd}
52+
${to_sign_hex}
53+
${signed_image_hex}
54+
COMMAND
55+
${CMAKE_OBJCOPY}
56+
--input-target=ihex
57+
--output-target=binary
58+
${to_sign_hex}
59+
${to_sign_bin}
60+
COMMAND
61+
${sign_cmd}
62+
${to_sign_bin}
63+
${update_bin}
64+
COMMAND
65+
${sign_cmd}
66+
--pad # This argument is needed for MCUboot to apply the test swap.
67+
${to_sign_hex}
68+
${update_hex}
69+
COMMAND
70+
${CMAKE_OBJCOPY}
71+
--input-target=ihex
72+
--output-target=ihex
73+
--change-address $<TARGET_PROPERTY:partition_manager,MCUBOOT_SLOT_SIZE>
74+
${update_hex}
75+
${PROJECT_BINARY_DIR}/moved_update.hex
76+
DEPENDS
77+
${sign_depends}
78+
)
79+
add_custom_target(mcuboot_sign_target DEPENDS ${signed_image_hex})
7980

80-
set_property(GLOBAL PROPERTY
81-
mcuboot_primary_app_PM_HEX_FILE
82-
${signed_image_hex}
83-
)
84-
set_property(GLOBAL PROPERTY
85-
mcuboot_primary_app_PM_TARGET
86-
mcuboot_sign_target
87-
)
88-
endif() # ${require_build}
81+
set_property(GLOBAL PROPERTY
82+
mcuboot_primary_app_PM_HEX_FILE
83+
${signed_image_hex}
84+
)
85+
set_property(GLOBAL PROPERTY
86+
mcuboot_primary_app_PM_TARGET
87+
mcuboot_sign_target
88+
)
8989
endif()

0 commit comments

Comments
 (0)