Hi,
I'm currently working on adding DFU over UART to my firmware running on an nRF52dk/nrf52832.
To have a minimum viable example, I'm trying the DFU over UART exercise sadly, step 1.2 breaks the build.
# STEP 1.2 - Configure bootloader to use only one slot. SB_CONFIG_MCUBOOT_MODE_SINGLE_APP=y
I'm getting the following output which says that PM_MCUBOOT_SECONDARY_ID is undefined:
[9/20] Performing build step for 'l9_e1_sol' [0/1] Re-running CMake... Loading Zephyr default modules (Zephyr base (cached)). -- Application: /home/alex/Code/ncs-inter/v2.9.0-v2.7.0/l9/l9_e1_sol -- CMake version: 3.21.0 -- Using NCS Toolchain 2.8.20241106.790718371940 for building. (/home/alex/ncs/toolchains/b81a7cd864/cmake) -- Cache files will be written to: /home/alex/.cache/zephyr -- Zephyr version: 3.7.99 (/home/alex/ncs/v2.8.0/zephyr) -- Found west (found suitable version "1.2.0", minimum required is "0.14.0") -- Board: nrf52dk, qualifiers: nrf52832 -- Found host-tools: zephyr 0.16.8 (/home/alex/ncs/toolchains/b81a7cd864/opt/zephyr-sdk) -- Found toolchain: zephyr 0.16.8 (/home/alex/ncs/toolchains/b81a7cd864/opt/zephyr-sdk) -- Found BOARD.dts: /home/alex/ncs/v2.8.0/zephyr/boards/nordic/nrf52dk/nrf52dk_nrf52832.dts -- Generated zephyr.dts: /home/alex/Code/ncs-inter/v2.9.0-v2.7.0/l9/l9_e1_sol/build/l9_e1_sol/zephyr/zephyr.dts -- Generated devicetree_generated.h: /home/alex/Code/ncs-inter/v2.9.0-v2.7.0/l9/l9_e1_sol/build/l9_e1_sol/zephyr/include/generated/zephyr/devicetree_generated.h -- Including generated dts.cmake file: /home/alex/Code/ncs-inter/v2.9.0-v2.7.0/l9/l9_e1_sol/build/l9_e1_sol/zephyr/dts.cmake Parsing /home/alex/ncs/v2.8.0/zephyr/Kconfig Loaded configuration '/home/alex/Code/ncs-inter/v2.9.0-v2.7.0/l9/l9_e1_sol/build/l9_e1_sol/zephyr/.config' Merged configuration '/home/alex/Code/ncs-inter/v2.9.0-v2.7.0/l9/l9_e1_sol/build/l9_e1_sol/zephyr/.config.sysbuild' No change to configuration in '/home/alex/Code/ncs-inter/v2.9.0-v2.7.0/l9/l9_e1_sol/build/l9_e1_sol/zephyr/.config' No change to Kconfig header in '/home/alex/Code/ncs-inter/v2.9.0-v2.7.0/l9/l9_e1_sol/build/l9_e1_sol/zephyr/include/generated/zephyr/autoconf.h' -- Using ccache: /home/alex/ncs/toolchains/b81a7cd864/usr/bin/ccache -- Including signing script: /home/alex/ncs/v2.8.0/nrf/cmake/sysbuild/image_signing.cmake -- Configuring done -- Generating done -- Build files have been written to: /home/alex/Code/ncs-inter/v2.9.0-v2.7.0/l9/l9_e1_sol/build/l9_e1_sol [1/184] Preparing syscall dependency handling [7/184] Generating include/generated/zephyr/version.h -- Zephyr version: 3.7.99 (/home/alex/ncs/v2.8.0/zephyr), build: v3.7.99-ncs1 [143/184] Building C object modules/mcuboot/boot/bootutil/zephyr/CMakeFiles.../alex/ncs/v2.8.0/bootloader/mcuboot/boot/bootutil/src/bootutil_public.c.obj FAILED: modules/mcuboot/boot/bootutil/zephyr/CMakeFiles/mcuboot_util.dir/home/alex/ncs/v2.8.0/bootloader/mcuboot/boot/bootutil/src/bootutil_public.c.obj ccache /home/alex/ncs/toolchains/b81a7cd864/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc -DKERNEL -DK_HEAP_MEM_POOL_SIZE=0 -DNCS_APPLICATION_BOOT_BANNER_GIT_REPO -DNRF52832_XXAA -DPICOLIBC_LONG_LONG_PRINTF_SCANF -DUSE_PARTITION_MANAGER=1 -D__LINUX_ERRNO_EXTENSIONS__ -D__PROGRAM_START -D__ZEPHYR__=1 -I/home/alex/Code/ncs-inter/v2.9.0-v2.7.0/l9/l9_e1_sol/build/l9_e1_sol/zephyr/include/generated/zephyr -I/home/alex/ncs/v2.8.0/zephyr/include -I/home/alex/Code/ncs-inter/v2.9.0-v2.7.0/l9/l9_e1_sol/build/l9_e1_sol/zephyr/include/generated -I/home/alex/ncs/v2.8.0/zephyr/soc/nordic -I/home/alex/ncs/v2.8.0/zephyr/soc/nordic/nrf52/. -I/home/alex/ncs/v2.8.0/zephyr/soc/nordic/common/. -I/home/alex/ncs/v2.8.0/zephyr/subsys/mgmt/mcumgr/util/include -I/home/alex/ncs/v2.8.0/zephyr/subsys/mgmt/mcumgr/transport/include -I/home/alex/ncs/v2.8.0/nrf/include -I/home/alex/ncs/v2.8.0/nrf/tests/include -I/home/alex/ncs/v2.8.0/modules/hal/cmsis/CMSIS/Core/Include -I/home/alex/ncs/v2.8.0/zephyr/modules/cmsis/. -I/home/alex/ncs/v2.8.0/modules/hal/nordic/nrfx -I/home/alex/ncs/v2.8.0/modules/hal/nordic/nrfx/drivers/include -I/home/alex/ncs/v2.8.0/modules/hal/nordic/nrfx/mdk -I/home/alex/ncs/v2.8.0/zephyr/modules/hal_nordic/nrfx/. -I/home/alex/ncs/v2.8.0/modules/debug/segger/SEGGER -I/home/alex/ncs/v2.8.0/modules/debug/segger/Config -I/home/alex/ncs/v2.8.0/modules/lib/zcbor/include -I/home/alex/ncs/v2.8.0/bootloader/mcuboot/boot/bootutil/zephyr/.. -I/home/alex/ncs/v2.8.0/bootloader/mcuboot/boot/bootutil/zephyr/../include -I/home/alex/ncs/v2.8.0/bootloader/mcuboot/boot/bootutil/zephyr/../../zephyr/include -isystem /home/alex/ncs/v2.8.0/zephyr/lib/libc/common/include -Os -DNDEBUG -fno-strict-aliasing -Os -imacros /home/alex/Code/ncs-inter/v2.9.0-v2.7.0/l9/l9_e1_sol/build/l9_e1_sol/zephyr/include/generated/zephyr/autoconf.h -fno-printf-return-value -fno-common -g -gdwarf-4 -fdiagnostics-color=always -mcpu=cortex-m4 -mthumb -mabi=aapcs -mfp16-format=ieee -mtp=soft --sysroot=/home/alex/ncs/toolchains/b81a7cd864/opt/zephyr-sdk/arm-zephyr-eabi/arm-zephyr-eabi -imacros /home/alex/ncs/v2.8.0/zephyr/include/zephyr/toolchain/zephyr_stdint.h -Wall -Wformat -Wformat-security -Wno-format-zero-length -Wdouble-promotion -Wno-pointer-sign -Wpointer-arith -Wexpansion-to-defined -Wno-unused-but-set-variable -Werror=implicit-int -fno-pic -fno-pie -fno-asynchronous-unwind-tables -ftls-model=local-exec -fno-reorder-functions --param=min-pagesize=0 -fno-defer-pop -fmacro-prefix-map=/home/alex/Code/ncs-inter/v2.9.0-v2.7.0/l9/l9_e1_sol=CMAKE_SOURCE_DIR -fmacro-prefix-map=/home/alex/ncs/v2.8.0/zephyr=ZEPHYR_BASE -fmacro-prefix-map=/home/alex/ncs/v2.8.0=WEST_TOPDIR -ffunction-sections -fdata-sections --specs=picolibc.specs -std=c99 -MD -MT modules/mcuboot/boot/bootutil/zephyr/CMakeFiles/mcuboot_util.dir/home/alex/ncs/v2.8.0/bootloader/mcuboot/boot/bootutil/src/bootutil_public.c.obj -MF modules/mcuboot/boot/bootutil/zephyr/CMakeFiles/mcuboot_util.dir/home/alex/ncs/v2.8.0/bootloader/mcuboot/boot/bootutil/src/bootutil_public.c.obj.d -o modules/mcuboot/boot/bootutil/zephyr/CMakeFiles/mcuboot_util.dir/home/alex/ncs/v2.8.0/bootloader/mcuboot/boot/bootutil/src/bootutil_public.c.obj -c /home/alex/ncs/v2.8.0/bootloader/mcuboot/boot/bootutil/src/bootutil_public.c In file included from /home/alex/ncs/v2.8.0/bootloader/mcuboot/boot/bootutil/zephyr/../../zephyr/include/sysflash/sysflash.h:12, from /home/alex/ncs/v2.8.0/bootloader/mcuboot/boot/bootutil/src/bootutil_public.c:43: /home/alex/ncs/v2.8.0/bootloader/mcuboot/boot/bootutil/zephyr/../../zephyr/include/sysflash/pm_sysflash.h: In function '__flash_area_ids_for_slot': /home/alex/ncs/v2.8.0/bootloader/mcuboot/boot/bootutil/zephyr/../../zephyr/include/sysflash/pm_sysflash.h:19:60: error: 'PM_MCUBOOT_SECONDARY_ID' undeclared (first use in this function); did you mean 'PM_MCUBOOT_PRIMARY_ID'? 19 | #define FLASH_AREA_IMAGE_0_SLOTS PM_MCUBOOT_PRIMARY_ID, PM_MCUBOOT_SECONDARY_ID, | ^~~~~~~~~~~~~~~~~~~~~~~ /home/alex/ncs/v2.8.0/bootloader/mcuboot/boot/bootutil/zephyr/../../zephyr/include/sysflash/pm_sysflash.h:35:29: note: in expansion of macro 'FLASH_AREA_IMAGE_0_SLOTS' 35 | #define ALL_AVAILABLE_SLOTS FLASH_AREA_IMAGE_0_SLOTS | ^~~~~~~~~~~~~~~~~~~~~~~~ /home/alex/ncs/v2.8.0/bootloader/mcuboot/boot/bootutil/zephyr/../../zephyr/include/sysflash/pm_sysflash.h:55:9: note: in expansion of macro 'ALL_AVAILABLE_SLOTS' 55 | ALL_AVAILABLE_SLOTS | ^~~~~~~~~~~~~~~~~~~ /home/alex/ncs/v2.8.0/bootloader/mcuboot/boot/bootutil/zephyr/../../zephyr/include/sysflash/pm_sysflash.h:19:60: note: each undeclared identifier is reported only once for each function it appears in 19 | #define FLASH_AREA_IMAGE_0_SLOTS PM_MCUBOOT_PRIMARY_ID, PM_MCUBOOT_SECONDARY_ID, | ^~~~~~~~~~~~~~~~~~~~~~~ /home/alex/ncs/v2.8.0/bootloader/mcuboot/boot/bootutil/zephyr/../../zephyr/include/sysflash/pm_sysflash.h:35:29: note: in expansion of macro 'FLASH_AREA_IMAGE_0_SLOTS' 35 | #define ALL_AVAILABLE_SLOTS FLASH_AREA_IMAGE_0_SLOTS | ^~~~~~~~~~~~~~~~~~~~~~~~ /home/alex/ncs/v2.8.0/bootloader/mcuboot/boot/bootutil/zephyr/../../zephyr/include/sysflash/pm_sysflash.h:55:9: note: in expansion of macro 'ALL_AVAILABLE_SLOTS' 55 | ALL_AVAILABLE_SLOTS | ^~~~~~~~~~~~~~~~~~~ [164/184] Building C object zephyr/drivers/serial/CMakeFiles/drivers__serial.dir/uart_nrfx_uarte.c.obj ninja: build stopped: subcommand failed. [10/20] No configure step for 'mcuboot' FAILED: _sysbuild/sysbuild/images/l9_e1_sol-prefix/src/l9_e1_sol-stamp/l9_e1_sol-build /home/alex/Code/ncs-inter/v2.9.0-v2.7.0/l9/l9_e1_sol/build/_sysbuild/sysbuild/images/l9_e1_sol-prefix/src/l9_e1_sol-stamp/l9_e1_sol-build cd /home/alex/Code/ncs-inter/v2.9.0-v2.7.0/l9/l9_e1_sol/build/l9_e1_sol && /home/alex/ncs/toolchains/b81a7cd864/usr/local/bin/cmake --build . ninja: build stopped: subcommand failed. FATAL ERROR: command exited with status 1: /home/alex/ncs/toolchains/b81a7cd864/usr/local/bin/cmake --build /home/alex/Code/ncs-inter/v2.9.0-v2.7.0/l9/l9_e1_sol/build
I'd like to know how to fix this, as my real firmware bin is larger than slot0 default size.