Partition map migratation from ncs 2.2 -> ncs 2.7 (sysbuild)

Hi,

I have a firmware running on ncs 2.2 with mcuboot and tfm which I'm in the process of upgrading to ncs 2.7 with sysbuild.

I currently have a problem converting the pm_static.yml file from ncs 2.2 to ncs 2.7.

The first problem that occurred was fixed following this Thread

I'm able to build the application successfully on ncs 2.7 but the application will not start. It seems like the bootloader is placed at 0x8200 and not 0x0 while the application seems to be placed correctly at 0x30200 like the build on ncs 2.2.

If I use the partition manager for dynamic allocation the firmware boots fine and bootloader is placed at 0x0000 but the application is no longer placed at 0x30200 which I assume the bootloader from ncs 2.2 expects.

Looking at partition.yml from the dynamic allocation it looks like b0, b0_container, s0, s0_image, s0_pad , s1, s1_image and s1_pad is no longer used.

I don't have any clue on how to move forward with the migration.

I have attached the following files, which I had to change file type from yml to txt because yml file type seems to be blocked:

pm_static_2.2.txt <-- static file used on ncs 2.2

pm_static_2_7.txt <-- static file used on ncs 2.7 which build but seems to have bootloader placed at wrong address and doesn't boot application

partitions.txt <-- File from partition manager made dynamically on ncs 2.7 which boots the application successfully.

EMPTY_0:
  address: 0x14200
  end_address: 0x18000
  placement:
    before:
    - s1_pad
  region: flash_primary
  size: 0x3e00
EMPTY_1:
  address: 0x24200
  end_address: 0x28000
  placement:
    before:
    - mcuboot_pad
  region: flash_primary
  size: 0x3e00
EMPTY_2:
  address: 0xfa000
  end_address: 0x100000
  placement:
    after:
    - settings_storage
  region: flash_primary
  size: 0x6000
EMPTY_3:
  address: 0xf6000
  end_address: 0xf8000
  placement:
    after:
    - nvs_storage
  region: flash_primary
  size: 0x2000
EMPTY_4:
  address: 0xe8000
  end_address: 0xf0000
  placement:
    after:
    - mcuboot_secondary
  region: flash_primary
  size: 0x8000
app:
  address: 0x30200
  end_address: 0x88000
  region: flash_primary
  size: 0x57e00
app_image:
  address: 0x28200
  end_address: 0x88000
  orig_span: &id001
  - tfm
  - app
  region: flash_primary
  size: 0x5fe00
  span: *id001
b0:
  address: 0x0
  end_address: 0x8000
  placement:
    after:
    - start
  region: flash_primary
  size: 0x8000
b0_container:
  address: 0x0
  end_address: 0x8000
  orig_span: &id002
  - b0
  region: flash_primary
  size: 0x8000
  span: *id002
mcuboot:
  address: 0x8200
  end_address: 0x14200
  placement:
    before:
    - mcuboot_primary
  region: flash_primary
  sharers: 0x1
  size: 0xc000
mcuboot_pad:
  address: 0x30000
  end_address: 0x30200
  placement:
    align:
      start: 0x8000
    before:
    - mcuboot_primary_app
  region: flash_primary
  sharers: 0x2
  size: 0x200
mcuboot_primary:
  address: 0x28000
  end_address: 0x88000
  orig_span: &id003
  - app
  - mcuboot_pad
  - tfm
  region: flash_primary
  sharers: 0x1
  size: 0x60000
  span: *id003
mcuboot_primary_app:
  address: 0x28200
  end_address: 0x88000
  orig_span: &id004
  - app
  - tfm
  region: flash_primary
  size: 0x5fe00
  span: *id004
mcuboot_secondary:
  address: 0x88000
  end_address: 0xe8000
  placement:
    after:
    - mcuboot_primary
    align:
      start: 0x8000
  region: flash_primary
  share_size:
  - mcuboot_primary
  size: 0x60000
nonsecure_storage:
  address: 0xf0000
  end_address: 0xf8000
  orig_span: &id005
  - settings_storage
  - nvs_storage
  region: flash_primary
  size: 0x8000
  span: *id005
