-
Notifications
You must be signed in to change notification settings - Fork 6.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
mcuboot: force .hex and .bin same content #56219
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -16,6 +16,19 @@ function(zephyr_runner_file type path) | |||||||||||||||||||||||||||||||||||||||||||||||
set_target_properties(runners_yaml_props_target PROPERTIES "${type}_file" "${path}") | ||||||||||||||||||||||||||||||||||||||||||||||||
endfunction() | ||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||
function(zephyr_mcuboot_hex_bin_convert hex_file bin_file) | ||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is not a transferable way of doing this and requires use of this specific file to achieve this (and this file can now be completely replaced out of tree), would rather something generic is added to the cmake code that can convert any hex to bin (or just use objcopy) and can be called as is needed There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
@nordicjm not sure exactly what you mean by this ? Line 1175 in ccd88a4
if you are requesting a common CMake function to the this, but how the current function is implemented is acceptable, then I have mis-read your comment, and I apologize the noise ?
not all toolchains support zephyr/cmake/bintools/gnu/target_bintools.cmake Lines 23 to 25 in ccd88a4
zephyr/cmake/bintools/arcmwdt/target_bintools.cmake Lines 12 to 15 in ccd88a4
|
||||||||||||||||||||||||||||||||||||||||||||||||
set_property(GLOBAL APPEND PROPERTY extra_post_build_commands COMMAND | ||||||||||||||||||||||||||||||||||||||||||||||||
$<TARGET_PROPERTY:bintools,elfconvert_command> | ||||||||||||||||||||||||||||||||||||||||||||||||
$<TARGET_PROPERTY:bintools,elfconvert_flag> | ||||||||||||||||||||||||||||||||||||||||||||||||
${GAP_FILL} | ||||||||||||||||||||||||||||||||||||||||||||||||
$<TARGET_PROPERTY:bintools,elfconvert_flag_intarget>ihex | ||||||||||||||||||||||||||||||||||||||||||||||||
$<TARGET_PROPERTY:bintools,elfconvert_flag_outtarget>binary | ||||||||||||||||||||||||||||||||||||||||||||||||
$<TARGET_PROPERTY:bintools,elfconvert_flag_infile>${hex_file} | ||||||||||||||||||||||||||||||||||||||||||||||||
$<TARGET_PROPERTY:bintools,elfconvert_flag_outfile>${bin_file} | ||||||||||||||||||||||||||||||||||||||||||||||||
$<TARGET_PROPERTY:bintools,elfconvert_flag_final> | ||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||
endfunction() | ||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||
function(zephyr_mcuboot_tasks) | ||||||||||||||||||||||||||||||||||||||||||||||||
set(keyfile "${CONFIG_MCUBOOT_SIGNATURE_KEY_FILE}") | ||||||||||||||||||||||||||||||||||||||||||||||||
set(keyfile_enc "${CONFIG_MCUBOOT_ENCRYPTION_KEY_FILE}") | ||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -158,6 +171,29 @@ function(zephyr_mcuboot_tasks) | |||||||||||||||||||||||||||||||||||||||||||||||
${west_sign} ${encrypted_args} ${imgtool_args} --encrypt "${keyfile_enc}") | ||||||||||||||||||||||||||||||||||||||||||||||||
endif() | ||||||||||||||||||||||||||||||||||||||||||||||||
set_property(GLOBAL APPEND PROPERTY extra_post_build_byproducts ${byproducts}) | ||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||
# Regenerate the binary files from the hex files so that the content of both is | ||||||||||||||||||||||||||||||||||||||||||||||||
# the same. Otherwise the .hex and .bin will have different signatures due to the | ||||||||||||||||||||||||||||||||||||||||||||||||
# independent calls to the signing tool. This cannot be done as part of 'west sign' | ||||||||||||||||||||||||||||||||||||||||||||||||
# as we cannot evaluate the bintools arguments at configuration time. | ||||||||||||||||||||||||||||||||||||||||||||||||
if (CONFIG_MCUBOOT_GENERATED_HEX_BIN_SAME_CONTENT) | ||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. instead of introducing yet another Kconfig setting, then why no swap the code here: Line 110 in ccd88a4
and here: Line 127 in ccd88a4
so that order becomes:
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I went with this approach as zephyr/scripts/west_commands/sign.py Lines 155 to 175 in fd94ca7
I didn't go with There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Right, I had forgotten about the pure
and that's a fair point. |
||||||||||||||||||||||||||||||||||||||||||||||||
zephyr_mcuboot_hex_bin_convert( | ||||||||||||||||||||||||||||||||||||||||||||||||
${output}.signed.hex | ||||||||||||||||||||||||||||||||||||||||||||||||
${output}.signed.bin | ||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||
if(confirmed_args) | ||||||||||||||||||||||||||||||||||||||||||||||||
zephyr_mcuboot_hex_bin_convert( | ||||||||||||||||||||||||||||||||||||||||||||||||
${output}.signed.confirmed.hex | ||||||||||||||||||||||||||||||||||||||||||||||||
${output}.signed.confirmed.bin | ||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||
endif() | ||||||||||||||||||||||||||||||||||||||||||||||||
if(encrypted_args) | ||||||||||||||||||||||||||||||||||||||||||||||||
zephyr_mcuboot_hex_bin_convert( | ||||||||||||||||||||||||||||||||||||||||||||||||
${output}.signed.encrypted.hex | ||||||||||||||||||||||||||||||||||||||||||||||||
${output}.signed.encrypted.bin | ||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||
endif() | ||||||||||||||||||||||||||||||||||||||||||||||||
endif() | ||||||||||||||||||||||||||||||||||||||||||||||||
endfunction() | ||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||
zephyr_mcuboot_tasks() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Quite honestly I don't think the majority of people care about this, some yes but the minority.