Sysbuild builds MCUBoot before static partitions are pulled in

Hi, I'm currently working on porting an nrf5340 - NCS 2.6.0 project repo to NCS 2.7.0 starting with my own minimal sample. Having some trouble getting the sample to build with MCUBoot and a static partition map.


https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/releases_and_maturity/migration/migration_sysbuild.html#partition_manager

Documentation seems to suggest that when building Sysbuild + MCUBoot with a static partition map defined, MCUBoot will build using the partition manager definitions in pm_static.yml. However, my build always seems to fail if boot_partition, slot0_partition, and slot1_partition AREN'T defined in my device tree. Only after MCUBoot finishes and my main application begins compilation do I see the pm_static.yml being used. This seems to run contrary to what the documentation suggests. Ideally we'd like to have a single source of truth in the pm_static.yml rather than having to define the same partitions in the devicetree for MCUBoot. Please advise.

Sysbuild Conf:

SB_CONFIG_PARTITION_MANAGER=y

# Net Core Multiprotocol Radio Image
SB_CONFIG_NETCORE_IPC_RADIO=y
SB_CONFIG_NETCORE_IPC_RADIO_BT_HCI_IPC=y
SB_CONFIG_NETCORE_IPC_RADIO_IEEE802154=y

# MCUBoot Bootloader
SB_CONFIG_BOOTLOADER_MCUBOOT=y
SB_CONFIG_PM_EXTERNAL_FLASH_MCUBOOT_SECONDARY=y

Build Output with boot partitions and slots0/1 not defined:

-- west build: making build dir /Users/timothy.lee/echo_low_power/apps/low_power_app/build_app pristine
-- west build: generating a build system
Loading Zephyr module(s) (Zephyr base): sysbuild_default
-- Found Python3: /opt/homebrew/opt/[email protected]/bin/python3.11 (found suitable version "3.11.7", minimum required is "3.8") found components: Interpreter 
-- Cache files will be written to: /Users/timothy.lee/Library/Caches/zephyr
-- Found west (found suitable version "1.2.0", minimum required is "0.14.0")
-- Board: maven, qualifiers: nrf5340/cpuapp
Parsing /Users/timothy.lee/echo3_ncs/zephyr/share/sysbuild/Kconfig
Loaded configuration '/Users/timothy.lee/echo_low_power/apps/low_power_app/build_app/_sysbuild/empty.conf'
Merged configuration '/Users/timothy.lee/echo_low_power/apps/low_power_app/sysbuild.conf'
Configuration saved to '/Users/timothy.lee/echo_low_power/apps/low_power_app/build_app/zephyr/.config'
Kconfig header saved to '/Users/timothy.lee/echo_low_power/apps/low_power_app/build_app/_sysbuild/autoconf.h'
-- 
   *****************************
   * Running CMake for mcuboot *
   *****************************

Loading Zephyr default modules (Zephyr base).
-- Application: /Users/timothy.lee/echo3_ncs/bootloader/mcuboot/boot/zephyr
-- CMake version: 3.26.4
-- Found Python3: /opt/homebrew/bin/python (found suitable version "3.11.7", minimum required is "3.8") found components: Interpreter 
-- Cache files will be written to: /Users/timothy.lee/Library/Caches/zephyr
-- Zephyr version: 3.6.99 (/Users/timothy.lee/echo3_ncs/zephyr)
-- Found west (found suitable version "1.2.0", minimum required is "0.14.0")
-- Board: maven, qualifiers: nrf5340/cpuapp
-- ZEPHYR_TOOLCHAIN_VARIANT not set, trying to locate Zephyr SDK
-- Found host-tools: zephyr 0.16.1 (/Users/timothy.lee/zephyr-sdk-0.16.1)
-- Found toolchain: zephyr 0.16.1 (/Users/timothy.lee/zephyr-sdk-0.16.1)
-- Found Dtc: /opt/homebrew/bin/dtc (found suitable version "1.7.0", minimum required is "1.4.6") 
-- Found BOARD.dts: /Users/timothy.lee/echo_low_power/boards/level/maven/maven_nrf5340_cpuapp.dts
-- Found devicetree overlay: /Users/timothy.lee/echo3_ncs/bootloader/mcuboot/boot/zephyr/app.overlay
devicetree error: /chosen: undefined node label 'boot_partition'

Related