nrf_modem_lib_ctrl:
  address: 0x20008000
  end_address: 0x200084e8
  inside:
  - sram_nonsecure
  placement:
    after:
    - tfm_sram
    - start
  region: sram_primary
  size: 0x4e8
nrf_modem_lib_rx:
  address: 0x2000a4e8
  end_address: 0x2000c4e8
  inside:
  - sram_nonsecure
  placement:
    after:
    - nrf_modem_lib_tx
  region: sram_primary
  size: 0x2000
nrf_modem_lib_sram:
  address: 0x20008000
  end_address: 0x2000c4e8
  orig_span: &id006
  - nrf_modem_lib_ctrl
  - nrf_modem_lib_tx
  - nrf_modem_lib_rx
  region: sram_primary
  size: 0x44e8
  span: *id006
nrf_modem_lib_tx:
  address: 0x200084e8
  end_address: 0x2000a4e8
  inside:
  - sram_nonsecure
  placement:
    after:
    - nrf_modem_lib_ctrl
  region: sram_primary
  size: 0x2000
nvs_storage:
  address: 0xf0000
  end_address: 0xf6000
  inside:
  - nonsecure_storage
  placement:
    align:
      start: 0x8000
    before:
    - settings_storage
  region: flash_primary
  size: 0x6000
otp:
  address: 0xff8388
  end_address: 0xff83fc
  region: otp
  size: 0x74
provision:
  address: 0xff8108
  end_address: 0xff8388
  region: otp
  size: 0x280
s0:
  address: 0x8000
  end_address: 0x14200
  orig_span: &id007
  - s0_pad
  - mcuboot
  region: flash_primary
  size: 0xc200
  span: *id007
s0_image:
  address: 0x8200
  end_address: 0x14200
  orig_span: &id008
  - mcuboot
  region: flash_primary
  size: 0xc000
  span: *id008
s0_pad:
  address: 0x8000
  end_address: 0x8200
  placement:
    after:
    - b0_container
    align:
      start: 0x8000
  region: flash_primary
  share_size:
  - mcuboot_pad
  size: 0x200
s1:
  address: 0x18000
  end_address: 0x24200
  orig_span: &id009
  - s1_pad
  - s1_image
  region: flash_primary
  size: 0xc200
  span: *id009
s1_image:
  address: 0x18200
  end_address: 0x24200
  placement:
    after:
    - s1_pad
    - s0
  region: flash_primary
  share_size:
  - mcuboot
  size: 0xc000
s1_pad:
  address: 0x18000
  end_address: 0x18200
  placement:
    after:
    - s0
    align:
      start: 0x8000
  region: flash_primary
  share_size:
  - mcuboot_pad
  size: 0x200
settings_storage:
  address: 0xf8000
  end_address: 0xfa000
  inside:
  - nonsecure_storage
  placement:
    align:
      start: 0x8000
    before:
    - end
  region: flash_primary
  size: 0x2000
sram_nonsecure:
  address: 0x20008000
  end_address: 0x20040000
  orig_span: &id010
  - sram_primary
  - nrf_modem_lib_ctrl
  - nrf_modem_lib_tx
  - nrf_modem_lib_rx
  region: sram_primary
  size: 0x38000
  span: *id010
sram_primary:
  address: 0x2000c4e8
  end_address: 0x20040000
  region: sram_primary
  size: 0x33b18
sram_secure:
  address: 0x20000000
  end_address: 0x20008000
  orig_span: &id011
  - tfm_sram
  region: sram_primary
  size: 0x8000
  span: *id011
tfm:
  address: 0x28000
  end_address: 0x30000
  inside:
  - mcuboot_primary_app
  placement:
    before:
    - app
  region: flash_primary
  size: 0x8000
tfm_nonsecure:
  address: 0x30000
  end_address: 0x87E00
  orig_span: &id012
  - app
  region: flash_primary
  size: 0x57e00
  span: *id012
tfm_secure:
  address: 0x28000
  end_address: 0x30200
  orig_span: &id013
  - mcuboot_pad
  - tfm
  region: flash_primary
  size: 0x8200
  span: *id013
tfm_sram:
  address: 0x20000000
  end_address: 0x20008000
  inside:
  - sram_secure
  placement:
    after:
    - start
  region: sram_primary
  size: 0x8000
