<?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 relocation and execution update</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/124613/mcuboot-relocation-and-execution-update</link><description>Hello, I am using NCS 3.0.2 on nRF52840. I have been using MCUBoot for a long time on my device, and it is working fine. Recently, I went through a requirement where I needed to match the flash structure with my other devices, which are running on the</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 17 Oct 2025 04:17:35 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/124613/mcuboot-relocation-and-execution-update" /><item><title>RE: MCUBoot relocation and execution update</title><link>https://devzone.nordicsemi.com/thread/551762?ContentTypeID=1</link><pubDate>Fri, 17 Oct 2025 04:17:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2f60a346-fbb9-4dd8-8c1c-2aefa477d568</guid><dc:creator>Ankit_chauhan</dc:creator><description>&lt;p&gt;That is all I have. Thanks for the support.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MCUBoot relocation and execution update</title><link>https://devzone.nordicsemi.com/thread/551695?ContentTypeID=1</link><pubDate>Thu, 16 Oct 2025 11:44:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:223ac55a-13f5-47e2-9a61-0582ea52996a</guid><dc:creator>Menon</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Good to hear that you’ve found a new approach and that it’s working for you.&lt;br /&gt; I’m sorry I couldn’t provide much insight into your issue. I am not familair with older nRF5 SDK&amp;nbsp;, and we don’t offer official support for OTA DFU migration from nRF5 SDK to nRF Connect SDK.&lt;/p&gt;
&lt;p&gt;However, if you have any specific questions or points of confusion, please let me know. I may need to check with my colleagues, but I’ll do my best to find an answer for you.&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;br /&gt; Abhijith&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MCUBoot relocation and execution update</title><link>https://devzone.nordicsemi.com/thread/551650?ContentTypeID=1</link><pubDate>Thu, 16 Oct 2025 04:19:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:55702435-2da4-4439-bdd9-fd0061ab1745</guid><dc:creator>Ankit_chauhan</dc:creator><description>&lt;p&gt;Thank you for the response, Abhijith.&lt;/p&gt;
&lt;p&gt;There are a good number of devices with me that are running with legacy nRF SDK, and due to the mechanical limitations, we cannot have access to SWD pins, and it does not have any physical interface like USB that can be used to update firmware. So, the only option is the DFU OTA.&lt;/p&gt;
&lt;p&gt;The link that I have shared in my previous reply does the same thing: replace the MCUBootloader with the nRF5 bootloader and replace the nRF5 softdevice + app section with the Zephyr application section. Here, the MBR at 0x00 is untouched, and the UICR has the address of the new MCUbootloader. So, as per your reply, it should work because now it has MBR untouched and UICR with the updated address.&lt;/p&gt;
&lt;p&gt;I confirmed all the data by actually reading the specific flash address using &lt;strong&gt;nrfjprog&amp;nbsp;&lt;/strong&gt;&lt;span&gt;&lt;strong&gt;memrd,&lt;/strong&gt;&amp;nbsp;and it contains the expected data. But still, it did not recognize the new bootloader and wiped out the entire flash, considering it as an unknown bootloader and application.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Anyway, I followed another approach where I erased the entire flash of nRF5 code and replaced the entire Zephyr application starting from 0x00(MUCBoot) and followed by the application that works for me.&lt;br /&gt;&lt;br /&gt;Best Regards,&lt;br /&gt;Ankit&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MCUBoot relocation and execution update</title><link>https://devzone.nordicsemi.com/thread/551634?ContentTypeID=1</link><pubDate>Wed, 15 Oct 2025 19:23:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5bbe643c-1520-4d4e-80b3-3349b51296fd</guid><dc:creator>Menon</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I was discussing your case with one of my colleagues who has experience working with both the nRF5 SDK and nRF Connect SDK (NCS), as well as MCUboot.&lt;/p&gt;
&lt;p&gt;In the nRF5 SDK, the MBR (Master Boot Record) occupies address 0x0000, and it determines which address to jump to next. After the MBR runs, it jumps to the bootloader address specified in its configuration. Therefore, MCUboot must be placed at the address where the MBR expects to find the bootloader.&lt;/p&gt;
&lt;p&gt;From what I understand, you’re trying to achieve an NCS-based solution that replicates the same flash layout as in the nRF5 SDK, correct?If so, could you please explain the reason for taking this approach? I’m asking because this method is not the recommended configuration in NCS.&lt;/p&gt;
&lt;p&gt;To replicate this behavior in NCS, you would need something similar to the MBR used in the nRF5 SDK. If you plan to use the MBR itself, it works by checking its own memory for the bootloader address. If it doesn’t find it there, it looks for the address at a specific location in UICR, copies it into memory, and then jumps to the bootloader.&lt;/p&gt;
&lt;p&gt;Therefore, to use the MBR successfully, you’ll need to update your HEX file or project so that it writes the bootloader address to that specific UICR location.&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;/p&gt;
&lt;p&gt;Abhijith&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MCUBoot relocation and execution update</title><link>https://devzone.nordicsemi.com/thread/551213?ContentTypeID=1</link><pubDate>Mon, 13 Oct 2025 04:33:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0ebf0d8c-3e32-431c-b717-cf5924a96517</guid><dc:creator>Ankit_chauhan</dc:creator><description>&lt;p&gt;Thanks&amp;nbsp;&lt;span&gt;Abhijith,&lt;br /&gt;&lt;br /&gt;With the above approach, I am still not clear how to modify the MCUBoot starting address other than 0 in Zephyr. From my investigation and research, I found that technically it is possible to relocate the MCUboot other than the 0th location of flash(as far as we are setting all the details in the pm_static.yml), but practically it&amp;#39;s not possible, and I do not know the reason.&lt;br /&gt;&lt;br /&gt;About my approach from switching from nRF5 SDK to NCS, I know we do not have any official support on that, and hence I followed a couple of blogs, and I made it work for me.&lt;br /&gt;&lt;br /&gt;My only question&amp;nbsp;was, is it possible to launch the MCUBoot from any location of flash, as mentioned in &lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/92774/hang-with-nrf5-sdk-17-1-0-bootloader-and-nrf-connect-sdk-2-1-0-application"&gt;this&lt;/a&gt; ticket? I have tried this, and I was not able to see the expected output. If you could help me with any sample application that does so, it would be helpful.&lt;br /&gt;&lt;br /&gt;Thank you,&lt;br /&gt;Ankit.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MCUBoot relocation and execution update</title><link>https://devzone.nordicsemi.com/thread/551126?ContentTypeID=1</link><pubDate>Fri, 10 Oct 2025 12:36:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9934c62b-59a2-4cf5-8181-a83374071eb2</guid><dc:creator>Menon</dc:creator><description>&lt;p&gt;Hello Ankit,&lt;/p&gt;
&lt;p&gt;Sorry for getting back to you a bit late. Have you made any progress in the meantime?&lt;/p&gt;
&lt;p&gt;I am not very familiar with our older nRF5 SDK, and we do not officially support OTA updates from nRF5 SDK to nRF Connect SDK. Although there are some blogs and community guides describing how to do this, none of them are official.&lt;/p&gt;
&lt;p&gt;If you are still facing issues, please let me know, and I will ask one of my colleagues who is more familiar with the nRF5 SDK to take a look.&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;br /&gt; Abhijith&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MCUBoot relocation and execution update</title><link>https://devzone.nordicsemi.com/thread/550000?ContentTypeID=1</link><pubDate>Mon, 29 Sep 2025 10:48:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4ac89e1c-3d92-4bf4-973c-65c38d80d483</guid><dc:creator>Ankit_chauhan</dc:creator><description>&lt;p&gt;Hi Menon,&lt;br /&gt;&lt;br /&gt;I am following the approach suggested by Vidar in this &lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/92774/hang-with-nrf5-sdk-17-1-0-bootloader-and-nrf-connect-sdk-2-1-0-application"&gt;thread&lt;/a&gt;. Here, I prepared a Zephyr application with the following partition.yml&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th colspan="4"&gt;
&lt;p&gt;&lt;b&gt;Zephyr Flash structure with application and MCU boot&lt;/b&gt;&lt;/p&gt;
&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Section&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Start address&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;End address&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Size&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;nRF5 MBR&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;0x00&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;0x1000&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;4KB&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;MCU boot primary image&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;0x1000&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;0x7C000&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;492KB&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;MCU boot secondary image&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;0x7C000&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;0xF8000&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;496KB&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;MCU Boot&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;0xF8000&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;0xFE000&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;24KB&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;MBR parameters&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;0xFE000&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;0xFF000&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;4KB&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Bootloader settings&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;0xFF000&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;0x100000&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;4KB&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Then I generate the DFU.zip and perform the OTA on the nRF5 application. The DFU got successful and after the soft reset what I saw is the entire image is into the recovery mode i.e. all the flash location is filled with 0xFFFFFFFF.&lt;br /&gt;&lt;br /&gt;Then I tried to flash the same application on my device through J-Link and the device did not start. Then I change my partition.yml&amp;nbsp;and set the MCUBoot at 0x00 and everything works fine.&lt;br /&gt;&lt;br /&gt;So, from this experiment it is suspected that the location of MCUBoot may cause this issue.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MCUBoot relocation and execution update</title><link>https://devzone.nordicsemi.com/thread/549994?ContentTypeID=1</link><pubDate>Mon, 29 Sep 2025 10:24:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ed65af8c-d115-40ee-bd2e-cd387bb21884</guid><dc:creator>Menon</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I think it is technically possible to place the bootloader (MCUboot) at an address other than 0x0, but this is not the standard or recommended approach with NCS. Are you getting any error messages? What code or vector table currently resides at flash address 0x00000000 after the build/flash process?&lt;/p&gt;
&lt;p&gt;Kind Regards,&lt;/p&gt;
&lt;p&gt;Abhijith&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>