From 029588fd2cad9b5ff35d49657ec2fee06f869085 Mon Sep 17 00:00:00 2001 From: Maximilian Deubel Date: Fri, 20 Sep 2024 13:19:47 +0200 Subject: [PATCH 1/3] manifest: update west.yml to include nrfutil-dfu Include the Zephyr patch for nrfutil-dfu runner. Signed-off-by: Maximilian Deubel --- west.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/west.yml b/west.yml index bc30171abc76..49e5c7cdb0b1 100644 --- a/west.yml +++ b/west.yml @@ -72,7 +72,7 @@ manifest: # https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/zephyr/guides/modules.html - name: zephyr repo-path: sdk-zephyr - revision: 2fb756ef5c417b0f3348e18c1bffb245e3d10963 + revision: refs/pull/2036/head import: # In addition to the zephyr repository itself, NCS also # imports the contents of zephyr/west.yml at the above From b7a68a610b2a847206dcd3981debb9f6913fa049 Mon Sep 17 00:00:00 2001 From: Maximilian Deubel Date: Fri, 20 Sep 2024 13:09:45 +0200 Subject: [PATCH 2/3] sysbuild: add support for ZIP files in runners This patch adds ZIP file support for runners in sysbuild. Signed-off-by: Maximilian Deubel --- sysbuild/CMakeLists.txt | 6 ++++++ sysbuild/Kconfig.sysbuild | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/sysbuild/CMakeLists.txt b/sysbuild/CMakeLists.txt index dcbf74ca446f..3069fab6a559 100644 --- a/sysbuild/CMakeLists.txt +++ b/sysbuild/CMakeLists.txt @@ -96,6 +96,12 @@ function(${SYSBUILD_CURRENT_MODULE_NAME}_pre_cmake) else() set_config_bool(${image} CONFIG_BUILD_OUTPUT_HEX n) endif() + + if(SB_CONFIG_BUILD_OUTPUT_ZIP) + set_config_bool(${image} CONFIG_BUILD_OUTPUT_ZIP y) + else() + set_config_bool(${image} CONFIG_BUILD_OUTPUT_ZIP n) + endif() endforeach() if(SB_CONFIG_PARTITION_MANAGER AND SB_CONFIG_BOOTLOADER_MCUBOOT) diff --git a/sysbuild/Kconfig.sysbuild b/sysbuild/Kconfig.sysbuild index d724d17a3ab7..a7e7bdb4fa5c 100644 --- a/sysbuild/Kconfig.sysbuild +++ b/sysbuild/Kconfig.sysbuild @@ -59,6 +59,11 @@ config BUILD_OUTPUT_HEX The name of this file can be customized with CONFIG_KERNEL_BIN_NAME. This will be applied to all target images. +config BUILD_OUTPUT_ZIP + bool "Build a binary in ZIP format" + help + Build a ZIP file with a manifest and DFU binaries. + # TODO: NCSDK-28330 # This check will fail for variants BOARD_NS_QUALIFIER_CHECK := $(substring,$(BOARD_QUALIFIERS),-3) From b6ae9c293a418891a77d58586102ef60318db948 Mon Sep 17 00:00:00 2001 From: Maximilian Deubel Date: Fri, 20 Sep 2024 13:12:38 +0200 Subject: [PATCH 3/3] boards: thingy91x: use DFU runner Set the new DFU runner as default for flashing and pyocd as default for debugging for Thingy:91x. Signed-off-by: Maximilian Deubel --- boards/nordic/thingy91x/Kconfig.sysbuild | 6 ++++++ boards/nordic/thingy91x/board.cmake | 25 +++++++++++++++--------- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/boards/nordic/thingy91x/Kconfig.sysbuild b/boards/nordic/thingy91x/Kconfig.sysbuild index d1bf39ba31aa..3944bd9cb985 100644 --- a/boards/nordic/thingy91x/Kconfig.sysbuild +++ b/boards/nordic/thingy91x/Kconfig.sysbuild @@ -46,6 +46,9 @@ config NETCORE_APP_UPDATE config NRF_DEFAULT_EMPTY default y +config BUILD_OUTPUT_ZIP + default y + endif # BOARD_THINGY91X_NRF5340_CPUAPP || BOARD_THINGY91X_NRF5340_CPUAPP_NS if BOARD_THINGY91X_NRF5340_CPUAPP || BOARD_THINGY91X_NRF5340_CPUAPP_NS || BOARD_THINGY91X_NRF5340_CPUNET @@ -69,6 +72,9 @@ config PM_OVERRIDE_EXTERNAL_DRIVER_CHECK config SECURE_BOOT_SIGNING_KEY_FILE default "$(ZEPHYR_NRF_MODULE_DIR)/boards/nordic/thingy91x/nsib_signing_key.pem" +config BUILD_OUTPUT_ZIP + default y + endif # BOARD_THINGY91X_NRF9151 || BOARD_THINGY91X_NRF9151_NS if THINGY91X_STATIC_PARTITIONS_NRF53_EXTERNAL_FLASH diff --git a/boards/nordic/thingy91x/board.cmake b/boards/nordic/thingy91x/board.cmake index 518feb3571cb..68c84edeb9b0 100644 --- a/boards/nordic/thingy91x/board.cmake +++ b/boards/nordic/thingy91x/board.cmake @@ -2,19 +2,26 @@ # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause if(CONFIG_BOARD_THINGY91X_NRF9151 OR CONFIG_BOARD_THINGY91X_NRF9151_NS) - board_runner_args(nrfjprog) - board_runner_args(nrfutil "--nrf-family=NRF91") - board_runner_args(jlink "--device=nRF9160_xxAA" "--speed=4000") +board_runner_args(nrfjprog) +board_runner_args(nrfutil "--nrf-family=NRF91") +board_runner_args(jlink "--device=nRF9160_xxAA" "--speed=4000") +board_runner_args(pyocd "--target=nrf91" "--frequency=4000000") elseif(BOARD_THINGY91X_NRF5340_CPUAPP OR BOARD_THINGY91X_NRF5340_CPUAPP_NS) - board_runner_args(nrfjprog) - board_runner_args(nrfutil "--nrf-family=NRF53") - board_runner_args(jlink "--device=nrf5340_xxaa_app" "--speed=4000") +board_runner_args(nrfjprog) +board_runner_args(nrfutil "--nrf-family=NRF53") +board_runner_args(jlink "--device=nrf5340_xxaa_app" "--speed=4000") +board_runner_args(pyocd "--target=nrf5340_xxaa" "--frequency=4000000") elseif(BOARD_THINGY91X_NRF5340_CPUNET) - board_runner_args(nrfjprog) - board_runner_args(nrfutil "--nrf-family=NRF53") - board_runner_args(jlink "--device=nrf5340_xxaa_net" "--speed=4000") +board_runner_args(nrfjprog) +board_runner_args(nrfutil "--nrf-family=NRF53") +board_runner_args(jlink "--device=nrf5340_xxaa_net" "--speed=4000") +board_runner_args(pyocd "--target=nrf5340_xxaa" "--frequency=4000000") endif() +set_property(TARGET runners_yaml_props_target PROPERTY zip_file "${PROJECT_BINARY_DIR}/../../dfu_application.zip") + +include(${ZEPHYR_BASE}/boards/common/nrfutil_dfu.board.cmake) +include(${ZEPHYR_BASE}/boards/common/pyocd.board.cmake) include(${ZEPHYR_BASE}/boards/common/nrfutil.board.cmake) include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake) include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)