EMPTY_0:
  address: 0xc000
  end_address: 0x10000
  placement:
    before:
    - mcuboot_pad
  region: flash_primary
  size: 0x4000
EMPTY_1:
  address: 0xfa000
  end_address: 0x100000
  placement:
    after:
    - settings_storage
  region: flash_primary
  size: 0x6000
EMPTY_2:
  address: 0xf6000
  end_address: 0xf8000
  placement:
    after:
    - nvs_storage
  region: flash_primary
  size: 0x2000
app:
  address: 0x18000
  end_address: 0x80000
  region: flash_primary
  size: 0x68000
mcuboot:
  address: 0x0
  end_address: 0xc000
  placement:
    before:
    - mcuboot_primary
  region: flash_primary
  size: 0xc000
mcuboot_pad:
  address: 0x10000
  end_address: 0x10200
  placement:
    align:
      start: 0x8000
    before:
    - mcuboot_primary_app
  region: flash_primary
  size: 0x200
mcuboot_primary:
  address: 0x10000
  end_address: 0x80000
  orig_span: &id001
  - mcuboot_pad
  - tfm
  - app
  region: flash_primary
  sharers: 0x1
  size: 0x70000
  span: *id001
mcuboot_primary_app:
  address: 0x10200
  end_address: 0x80000
  orig_span: &id002
  - app
  - tfm
  region: flash_primary
  size: 0x6fe00
  span: *id002
mcuboot_secondary:
  address: 0x80000
  end_address: 0xf0000
  placement:
    after:
    - mcuboot_primary
    align:
      start: 0x8000
  region: flash_primary
  share_size:
  - mcuboot_primary
  size: 0x70000
mcuboot_sram:
  address: 0x20000000
  end_address: 0x20008000
  orig_span: &id003
  - tfm_sram
  region: sram_primary
  size: 0x8000
  span: *id003
nonsecure_storage:
  address: 0xf0000
  end_address: 0xfa000
  orig_span: &id004
  - settings_storage
  - nvs_storage
  region: flash_primary
  size: 0xa000
  span: *id004
nrf_modem_lib_ctrl:
  address: 0x20008000
  end_address: 0x200084e8
  inside:
  - sram_nonsecure
  placement:
    after:
    - tfm_sram
    - start
  region: sram_primary
  size: 0x4e8
nrf_modem_lib_rx:
  address: 0x2000a568
  end_address: 0x2000c568
  inside:
  - sram_nonsecure
  placement:
    after:
    - nrf_modem_lib_tx
  region: sram_primary
  size: 0x2000
nrf_modem_lib_sram:
  address: 0x20008000
  end_address: 0x2000c568
  orig_span: &id005
  - nrf_modem_lib_ctrl
  - nrf_modem_lib_tx
  - nrf_modem_lib_rx
  region: sram_primary
  size: 0x4568
  span: *id005
nrf_modem_lib_tx:
  address: 0x200084e8
  end_address: 0x2000a568
  inside:
  - sram_nonsecure
  placement:
    after:
    - nrf_modem_lib_ctrl
  region: sram_primary
  size: 0x2080
nvs_storage:
  address: 0xf0000
  end_address: 0xf6000
  inside:
  - nonsecure_storage
  placement:
    align:
      start: 0x8000
    before:
    - settings_storage
  region: flash_primary
  size: 0x6000
otp:
  address: 0xff8108
  end_address: 0xff83fc
  region: otp
  size: 0x2f4
settings_storage:
  address: 0xf8000
  end_address: 0xfa000
  inside:
  - nonsecure_storage
  placement:
    align:
      start: 0x8000
    before:
    - end
  region: flash_primary
  size: 0x2000
sram_nonsecure:
  address: 0x20008000
  end_address: 0x20040000
  orig_span: &id006
  - sram_primary
  - nrf_modem_lib_ctrl
  - nrf_modem_lib_tx
  - nrf_modem_lib_rx
  region: sram_primary
  size: 0x38000
  span: *id006
sram_primary:
  address: 0x2000c568
  end_address: 0x20040000
  region: sram_primary
  size: 0x33a98
sram_secure:
  address: 0x20000000
  end_address: 0x20008000
  orig_span: &id007
  - tfm_sram
  region: sram_primary
  size: 0x8000
  span: *id007
