I am developing an app with the MCUBoot and a main applicaton. I followed the SMP SVR tutorial and modified it to my needs.
I have noticed that if I use a config overlay for MCUBoot (in CMake), it fails to set the config CONFIG_PARTITION_MANAGER_ENABLED and CONFIG_FLASH_MAP_CUSTOM=y, which then makes the bootloader fail. (Note: I am using a custom static partition yaml filee)
If I declare all my overlay configurations in child_image/mcuboot.conf or as CMake defines as mcuboot_CONFIG_HELLO, it works.
I need an overlay config since only when I am in a certain build configuration I want to activate them
This is how the CMake snippet looks like
if(MYCONDITION_FOR_USING_OVERLAY)
set(mcuboot_OVERLAY_CONFIG ${CMAKE_CURRENT_LIST_DIR}/child_image/mcuboot_my_overlay.conf)
endif()
And the file child_image/mcuboot_my_overlay.conf looks as follows
Log error message
*** Booting Zephyr OS build v3.0.99-ncs1 ***
I: Starting bootloader
W: Failed reading sectors; BOOT_MAX_IMG_SECTORS=128 - too small?
W: Cannot upgrade: not a compatible amount of sectors
E: Image in the primary slot is not valid!
E: Unable to find bootable image
However, if I use CMake options or declare everything in the child_image_name/child_image.conf dir (i.e., child_image/mcuboot.conf) it works:
if(MYCONDITION_FOR_USING_OVERLAY)
set(mcuboot_CONFIG_SERIAL y)
set(mcuboot_CONFIG_LOG y)
set(mcuboot_CONFIG_CONSOLE y)
set(mcuboot_CONFIG_UART_CONSOLE y)
endif()
Am I missing something that makes the build not include my static partition and thus making the bootloader fail?
I used as reference this: