Migrating to sysbuild (NCS 2.8.0) results in CMake error

I'm in the process of migrating my project from NCS 2.6.1 to 2.8.0.

My project consists of a BLE application with MCUBoot as the only boot loader.

I've already updated my code so it compiles with HWMv1 and parent/child images under NCS 2.8.0.

I'm now trying to migrate the build system to sysbuild. Therefore I've made the following changes:

1. Moved child_image/mcuboot.conf to sysbuild/mcuboot.conf

2. Removed CONFIG_BOOTLOADER_MCUBOOT=y from the main prj.conf

3. Added a sysbuild.conf with the following contents:

SB_CONFIG_BOOTLOADER_MCUBOOT=y
SB_CONFG_BOOT_SIGNATURE_TYPE_ECDSA_P256=y
SB_CONFIG_PARTITION_MANAGER=y
SB_CONFIG_DFU_ZIP=y
SB_CONFG_DFU_ZIP_APP=y

When I now try to build the project I get the following error:

FATAL ERROR: command exited with status 1: <long command>

The only error that I can find is all the way at the top:

CMake Error at C:/Users/rpoel/Documents/SRC/T502534-FIRMWARE-Nordic-nRF528xx/external/nrf/sysbuild/CMakeLists.txt:117 (list):
  list GET given empty list
Call Stack (most recent call first):
  cmake/modules/sysbuild_extensions.cmake:583 (nrf_PRE_CMAKE)
  cmake/modules/sysbuild_extensions.cmake:583 (cmake_language)
  cmake/modules/sysbuild_images.cmake:16 (sysbuild_module_call)
  cmake/modules/sysbuild_default.cmake:20 (include)
  C:/Users/rpoel/Documents/SRC/T502534-FIRMWARE-Nordic-nRF528xx/external/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:75 (include)
  C:/Users/rpoel/Documents/SRC/T502534-FIRMWARE-Nordic-nRF528xx/external/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate)
  C:/Users/rpoel/Documents/SRC/T502534-FIRMWARE-Nordic-nRF528xx/external/zephyr/share/sysbuild-package/cmake/SysbuildConfig.cmake:8 (include)
  template/CMakeLists.txt:10 (find_package)

How can I resolve this error?

Thanks in advance.

Kind regards,

Remco Poelstra

Parents Reply Children
  • Great thanks!

    Now I look at it, I had already seen a previous version of this page, but was fooled by this paragraph:

    Out-of-tree boards

    The nRF Connect SDK provides full backwards compatibility for any existing out-of-tree boards.

    As such, the migration from hardware model v1 to hardware model v2 is optional for nRF Connect SDK users that also have out-of-tree boards. If you choose not to convert an out-of-tree board, you will receive a warning when building your application, informing you that the board definition is in a format compatible with hardware model v1.

    Sadly this does not appear to be true...

    Updating my OOT files to HWMv2 helps the build start, but still stuck on the actual DTS content migration...

  • I think the nRF53 is a much more complex IC than the nRF52, so you will probably need to do some manual migration steps.The guide gives some hints on this as well as pointing to commits that show how the example boards are migrated.

  • nRF53 is a much more complex IC than the nRF52

    For sure. The 2 cores make it hard for the build process! I know Zephyr aims to make it all nice and uniform, but for a embedded MCU system like the nrf5 I find its just WAY over the top, and very opaque when it decides it doesnt like something in the config... 

    The migration from 2.6 to 2.8, which includes both migration from HWMv1 to HWMv2 and change to sysbuild is not easy and very frustrating!

Related