tfm:
  address: 0x10200
  end_address: 0x18000
  inside:
  - mcuboot_primary_app
  placement:
    before:
    - app
  region: flash_primary
  size: 0x7e00
tfm_nonsecure:
  address: 0x18000
  end_address: 0x80000
  orig_span: &id008
  - app
  region: flash_primary
  size: 0x68000
  span: *id008
tfm_secure:
  address: 0x10000
  end_address: 0x18000
  orig_span: &id009
  - mcuboot_pad
  - tfm
  region: flash_primary
  size: 0x8000
  span: *id009
tfm_sram:
  address: 0x20000000
  end_address: 0x20008000
  inside:
  - sram_secure
  placement:
    after:
    - start
  region: sram_primary
  size: 0x8000
.
EMPTY_0:
  address: 0x14200
  end_address: 0x18000
  placement:
    before:
    - s1_pad
  region: flash_primary
  size: 0x3e00
EMPTY_1:
  address: 0x24200
  end_address: 0x28000
  placement:
    before:
    - mcuboot_pad
  region: flash_primary
  size: 0x3e00
EMPTY_2:
  address: 0xfa000
  end_address: 0x100000
  placement:
    after:
    - settings_storage
  region: flash_primary
  size: 0x6000
EMPTY_3:
  address: 0xf6000
  end_address: 0xf8000
  placement:
    after:
    - nvs_storage
  region: flash_primary
  size: 0x2000
EMPTY_4:
  address: 0xe8000
  end_address: 0xf0000
  placement:
    after:
    - mcuboot_secondary
  region: flash_primary
  size: 0x8000
app:
  address: 0x30200
  end_address: 0x88000
  region: flash_primary
  size: 0x57e00
app_image:
  address: 0x28200
  end_address: 0x88000
  orig_span: &id001
  - tfm
  - app
  region: flash_primary
  size: 0x5fe00
  span: *id001
b0:
  address: 0x0
  end_address: 0x8000
  placement:
    after:
    - start
  region: flash_primary
  size: 0x8000
b0_container:
  address: 0x0
  end_address: 0x8000
  orig_span: &id002
  - b0
  region: flash_primary
  size: 0x8000
  span: *id002
mcuboot:
  address: 0x8200
  end_address: 0x14200
  placement:
    before:
    - mcuboot_primary
  region: flash_primary
  sharers: 0x1
  size: 0xc000
mcuboot_pad:
  address: 0x28000
  end_address: 0x28200
  placement:
    align:
      start: 0x8000
    before:
    - mcuboot_primary_app
  region: flash_primary
  sharers: 0x2
  size: 0x200
mcuboot_primary:
  address: 0x28000
  end_address: 0x88000
  orig_span: &id003
  - app
  - mcuboot_pad
  - tfm
  region: flash_primary
  sharers: 0x1
  size: 0x60000
  span: *id003
mcuboot_primary_app:
  address: 0x28200
  end_address: 0x88000
  orig_span: &id004
  - app
  - tfm
  region: flash_primary
  size: 0x5fe00
  span: *id004
mcuboot_secondary:
  address: 0x88000
  end_address: 0xe8000
  placement:
    after:
    - mcuboot_primary
    align:
      start: 0x8000
  region: flash_primary
  share_size:
  - mcuboot_primary
  size: 0x60000
nonsecure_storage:
  address: 0xf0000
  end_address: 0xf8000
  orig_span: &id005
  - settings_storage
  - nvs_storage
  region: flash_primary
  size: 0x8000
  span: *id005
nrf_modem_lib_ctrl:
  address: 0x20008000
  end_address: 0x200084e8
  inside:
  - sram_nonsecure
  placement:
    after:
    - tfm_sram
    - start
  region: sram_primary
  size: 0x4e8
nrf_modem_lib_rx:
  address: 0x2000a4e8
  end_address: 0x2000c4e8
  inside:
  - sram_nonsecure
  placement:
    after:
    - nrf_modem_lib_tx
  region: sram_primary
  size: 0x2000
nrf_modem_lib_sram:
  address: 0x20008000
  end_address: 0x2000c4e8
  orig_span: &id006
  - nrf_modem_lib_ctrl
  - nrf_modem_lib_tx
  - nrf_modem_lib_rx
  region: sram_primary
  size: 0x44e8
  span: *id006
