From ee63dc2ef9e9ad4a76e341baf681fb2dfd7b4139 Mon Sep 17 00:00:00 2001 From: rgoliver Date: Mon, 21 Feb 2022 11:43:04 -0500 Subject: [PATCH] Fix NRF flashbundle (#15262) The flashbundle is using the zephyr.hex which doesn't boot if a bootloader is DFU is enabled, instead use merged.hex when it is generated. --- .../app/copy-flashbundle-firmware.cmake | 25 +++++++++++++++++++ config/nrfconnect/app/flashing.cmake | 2 +- 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 config/nrfconnect/app/copy-flashbundle-firmware.cmake diff --git a/config/nrfconnect/app/copy-flashbundle-firmware.cmake b/config/nrfconnect/app/copy-flashbundle-firmware.cmake new file mode 100644 index 00000000000000..93464f7aceb837 --- /dev/null +++ b/config/nrfconnect/app/copy-flashbundle-firmware.cmake @@ -0,0 +1,25 @@ +# +# Copyright (c) 2022 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# Copy the merged.hex file if it exists, otherwise copy zephyr.hex + +set(HEX_NAME merged.hex) + +if(EXISTS "zephyr/${HEX_NAME}") + configure_file("zephyr/${HEX_NAME}" "${FLASHBUNDLE_FIRMWARE}" COPYONLY) +else() + configure_file("zephyr/${KERNEL_HEX_NAME}" "${FLASHBUNDLE_FIRMWARE}" COPYONLY) +endif() diff --git a/config/nrfconnect/app/flashing.cmake b/config/nrfconnect/app/flashing.cmake index a1b42cc334b37a..b70e166ff28cfe 100644 --- a/config/nrfconnect/app/flashing.cmake +++ b/config/nrfconnect/app/flashing.cmake @@ -41,7 +41,7 @@ add_custom_command(OUTPUT "${FLASHBUNDLE_FLASHER_PLATFORM}" add_custom_command(OUTPUT "${FLASHBUNDLE_FIRMWARE}" DEPENDS zephyr/${KERNEL_HEX_NAME} - COMMAND ${CMAKE_COMMAND} ARGS -E copy "zephyr/${KERNEL_HEX_NAME}" "${FLASHBUNDLE_FIRMWARE}" + COMMAND ${CMAKE_COMMAND} ARGS -DFLASHBUNDLE_FIRMWARE=${FLASHBUNDLE_FIRMWARE} -DKERNEL_HEX_NAME=${KERNEL_HEX_NAME} -P "${CHIP_ROOT}/config/nrfconnect/app/copy-flashbundle-firmware.cmake" VERBATIM) add_custom_command(OUTPUT "${CMAKE_PROJECT_NAME}/${CMAKE_PROJECT_NAME}.flash.py"