I am using NCS v2.9.1 and trying to enable a bootloader chain with NSIB and MCUboot. The regular setup works fine, however if I try to enable the minimal configuration, I get a build errors (for NSIB) and CMake error (for MCUboot). I am using the instructions on this page of the docs.
The issue can be reproduced using the hello_world sample and using the following command:
west build -b nrf52840dk/nrf52840 zephyr/samples/hello_world -- \ -DSB_CONFIG_SECURE_BOOT_APPCORE=y \ -Db0_FILE_SUFFIX=minimal
This results in the following error:
FAILED: zephyr/zephyr_pre0.elf zephyr/zephyr_pre0.map /opt/nordic/ncs/v2.9.1/build/b0/zephyr/zephyr_pre0.map : && ccache /opt/nordic/ncs/toolchains/b8efef2ad5/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc -Os -DNDEBUG -gdwarf-4 -gdwarf-4 zephyr/CMakeFiles/zephyr_pre0.dir/misc/empty_file.c.obj -o zephyr/zephyr_pre0.elf zephyr/CMakeFiles/offsets.dir/./arch/arm/core/offsets/offsets.c.obj -T zephyr/linker_zephyr_pre0.cmd -Wl,-Map=/opt/nordic/ncs/v2.9.1/build/b0/zephyr/zephyr_pre0.map -Wl,--whole-archive app/libapp.a zephyr/libzephyr.a zephyr/arch/common/libarch__common.a zephyr/arch/arch/arm/core/libarch__arm__core.a zephyr/arch/arch/arm/core/cortex_m/libarch__arm__core__cortex_m.a zephyr/lib/libc/picolibc/liblib__libc__picolibc.a zephyr/lib/libc/common/liblib__libc__common.a zephyr/soc/soc/nrf52840/libsoc__nordic.a modules/nrf/lib/fprotect/lib..__nrf__lib__fprotect.a modules/nrf/subsys/bootloader/bl_boot/lib..__nrf__subsys__bootloader__bl_boot.a modules/nrf/subsys/bootloader/bl_crypto/lib..__nrf__subsys__bootloader__bl_crypto.a modules/nrf/subsys/bootloader/bl_validation/lib..__nrf__subsys__bootloader__bl_validation.a modules/nrf/subsys/bootloader/bl_storage/lib..__nrf__subsys__bootloader__bl_storage.a modules/nrf/subsys/fw_info/lib..__nrf__subsys__fw_info.a modules/nrf/drivers/hw_cc3xx/lib..__nrf__drivers__hw_cc3xx.a modules/hal_nordic/nrfx/libmodules__hal_nordic__nrfx.a -Wl,--no-whole-archive zephyr/kernel/libkernel.a -L/opt/nordic/ncs/v2.9.1/build/b0/zephyr zephyr/arch/common/libisr_tables.a /opt/nordic/ncs/v2.9.1/nrfxlib/crypto/nrf_oberon/lib/cortex-m4/hard-float/liboberon_3.0.15.a /opt/nordic/ncs/v2.9.1/nrfxlib/crypto/nrf_cc310_bl/lib/cortex-m4/hard-float/no-interrupts/libnrf_cc310_bl_0.9.12.a -mcpu=cortex-m4 -mthumb -mabi=aapcs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mfp16-format=ieee -mtp=soft -fuse-ld=bfd -Wl,--gc-sections -Wl,--build-id=none -Wl,--sort-common=descending -Wl,--sort-section=alignment -Wl,-u,_OffsetAbsSyms -Wl,-u,_ConfigAbsSyms -nostdlib -static -Wl,-X -Wl,-N -Wl,--orphan-handling=warn -Wl,-no-pie -specs=picolibc.specs -DPICOLIBC_DOUBLE_PRINTF_SCANF /opt/nordic/ncs/v2.9.1/nrfxlib/crypto/nrf_cc310_platform/lib/cortex-m4/hard-float/no-interrupts/libnrf_cc310_platform_0.9.19.a -L"/opt/nordic/ncs/toolchains/b8efef2ad5/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/thumb/v7e-m+fp/hard" -lc -lgcc && cd /opt/nordic/ncs/v2.9.1/build/b0/zephyr && /opt/homebrew/Cellar/cmake/3.29.0/bin/cmake -E true /opt/nordic/ncs/toolchains/b8efef2ad5/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.bfd: zephyr/zephyr_pre0.elf section `text' will not fit in region `FLASH' /opt/nordic/ncs/toolchains/b8efef2ad5/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.bfd: region `FLASH' overflowed by 5032 bytes collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed. [24/38] cd /opt/nordic/ncs/v2.9.1/build/_sysbuild && /opt/homebrew/Cellar/cmake/3.29.0/bin/cmake -E true FAILED: modules/nrf/b0-prefix/src/b0-stamp/b0-build /opt/nordic/ncs/v2.9.1/build/modules/nrf/b0-prefix/src/b0-stamp/b0-build cd /opt/nordic/ncs/v2.9.1/build/b0 && /opt/homebrew/Cellar/cmake/3.29.0/bin/cmake --build . ninja: build stopped: subcommand failed. FATAL ERROR: command exited with status 1: /opt/homebrew/bin/cmake --build /opt/nordic/ncs/v2.9.1/build
When trying the minimal MCUboot configuration I get a CMake error:
Parsing /opt/nordic/ncs/v2.9.1/bootloader/mcuboot/boot/zephyr/Kconfig Loaded configuration '/opt/nordic/ncs/v2.9.1/zephyr/boards/nordic/nrf52840dk/nrf52840dk_nrf52840_defconfig' Merged configuration '/opt/nordic/ncs/v2.9.1/bootloader/mcuboot/boot/zephyr/prj_minimal.conf' Merged configuration '/opt/nordic/ncs/v2.9.1/bootloader/mcuboot/boot/zephyr/boards/nrf52840dk_nrf52840.conf' Merged configuration '/opt/nordic/ncs/v2.9.1/build/mcuboot/zephyr/.config.sysbuild' error: Aborting due to Kconfig warnings CMake Error at /opt/nordic/ncs/v2.9.1/zephyr/cmake/modules/kconfig.cmake:396 (message): command failed with return code: 1 Call Stack (most recent call first): /opt/nordic/ncs/v2.9.1/nrf/cmake/modules/kconfig.cmake:29 (include) /opt/nordic/ncs/v2.9.1/zephyr/cmake/modules/zephyr_default.cmake:133 (include) /opt/nordic/ncs/v2.9.1/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:66 (include) /opt/nordic/ncs/v2.9.1/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate) CMakeLists.txt:12 (find_package) -- Configuring incomplete, errors occurred! CMake Error at cmake/modules/sysbuild_extensions.cmake:514 (message): CMake configure failed for Zephyr project: mcuboot Location: /opt/nordic/ncs/v2.9.1/bootloader/mcuboot/boot/zephyr Call Stack (most recent call first): cmake/modules/sysbuild_images.cmake:20 (ExternalZephyrProject_Cmake) cmake/modules/sysbuild_default.cmake:20 (include) /opt/nordic/ncs/v2.9.1/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:75 (include) /opt/nordic/ncs/v2.9.1/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate) /opt/nordic/ncs/v2.9.1/zephyr/share/sysbuild-package/cmake/SysbuildConfig.cmake:8 (include) template/CMakeLists.txt:10 (find_package) -- Configuring incomplete, errors occurred!
Do you have any pointers what is going wrong here?