<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>[MCUBOOT + FIRMWARE LOADER/BLE_MCUMGR] Handling of two slot application</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/127927/mcuboot-firmware-loader-ble_mcumgr-handling-of-two-slot-application</link><description>Hi, 
 we are developing on nRF54L15 using NCS v3.2.3 , and evaluating a DFU architecture based on: 
 
 MCUboot 
 firmware_loader 
 main application 
 
 using the BLE MCU Manager firmware loader sample as a reference: github.com/.../ble_mcumgr 
 Question</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 28 Apr 2026 17:22:12 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/127927/mcuboot-firmware-loader-ble_mcumgr-handling-of-two-slot-application" /><item><title>RE: [MCUBOOT + FIRMWARE LOADER/BLE_MCUMGR] Handling of two slot application</title><link>https://devzone.nordicsemi.com/thread/565640?ContentTypeID=1</link><pubDate>Tue, 28 Apr 2026 17:22:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b560d3a6-4a81-40e6-bb57-d237f359f74f</guid><dc:creator>Amanda Hsieh</dc:creator><description>[quote user="longo92"]Unfortunally the swap mechaninsm is mutually exculsive with firmware loader:[/quote]
&lt;p&gt;That&amp;#39;s true.&amp;nbsp;&lt;span&gt;Since the firmware loader mode is a single-application-slot design focused on maximizing application flash space, it trades away the rollback capability in exchange for that larger application footprint. If rollback/revert is a requirement for your design, you would need to use one of the swap-based MCUboot modes instead.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: [MCUBOOT + FIRMWARE LOADER/BLE_MCUMGR] Handling of two slot application</title><link>https://devzone.nordicsemi.com/thread/565637?ContentTypeID=1</link><pubDate>Tue, 28 Apr 2026 16:13:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f217240d-6462-4ef5-87c7-13b112e07e2b</guid><dc:creator>longo92</dc:creator><description>[quote userid="77782" url="~/f/nordic-q-a/127927/mcuboot-firmware-loader-ble_mcumgr-handling-of-two-slot-application/565636"]I think you can use the mcuboot default&amp;nbsp;Swap mode.&amp;nbsp;&amp;nbsp;The new image is uploaded to the secondary slot, then swapped into the primary slot. The old image is preserved in the secondary slot during the swap, enabling automatic rollback if the new image fails to confirm. See the DevAcademy course &lt;a href="https://academy.nordicsemi.com/courses/nrf-connect-sdk-intermediate/lessons/lesson-9-bootloaders-and-dfu-fota/topic/mcuboot-mcumgr-and-dfu-target/" rel="noopener noreferrer" target="_blank"&gt;MCUboot, and relevant libraries&lt;/a&gt;[/quote]
&lt;p&gt;Unfortunally the swap mechaninsm is mutually exculsive with firmware loader:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/nrfconnect/sdk-zephyr/blob/ncs-v3.3.0/share/sysbuild/images/bootloader/Kconfig#L33"&gt;github.com/.../Kconfig&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: [MCUBOOT + FIRMWARE LOADER/BLE_MCUMGR] Handling of two slot application</title><link>https://devzone.nordicsemi.com/thread/565636?ContentTypeID=1</link><pubDate>Tue, 28 Apr 2026 16:04:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c756c459-93ec-46e1-bafd-9a77c7b32978</guid><dc:creator>Amanda Hsieh</dc:creator><description>[quote user="longo92"]Which is the difference of your linked sample with the one I provided&amp;nbsp;samples/dfu/single_slot?[/quote]
&lt;p&gt;Both samples use MCUboot&amp;#39;s firmware loader mode, but they serve different primary purposes.&lt;/p&gt;
&lt;p&gt;The&amp;nbsp;&lt;a href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/samples/mcuboot/firmware_loader_entrance/README.html"&gt;Firmware loader entrance&lt;/a&gt;&amp;nbsp;sample demonstrates&amp;nbsp;how to enter the firmware loader application&amp;nbsp;from a running main application. The main application is a minimal Bluetooth LE peripheral that advertises using the MCUmgr service UUID. It demonstrates the&amp;nbsp;boot mode entrance method, where MCUboot checks the boot mode via the retention subsystem to decide whether to boot the main app or the firmware loader app. It also supports the GPIO entrance&amp;nbsp;(hold Button 0 during reset).&lt;/p&gt;
&lt;p&gt;The&amp;nbsp;&lt;a href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/samples/dfu/single_slot/README.html"&gt;Single-slot DFU with MCUboot&lt;/a&gt;&amp;nbsp;sample demonstrates how to&amp;nbsp;maximize&amp;nbsp;available flash space for the application&amp;nbsp;using the firmware loader mode (single-slot layout). The main application has&amp;nbsp;no firmware update capabilities&amp;nbsp;itself — DFU is entirely handled by the separate firmware loader image.&amp;nbsp;Both MCUboot and the firmware loader are configured for&amp;nbsp;minimal size, leaving more space for the application.&amp;nbsp;It also demonstrates&amp;nbsp;buttonless DFU, where the application can trigger firmware loader entry without holding a button during reset.&lt;/p&gt;
[quote user="longo92"]I would like to use three slots, the additional slot is used for rollback main application to previous version.[/quote]
&lt;p&gt;I think you can use the mcuboot default&amp;nbsp;Swap mode.&amp;nbsp;&amp;nbsp;The new image is uploaded to the secondary slot, then swapped into the primary slot. The old image is preserved in the secondary slot during the swap, enabling automatic rollback if the new image fails to confirm. See the DevAcademy course &lt;a href="https://academy.nordicsemi.com/courses/nrf-connect-sdk-intermediate/lessons/lesson-9-bootloaders-and-dfu-fota/topic/mcuboot-mcumgr-and-dfu-target/" rel="noopener noreferrer" target="_blank"&gt;MCUboot, and relevant libraries&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: [MCUBOOT + FIRMWARE LOADER/BLE_MCUMGR] Handling of two slot application</title><link>https://devzone.nordicsemi.com/thread/565570?ContentTypeID=1</link><pubDate>Mon, 27 Apr 2026 20:13:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2df52aff-eb49-4b1f-97e1-01405f096c72</guid><dc:creator>longo92</dc:creator><description>&lt;ul&gt;
&lt;li&gt;Which is the difference of your linked sample with the one I provided&amp;nbsp;samples/dfu/single_slot?&lt;/li&gt;
&lt;li&gt;The sample you suggest still uses mcuboot with two slots: one for main application and the other for firmware loader. I would like to use three slots, the additional slot is used for rollback main application to previous version.&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: [MCUBOOT + FIRMWARE LOADER/BLE_MCUMGR] Handling of two slot application</title><link>https://devzone.nordicsemi.com/thread/565567?ContentTypeID=1</link><pubDate>Mon, 27 Apr 2026 19:55:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b7d36aaa-fa53-4401-a7e9-4a9b9d7a804c</guid><dc:creator>Amanda Hsieh</dc:creator><description>&lt;p&gt;Hi,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You can take a look at the NCS v3.3.0&amp;nbsp;&lt;a href="https://docs.nordicsemi.com/bundle/ncs-3.3.0/page/nrf/samples/mcuboot/firmware_loader_entrance/README.html"&gt;Firmware loader entrance&lt;/a&gt;,&amp;nbsp;which&amp;nbsp;&lt;span&gt;uses the boot mode entrance method, in which MCUboot checks the boot mode using the retention subsystem to determine whether to boot the main application or the firmware loader application.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Regards,&lt;br /&gt;Amanda H.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>