nrf_modem_lib_tx:
  address: 0x200084e8
  end_address: 0x2000a4e8
  inside:
  - sram_nonsecure
  placement:
    after:
    - nrf_modem_lib_ctrl
  region: sram_primary
  size: 0x2000
nvs_storage:
  address: 0xf0000
  end_address: 0xf6000
  inside:
  - nonsecure_storage
  placement:
    align:
      start: 0x8000
    before:
    - settings_storage
  region: flash_primary
  size: 0x6000
otp:
  address: 0xff8388
  end_address: 0xff83fc
  region: otp
  size: 0x74
provision:
  address: 0xff8108
  end_address: 0xff8388
  region: otp
  size: 0x280
s0:
  address: 0x8000
  end_address: 0x14200
  orig_span: &id007
  - s0_pad
  - mcuboot
  region: flash_primary
  size: 0xc200
  span: *id007
s0_image:
  address: 0x8200
  end_address: 0x14200
  orig_span: &id008
  - mcuboot
  region: flash_primary
  size: 0xc000
  span: *id008
s0_pad:
  address: 0x8000
  end_address: 0x8200
  placement:
    after:
    - b0_container
    align:
      start: 0x8000
  region: flash_primary
  share_size:
  - mcuboot_pad
  size: 0x200
s1:
  address: 0x18000
  end_address: 0x24200
  orig_span: &id009
  - s1_pad
  - s1_image
  region: flash_primary
  size: 0xc200
  span: *id009
s1_image:
  address: 0x18200
  end_address: 0x24200
  placement:
    after:
    - s1_pad
    - s0
  region: flash_primary
  share_size:
  - mcuboot
  size: 0xc000
s1_pad:
  address: 0x18000
  end_address: 0x18200
  placement:
    after:
    - s0
    align:
      start: 0x8000
  region: flash_primary
  share_size:
  - mcuboot_pad
  size: 0x200
settings_storage:
  address: 0xf8000
  end_address: 0xfa000
  inside:
  - nonsecure_storage
  placement:
    align:
      start: 0x8000
    before:
    - end
  region: flash_primary
  size: 0x2000
sram_nonsecure:
  address: 0x20008000
  end_address: 0x20040000
  orig_span: &id010
  - sram_primary
  - nrf_modem_lib_ctrl
  - nrf_modem_lib_tx
  - nrf_modem_lib_rx
  region: sram_primary
  size: 0x38000
  span: *id010
sram_primary:
  address: 0x2000c4e8
  end_address: 0x20040000
  region: sram_primary
  size: 0x33b18
sram_secure:
  address: 0x20000000
  end_address: 0x20008000
  orig_span: &id011
  - tfm_sram
  region: sram_primary
  size: 0x8000
  span: *id011
tfm:
  address: 0x28200
  end_address: 0x30200
  inside:
  - mcuboot_primary_app
  placement:
    before:
    - app
  region: flash_primary
  size: 0x8000
tfm_nonsecure:
  address: 0x30200
  end_address: 0x88000
  orig_span: &id012
  - app
  region: flash_primary
  size: 0x57e00
  span: *id012
tfm_secure:
  address: 0x28000
  end_address: 0x30200
  orig_span: &id013
  - mcuboot_pad
  - tfm
  region: flash_primary
  size: 0x8200
  span: *id013
tfm_sram:
  address: 0x20000000
  end_address: 0x20008000
  inside:
  - sram_secure
  placement:
    after:
    - start
  region: sram_primary
  size: 0x8000

