Hi Nordic team,
We're experiencing two issues related to partition handling in Zephyr/NCS and are looking for your guidance
Issue 1: settings_storage
is erased after BLE DFU
We are using BLE DFU and the settings
subsystem to persist device parameters.
Everything works fine under normal conditions, but after performing DFU, the parameters are lost.
Example memory dump before DFU:
After DFU:
We expected settings_storage
to be preserved, as it is located outside the mcuboot_primary
and mcuboot_secondary
partitions.
Partition Manager report confirms this:
This indicates that settings_storage
is located at 0x15f000
, well outside the regions that DFU should be erasing.
Yet after DFU, the memory content of settings_storage
appears wiped.
Questions:
-
Could the BLE DFU process be erasing more flash than intended?
-
Is there any MCUboot or Zephyr behavior we might be missing regarding retention of NVS/Settings partitions during DFU?
Issue 2: Assigning HEX to a partition using Partition Manager does not work
We want to assign a pre-generated serial.hex
file to a custom serial
partition via Partition Manager, as described in the Partition Manager documentation.
Our goal is to embed a serial number at build time into a small flash partition:
Partition:
CMake snippet:
However, serial.hex
is not included in the final merged.hex
file. We verified that the file exists and contains the expected content at the correct offset.
Questions:
-
Have we understood the purpose of this mechanism correctly?
-
Are there any specific requirements that must be followed?