Hello,
I'm working on updating my copy of the nRF Connect SDK from 1.7.0 to 2.4.2. My project runs on an nRF9160 so I had SPM configured for my project and now I need to use TFM instead. To do that, I'm following these instructions: https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/security/tfm.html#ug-tfm-migrate. However, I get an error during build configuration from the partition manager saying that there are gaps in my partitions:
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):0x20000000-0x20010000 0x200144e8-0x20040000 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.
I'm not finding any gaps in my file, and I'm changing over the names as instructed. Here's my new pm_static.yml file
app:
address: 0x1c200
end_address: 0xfa000
region: flash_primary
size: 0xdde00
external_flash:
address: 0xf2000
end_address: 0x400000
placement:
after:
- mcuboot_secondary
region: external_flash
size: 0x30e000
mcuboot:
address: 0x0
end_address: 0xc000
placement:
before:
- mcuboot_primary
region: flash_primary
size: 0xc000
mcuboot_pad:
address: 0xc000
# end_address: 0xc200
placement:
before:
- mcuboot_primary_app
region: flash_primary
size: 0x0
mcuboot_primary:
address: 0xc000
end_address: 0xfe000
orig_span: &id001
- tfm
- mcuboot_pad
- app
region: flash_primary
size: 0xf2000
span: *id001
mcuboot_primary_app:
address: 0xc200
end_address: 0xfe000
orig_span: &id002
- app
- tfm
region: flash_primary
size: 0xf1e00
span: *id002
mcuboot_secondary:
address: 0x0
device: MX25L3
end_address: 0xf2000
placement:
align:
start: 0x0
region: external_flash
size: 0xf2000
nrf_modem_lib_ctrl:
address: 0x20010000
end_address: 0x200104e8
inside:
- sram_nonsecure
placement:
after:
- start
region: sram_primary
size: 0x4e8
nrf_modem_lib_rx:
address: 0x200124e8
end_address: 0x200144e8
inside:
- sram_nonsecure
placement:
after:
- nrf_modem_lib_tx
region: sram_primary
size: 0x2000
nrf_modem_lib_sram:
address: 0x20010000
end_address: 0x200144e8
orig_span: &id003
- nrf_modem_lib_ctrl
- nrf_modem_lib_tx
- nrf_modem_lib_rx
region: sram_primary
size: 0x44e8
span: *id003
nrf_modem_lib_tx:
address: 0x200104e8
end_address: 0x200124e8
inside:
- sram_nonsecure
placement:
after:
- nrf_modem_lib_ctrl
region: sram_primary
size: 0x2000
otp:
address: 0xff8108
end_address: 0xff83fc
region: otp
size: 0x2f4
tfm:
address: 0xc000
end_address: 0x1c200
inside:
- mcuboot_primary_app
placement:
before:
- app
region: flash_primary
size: 0x10200
tfm_secure:
address: 0xc000
size: 0x10000
span: [mcuboot_pad, tfm]
tfm_nonsecure:
address: 0x1c200
size: 0xdde00
span: [app]
sram_nonsecure:
address: 0x20010000
end_address: 0x20040000
orig_span: &id004
- sram_primary
- nrf_modem_lib_ctrl
- nrf_modem_lib_tx
- nrf_modem_lib_rx
region: sram_primary
size: 0x30000
span: *id004
sram_primary:
address: 0x200144e8
end_address: 0x20040000
region: sram_primary
size: 0x2bb18
sram_secure:
address: 0x20000000
end_address: 0x20010000
orig_span: &id005
region: sram_primary
size: 0x10000
span: *id005
lwm2m_carrier:
address: 0xfa000
size: 0x4000
inside:
- tfm_nonsecure
settings_storage:
address: 0xfe000
end_address: 0x100000
placement:
before:
- end
region: flash_primary
inside:
- tfm_nonsecure
size: 0x2000
compared to my old one:
app:
address: 0x1c200
end_address: 0xfa000
region: flash_primary
size: 0xdde00
external_flash:
address: 0xf2000
end_address: 0x400000
placement:
after:
- mcuboot_secondary
region: external_flash
size: 0x30e000
mcuboot:
address: 0x0
end_address: 0xc000
placement:
before:
- mcuboot_primary
region: flash_primary
size: 0xc000
mcuboot_pad:
address: 0xc000
end_address: 0xc200
placement:
before:
- mcuboot_primary_app
region: flash_primary
size: 0x200
mcuboot_primary:
address: 0xc000
end_address: 0xfe000
orig_span: &id001
- spm
- mcuboot_pad
- app
region: flash_primary
size: 0xf2000
span: *id001
mcuboot_primary_app:
address: 0xc200
end_address: 0xfe000
orig_span: &id002
- app
- spm
region: flash_primary
size: 0xf1e00
span: *id002
mcuboot_secondary:
address: 0x0
device: MX25L3
end_address: 0xf2000
placement:
align:
start: 0x0
region: external_flash
size: 0xf2000
nrf_modem_lib_ctrl:
address: 0x20010000
end_address: 0x200104e8
inside:
- sram_nonsecure
placement:
after:
- spm_sram
- start
region: sram_primary
size: 0x4e8
nrf_modem_lib_rx:
address: 0x200124e8
end_address: 0x200144e8
inside:
- sram_nonsecure
placement:
after:
- nrf_modem_lib_tx
region: sram_primary
size: 0x2000
nrf_modem_lib_sram:
address: 0x20010000
end_address: 0x200144e8
orig_span: &id003
- nrf_modem_lib_ctrl
- nrf_modem_lib_tx
- nrf_modem_lib_rx
region: sram_primary
size: 0x44e8
span: *id003
nrf_modem_lib_tx:
address: 0x200104e8
end_address: 0x200124e8
inside:
- sram_nonsecure
placement:
after:
- nrf_modem_lib_ctrl
region: sram_primary
size: 0x2000
otp:
address: 0xff8108
end_address: 0xff83fc
region: otp
size: 0x2f4
spm:
address: 0xc200
end_address: 0x1c200
inside:
- mcuboot_primary_app
placement:
before:
- app
region: flash_primary
size: 0x10000
spm_sram:
address: 0x20000000
end_address: 0x20010000
inside:
- sram_secure
placement:
after:
- start
region: sram_primary
size: 0x10000
sram_nonsecure:
address: 0x20010000
end_address: 0x20040000
orig_span: &id004
- sram_primary
- nrf_modem_lib_ctrl
- nrf_modem_lib_tx
- nrf_modem_lib_rx
region: sram_primary
size: 0x30000
span: *id004
sram_primary:
address: 0x200144e8
end_address: 0x20040000
region: sram_primary
size: 0x2bb18
sram_secure:
address: 0x20000000
end_address: 0x20010000
orig_span: &id005
- spm_sram
region: sram_primary
size: 0x10000
span: *id005
lwm2m_carrier:
address: 0xfa000
size: 0x4000
settings_storage:
address: 0xfe000
end_address: 0x100000
placement:
before:
- end
region: flash_primary
size: 0x2000
Does anyone see anything glaringly wrong or have any tips?