Parents
  • Update: Setting SB_CONFIG_SECURE_BOOT_APPCORE=y in sysbuild.conf helped including the nordic secure immutable bootloader however mcuboot still seems to fail at boot

    *** Booting nRF Connect SDK v2.7.0-5cb85570ca43 ***
    *** Using Zephyr OS v3.6.99-100befc70c74 ***
    Attempting to boot slot 0.
    Attempting to boot from address 0x8200.
    Verifying signature against key 0.
    Hash: 0x77...5f
    Firmware signature verified.
    Firmware version 1
    Setting monotonic counter (version: 1, slot: 0)
    *** Booting MCUboot v2.1.0-dev-daf2946a0f07 ***
    *** Using nRF Connect SDK v2.7.0-5cb85570ca43 ***
    *** Using Zephyr OS v3.6.99-100befc70c74 ***
    I: Starting bootloader
    I: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Boot source: none
    W: Failed reading image headers; Image=0
    I: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Boot source: none
    I: Image index: 1, Swap type: none
    E: Image in the primary slot is not valid!
    E: Unable to find bootable image

    One thing i notice is that if I add the merged.hex to nRF Desktop Programmer it looks like the app layer is placed from 0x27e00 and I assume it would be from 0x28000

  • I tried to add the following code before the warning line

    struct image_header *out_hdr = boot_img_hdr(state, 0);

    uint32_t load_addr = out_hdr->ih_load_addr;

    BOOT_LOG_INF("Image header: %d", load_addr);

    And the output was

    I: Image header: 165481 <-- 0x28669
    W: Failed reading image headers; Image=0

    Should image header be placed from the very first byte of the application?

     

