Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs

Migration issue from NCS v2.6.1 to v3.1.1 — Sysbuild migration, Network core image not building & dynamic partition failure

Hi Team,

We are working on a commercial pre-production project using nRF5340 and are currently migrating from nRF Connect SDK 2.6.1 to NCS 3.1.1.
We followed the official Sysbuild migration guide:
Migration guide: Migration to sysbuild (https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/releases_and_maturity/migration/migration_sysbuild.html)

During migration we observed two issues regarding Sysbuild and dynamic partition management.


Environment

Item Version / Details
Hardware nRF5340 (custom board or DK — specify)
SDK nRF Connect SDK v3.1.1 (previously 2.6.1)
Toolchain (ex: v2.5.0)
Build system VSCode + West
Application type Dual-core (App core + Net core), IPC/HCI based

Issue Details

Issue 1 — Network core image not building

Following the migration guide, we initially created:

  • sysbuild.conf with:

SB_CONFIG_NETCORE_HCI_IPC=y SB_CONFIG_PARTITION_MANAGER=y
  • sysbuild.cmake file

However, the network core image was not getting built, and build failed with errors.

Issue 2 — Dynamic partition is not working

To resolve the first issue, we removed sysbuild.conf and instead added kconfig.sysbuild.
After this change:

Heavy check mark Network core image is now building correctly
 X Dynamic partition still fails, showing the same partition-manager related build error.

787:45: error: 'user_storage' undeclared (first use in this function)
  787 |         err = flash_area_open(FLASH_AREA_ID(user_storage), &fa);
      |                                             ^~~~~~~~~~~~
815:45: error: 'bad_block_table' undeclared (first use in this function); did you mean 'bad_blk_table'?
  815 |         err = flash_area_open(FLASH_AREA_ID(bad_block_table), &fa);
      |                                             ^~~~~~~~~~~~~~~
      |                                             bad_blk_table
841:45: error: 'settings_storage' undeclared (first use in this function)
  841 |         err = flash_area_open(FLASH_AREA_ID(settings_storage), &fa);

We expect partitions to be dynamically generated when using sysbuild, but it appears partition manager is not active or parameters are not being picked up.


What we need help with

  1. Correct configuration for enabling dynamic partitioning under Sysbuild in NCS 3.1.1

  2. Recommended usage of:

    • sysbuild.conf vs kconfig.sysbuild

    • sysbuild.cmake placement & syntax

  3. Any example reference for nRF5340 dual-core + IPC + Sysbuild + Partition Manager

  4. Clarification if SB_CONFIG_PARTITION_MANAGER is sufficient or additional settings are required


Additional Notes

This migration is time-critical since we are in the final pre-production stage and planning to freeze FW for manufacturing.
Any support or guidance would be very helpful.

pm.yml is bellow 

app:
  address: 0x00000000
  size: 0xE8000       # 928 KB

memfault_storage:
  address: 0x000E8000
  size: 0x10000         # 64 KB
  placement:
    region: flash_primary
    after: [app]

bad_block_table:
  address: 0x00F8000
  size: 0x2000         # 8 KB
  placement:
    region: flash_primary
    after: [memfault_storage]
    
settings_storage:
  address: 0x000FA000
  size: 0x2000         # 8 KB
  placement:
    region: flash_primary
    after: [bad_block_table]

user_storage:
  address: 0x000FC000
  size: 0x4000         # 16 KB
  placement:
    region: flash_primary
    before: [end]

Parents Reply Children
Related