Static partition manager with Mcuboot and Sysbuild

Hello!
I am developing an application under the SDK V2.9.0. Now I am trying to set up a simple project with a sysbuild, Mcuboot and a partition manager.
Here is the file tree of the project:

├── CMakeLists.txt
├── drivers
│   ├── CMakeLists.txt
│   ├── gpio
│   │   ├── CMakeLists.txt
│   │   ├── gpio_pi4ioe5v6408
│   │   │   ├── CMakeLists.txt
│   │   │   ├── gpio_pi4ioe5v6408.c
│   │   │   └── Kconfig
│   │   └── Kconfig
│   ├── Kconfig
│   └── zephyr
│       └── module.yml
├── dts
│   └── bindings
│       └── gpio
│           └── diodes_pi4ioe5v6408.yaml
├── nrf54l15dk_nrf54l15_cpuapp.overlay
├── pm_static.yml
├── prj.conf
├── README.md
├── src
│   └── main.c
└── sysbuild.conf

sysbuild.conf has the following lines:

SB_CONFIG_BOOTLOADER_MCUBOOT=y
SB_CONFIG_PARTITION_MANAGER=y

prj.conf has the following lines:

CONFIG_LOG=y
CONFIG_LOG_BACKEND_UART=y
CONFIG_LOG_BACKEND_SHOW_COLOR=y
CONFIG_LOG_INFO_COLOR_GREEN=y
CONFIG_GPIO=y
CONFIG_I2C=y

pm_static.yml was copied without any changes from the ncs/v2.9.0/nrf/applications/nrf_desktop/configuration/nrf54l15dk_nrf54l15_cpuapp/pm_static.yml
Here is its content:

app:
  address: 0x7800
  region: flash_primary
  size: 0xb8800
mcuboot:
  address: 0x0
  region: flash_primary
  size: 0x7000
mcuboot_pad:
  address: 0x7000
  region: flash_primary
  size: 0x800
mcuboot_primary:
  address: 0x7000
  orig_span: &id001
  - app
  - mcuboot_pad
  region: flash_primary
  size: 0xb9000
  span: *id001
mcuboot_primary_app:
  address: 0x7800
  orig_span: &id002
  - app
  region: flash_primary
  size: 0xb8800
  span: *id002
mcuboot_secondary:
  address: 0xc0000
  orig_span: &id003
  - mcuboot_secondary_pad
  - mcuboot_secondary_app
  region: flash_primary
  size: 0xb9000
  span: *id003
mcuboot_secondary_pad:
  region: flash_primary
  address: 0xc0000
  size: 0x800
mcuboot_secondary_app:
  region: flash_primary
  address: 0xc0800
  size: 0xb8800
settings_storage:
  address: 0x179000
  region: flash_primary
  size: 0x4000

When I try compiling the code, I get the following error:

-- Found partition manager static configuration : /home/dima/Projects/giot/workspace/pi4ioe5v6408_gpio_expander/pm_static.yml
Partition 'mcuboot' is not included in the dynamic resolving since it is statically defined.
Partition 'mcuboot_pad' is not included in the dynamic resolving since it is statically defined.
Partition 'mcuboot_primary' is not included in the dynamic resolving since it is statically defined.
Partition 'mcuboot_primary_app' is not included in the dynamic resolving since it is statically defined.
Partition 'mcuboot_secondary' is not included in the dynamic resolving since it is statically defined.
Partition manager failed: Incorrect amount of gaps found in static configuration. There must be exactly one gap in the static configuration to support placing the dynamic partitions (such as 'app'). Gaps found (2):0x7800-0xc0000 0x17d000-0x165000 The most common solution to this problem is to fill the smallest of these gaps with statically defined partition(s) until there is only one gap left. Alternatively re-order the already defined static partitions so that only one gap remains.
Failed to partition region flash_primary, size of region: 1462272
Partition Configuration:
app:
  size: 755712
mcuboot:
  size: 28672
mcuboot_pad:
  size: 2048
mcuboot_primary:
  size: 757760
mcuboot_primary_app:
  size: 755712
mcuboot_secondary:
  size: 757760
mcuboot_secondary_app:
  size: 755712
mcuboot_secondary_pad:
  size: 2048
settings_storage:
  size: 16384

-- Configuring incomplete, errors occurred!

What am I doing wrong? I tried it on V2.8.0 as well with the same result.

Related