Reply Children
  • For anyone interested this was the solution

    EMPTY_0:
      address: 0x14200
      end_address: 0x18000
      placement:
        before:
        - s1_pad
      region: flash_primary
      size: 0x3e00
    EMPTY_1:
      address: 0x24200
      end_address: 0x28000
      placement:
        before:
        - mcuboot_pad
      region: flash_primary
      size: 0x3e00
    EMPTY_2:
      address: 0xfa000
      end_address: 0x100000
      placement:
        after:
        - settings_storage
      region: flash_primary
      size: 0x6000
    EMPTY_3:
      address: 0xf6000
      end_address: 0xf8000
      placement:
        after:
        - nvs_storage
      region: flash_primary
      size: 0x2000
    EMPTY_4:
      address: 0xe8000
      end_address: 0xf0000
      placement:
        after:
        - mcuboot_secondary
      region: flash_primary
      size: 0x8000
    app:
      address: 0x30000
      end_address: 0x88000
      region: flash_primary
      size: 0x58000
    app_image:
      address: 0x28200
      end_address: 0x88000
      orig_span: &id001
      - tfm
      - app
      region: flash_primary
      size: 0x5fe00
      span: *id001
    b0:
      address: 0x0
      end_address: 0x8000
      placement:
        after:
        - start
      region: flash_primary
      size: 0x8000
    b0_container:
      address: 0x0
      end_address: 0x8000
      orig_span: &id002
      - b0
      region: flash_primary
      size: 0x8000
      span: *id002
    mcuboot:
      address: 0x8200
      end_address: 0x14200
      placement:
        before:
        - mcuboot_primary
      region: flash_primary
      sharers: 0x1
      size: 0xc000
    mcuboot_pad:
      address: 0x28000
      end_address: 0x28200
      placement:
        align:
          start: 0x8000
        before:
        - mcuboot_primary_app
      region: flash_primary
      sharers: 0x2
      size: 0x200
    mcuboot_primary:
      address: 0x28000
      end_address: 0x88000
      orig_span: &id003
      - mcuboot_pad
      - app
      - tfm
      region: flash_primary
      sharers: 0x1
      size: 0x60000
      span: *id003
    mcuboot_primary_app:
      address: 0x28200
      end_address: 0x88000
      orig_span: &id004
      - app
      - tfm
      region: flash_primary
      size: 0x5fe00
      span: *id004
    mcuboot_secondary:
      address: 0x88000
      end_address: 0xe8000
      placement:
        after:
        - mcuboot_primary
        align:
          start: 0x8000
      region: flash_primary
      share_size:
      - mcuboot_primary
      size: 0x60000
    mcuboot_sram:
      address: 0x20000000
      end_address: 0x20008000
      orig_span: &id005
      - tfm_sram
      region: sram_primary
      size: 0x8000
      span: *id005
    nonsecure_storage:
      address: 0xf0000
      end_address: 0xfa000
      orig_span: &id006
      - settings_storage
      - nvs_storage
      region: flash_primary
      size: 0xa000
      span: *id006
    nrf_modem_lib_ctrl:
      address: 0x20008000
      end_address: 0x200084e8
      inside:
      - sram_nonsecure
      placement:
        after:
        - tfm_sram
        - start
      region: sram_primary
      size: 0x4e8
    nrf_modem_lib_rx:
      address: 0x2000a568
      end_address: 0x2000c568
      inside:
      - sram_nonsecure
      placement:
        after:
        - nrf_modem_lib_tx
      region: sram_primary
      size: 0x2000
    nrf_modem_lib_sram:
      address: 0x20008000
      end_address: 0x2000c568
      orig_span: &id007
      - nrf_modem_lib_ctrl
      - nrf_modem_lib_tx
      - nrf_modem_lib_rx
      region: sram_primary
      size: 0x4568
      span: *id007
    nrf_modem_lib_tx:
      address: 0x200084e8
      end_address: 0x2000a568
      inside:
      - sram_nonsecure
      placement:
        after:
        - nrf_modem_lib_ctrl
      region: sram_primary
      size: 0x2080
    nvs_storage:
      address: 0xf0000
      end_address: 0xf6000
      inside:
      - nonsecure_storage
      placement:
        align:
          start: 0x8000
        before:
        - settings_storage
      region: flash_primary
      size: 0x6000
    otp:
      address: 0xff8388
      end_address: 0xff83fc
      region: otp
      size: 0x74
    provision:
      address: 0xff8108
      end_address: 0xff8388
      region: otp
      size: 0x280
    s0:
      address: 0x8000
      end_address: 0x14200
      orig_span: &id008
      - mcuboot
      - s0_pad
      region: flash_primary
      size: 0xc200
      span: *id008
    s0_image:
      address: 0x8200
      end_address: 0x14200
      orig_span: &id009
      - mcuboot
      region: flash_primary
      size: 0xc000
      span: *id009
    s0_pad:
      address: 0x8000
      end_address: 0x8200
      placement:
        after:
        - b0_container
        align:
          start: 0x8000
      region: flash_primary
      share_size:
      - mcuboot_pad
      size: 0x200
    s1:
      address: 0x18000
      end_address: 0x24200
      orig_span: &id010
      - s1_pad
      - s1_image
      region: flash_primary
      size: 0xc200
      span: *id010
    s1_image:
      address: 0x18200
      end_address: 0x24200
      placement:
        after:
        - s1_pad
        - s0
      region: flash_primary
      share_size:
      - mcuboot
      size: 0xc000
    s1_pad:
      address: 0x18000
      end_address: 0x18200
      placement:
        after:
        - s0
        align:
          start: 0x8000
      region: flash_primary
      share_size:
      - mcuboot_pad
      size: 0x200
    settings_storage:
      address: 0xf8000
      end_address: 0xfa000
      inside:
      - nonsecure_storage
      placement:
        align:
          start: 0x8000
        before:
        - end
      region: flash_primary
      size: 0x2000
    sram_nonsecure:
      address: 0x20008000
      end_address: 0x20040000
      orig_span: &id011
      - sram_primary
      - nrf_modem_lib_ctrl
      - nrf_modem_lib_tx
      - nrf_modem_lib_rx
      region: sram_primary
      size: 0x38000
      span: *id011
    sram_primary:
      address: 0x2000c568
      end_address: 0x20040000
      region: sram_primary
      size: 0x33a98
    sram_secure:
      address: 0x20000000
      end_address: 0x20008000
      orig_span: &id012
      - tfm_sram
      region: sram_primary
      size: 0x8000
      span: *id012
    tfm:
      address: 0x28200
      end_address: 0x30000
      inside:
      - mcuboot_primary_app
      placement:
        before:
        - app
      region: flash_primary
      size: 0x7e00
    tfm_nonsecure:
      address: 0x30000
      end_address: 0x88000
      orig_span: &id013
      - app
      region: flash_primary
      size: 0x58000
      span: *id013
    tfm_secure:
      address: 0x28000
      end_address: 0x30000
      orig_span: &id014
      - mcuboot_pad
      - tfm
      region: flash_primary
      size: 0x8000
      span: *id014
    tfm_sram:
      address: 0x20000000
      end_address: 0x20008000
      inside:
      - sram_secure
      placement:
        after:
        - start
      region: sram_primary
      size: 0x8000

Related