NRF54L10 : DFU with External Flash on nRF54L10 – Partitioning and MCUboot Feature Clarifications

Hi,

We are currently migrating our project from nRF52840 to nRF54L10 using the nRF Connect SDK, and we have a few questions regarding MCUboot DFU using external flash.

Background:

  • On nRF52840, we successfully implemented dual-bank DFU using MCUboot, with OTA over both cellular and BLE DFU.

  • Now, moving to nRF54L10, due to Zephyr + MCUboot overhead and limited internal flash (1 MB), our application size has grown significantly.

  • To enable dual-bank DFU on nRF54L10, we are planning to use nrf54L15 internal flash as primary partition, and external flash for the secondary MCUboot partition.

  • We are already using an 8 MB external NOR flash (GD25LQ64ESIGR) to store history/config data, and we plan to allocate 2 MB of this for the DFU(BLE DFU and cellular OTA ) secondary slot.


Questions:

  1. Is it possible to allocate only 2 MB of external flash for the MCUboot secondary partition, or does MCUboot require full control of the entire external flash device?

  2. Can we manually define the offset and size of the secondary partition within the external flash? For example, can we assign the DFU secondary partition to a specific 2 MB region (e.g., from 0x400000 to 0x5FFFFF)?

  3. Are all MCUboot features (test image, confirm, rollback on failure, etc.) fully supported when the secondary slot resides in external flash (SPI), or are there limitations compared to using internal flash for both primary and secondary partitions?


We’ve reviewed the guidance in the DevAcademy DFU with external flash chapter, but would appreciate clarification before proceeding with partitioning and integration.

Thanks in advance for your support.

Best regards,
Jay

Parents
  • Hello,

    Yes, it is possible to allocate a specific region of external flash for the secondary slot. MCUBoot does not require full control of the external flash; it only needs access to the defined region.
    I’m sharing a sample based on the Academy example you checked, where I included a pm_static file that assigns the secondary slot as you mentioned. See the screenshot below and review the pm_static file included in the sample. The sample is built for nrf54l15dk/nrf54l10/cpuapp.

    I don't think there is any limitation when the secondary slot is moved to external flash. However, please note that MCUBoot with the nRF54L10 is in an experimental state and may not be fully supported.

    Kind regards,
    Abhijith

    spi_custom_pm.zip

Reply
  • Hello,

    Yes, it is possible to allocate a specific region of external flash for the secondary slot. MCUBoot does not require full control of the external flash; it only needs access to the defined region.
    I’m sharing a sample based on the Academy example you checked, where I included a pm_static file that assigns the secondary slot as you mentioned. See the screenshot below and review the pm_static file included in the sample. The sample is built for nrf54l15dk/nrf54l10/cpuapp.

    I don't think there is any limitation when the secondary slot is moved to external flash. However, please note that MCUBoot with the nRF54L10 is in an experimental state and may not be fully supported.

    Kind regards,
    Abhijith

    spi_custom_pm.zip

Children
No Data
Related