<?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>Problem with bootloader relocation</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/49938/problem-with-bootloader-relocation</link><description>My goal is to replace the legacy bootloader present in nRF52832 with a new bootloader with the DFU process. 
 I am using nRF5 SDK v15.3.0, GCC ARM and S132. 
 I have done the following with the help of this . 
 To summarize, 
 
 The new bootloader was</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 24 Jul 2019 09:15:11 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/49938/problem-with-bootloader-relocation" /><item><title>RE: Problem with bootloader relocation</title><link>https://devzone.nordicsemi.com/thread/200232?ContentTypeID=1</link><pubDate>Wed, 24 Jul 2019 09:15:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9799fa38-85ee-4cae-98a8-44bf5a8a6db3</guid><dc:creator>naveenj</dc:creator><description>&lt;p&gt;The first two words of bootloader&amp;#39;s hex file are SP and Reset handler and the reset handler of the new bootloader was pointing to an undesired address, (while I was building the hex file, missed a step to update the address). And it is jumping to that undesired address.&lt;/p&gt;
&lt;p&gt;So it jumps to the new address set in the UICR register, but due to the incorrect reset handler address, it crashes.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem with bootloader relocation</title><link>https://devzone.nordicsemi.com/thread/200231?ContentTypeID=1</link><pubDate>Wed, 24 Jul 2019 09:09:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:52676a97-cd1c-4a83-a369-5375375382ca</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Glad that you found the issue :D So you have a reset handler in your new bootloader ( or application ?) and it was doing something wrong ?&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem with bootloader relocation</title><link>https://devzone.nordicsemi.com/thread/200227?ContentTypeID=1</link><pubDate>Wed, 24 Jul 2019 08:45:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b774d86c-0526-4de8-a9d0-15f43ffc5b1a</guid><dc:creator>naveenj</dc:creator><description>&lt;p&gt;Oh man, I figured out what&amp;#39;s happening. It was not because of the bootloader address, but it&amp;#39;s the reset handler present in my hex file.&lt;/p&gt;
&lt;p&gt;Somehow I missed verifying this in the beginning and overlooked it.&lt;/p&gt;
&lt;p&gt;Very much appreciate your time and efforts. Thanks.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem with bootloader relocation</title><link>https://devzone.nordicsemi.com/thread/200099?ContentTypeID=1</link><pubDate>Tue, 23 Jul 2019 13:51:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:aa0e32d4-c39e-406d-8721-204fbaed5b47</guid><dc:creator>naveenj</dc:creator><description>&lt;p&gt;mbr_params_page&amp;nbsp;caught&amp;nbsp;my attention because it is completely blank when I compare it with a working version. So nothing related to the start is present in that region?&lt;/p&gt;
&lt;p&gt;I already commented the part which protects the flash.&lt;/p&gt;
&lt;p&gt;Immediately, after the new bootloader is downloaded and reset, the PC reads 0x20010000.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem with bootloader relocation</title><link>https://devzone.nordicsemi.com/thread/200079?ContentTypeID=1</link><pubDate>Tue, 23 Jul 2019 13:22:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a496f387-0475-4c86-817f-b626932a2a48</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;It&amp;#39;s protected in this call :&lt;/p&gt;
&lt;p&gt;ret_val = nrf_bootloader_flash_protect(BOOTLOADER_START_ADDR,area_size,NRF_BOOTLOADER_READ_PROTECT);&lt;/p&gt;
&lt;p&gt;Inside&amp;nbsp;nrf_bootloader_app_start_final() of nrf_bootloader_app_start_final.c . Not sure in your case it&amp;#39;s executed or not.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;But I&amp;#39;m not sure why you need to check the mbr_params_page. It&amp;#39;s for the MBR to use internally and application, or bootloader should not write to it.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If the bootloader start address is correct, the MBR supposed to forward the PC and vector table to the new bootloader address. Could you check where the PC is forwarded to after your download ?&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem with bootloader relocation</title><link>https://devzone.nordicsemi.com/thread/199936?ContentTypeID=1</link><pubDate>Tue, 23 Jul 2019 07:58:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6cccaef0-bd52-4d0e-8f16-423a8b2af893</guid><dc:creator>naveenj</dc:creator><description>&lt;p&gt;I had verified that up on DFU success the content of 0x10001014 is indeed the new address and content of 0x10001018 is also what is intended (0x7E000). However, I am seeing something weird, the page 0x7E000 is blank.&lt;/p&gt;
&lt;p&gt;Could this be the cause?&lt;/p&gt;
&lt;p&gt;Update:&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The content at 0x7E000 is present until the bootloader command is executed, but&amp;nbsp;it is being erased right after the command SD_Command is executed [&lt;/span&gt;&lt;span&gt;nrf_dfu_mbr_copy_bl&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;or even&amp;nbsp;&lt;/span&gt;&lt;span&gt;sd_mbr_command, tried both&lt;/span&gt;&lt;span&gt;)]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;------&amp;nbsp;ignoring the previous observation -----&lt;/p&gt;
&lt;p&gt;It tries to write to 0x7E000, but fails to update there.&lt;/p&gt;
&lt;p&gt;&amp;quot;&amp;lt;debug&amp;gt; nrf_dfu_flash: nrf_fstorage_write(&lt;strong&gt;addr=0x0007E000&lt;/strong&gt;, &lt;strong&gt;src=0x20007474&lt;/strong&gt;, len=896 bytes), queue usage: 1&amp;quot;&lt;/p&gt;
&lt;p&gt;I see the content in the src addr as something, but 0x7E000 is just blank after the write operation.&lt;/p&gt;
&lt;p&gt;-------&lt;span&gt;-------&lt;/span&gt;&lt;span&gt;-------&lt;/span&gt;&lt;span&gt;-------&lt;/span&gt;&lt;span&gt;-------&lt;/span&gt;&lt;span&gt;-------&lt;/span&gt;&lt;span&gt;-------&lt;/span&gt;&lt;span&gt;-------&lt;/span&gt;&lt;span&gt;--&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem with bootloader relocation</title><link>https://devzone.nordicsemi.com/thread/199933?ContentTypeID=1</link><pubDate>Tue, 23 Jul 2019 07:40:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:17e32747-ae5f-4954-8729-80c1a6a827ce</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;I don&amp;#39;t see&amp;nbsp;much of benefit of using UICR in your case. I don&amp;#39;t think you can be able to change it in runtime. UICR is a page in flash, you can&amp;#39;t change it in runtime unless you erase and rewrite UICR.&lt;/p&gt;
&lt;p&gt;If you want to stick to UICR to store the start address of the bootloader it should be fine, but when you update the UICR bootloader start address (0x10001014), make sure 0x10001018 is restored after the erase as well.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Could you check now, after you update the bootloader to different location, do you have the UICR configured correctly.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem with bootloader relocation</title><link>https://devzone.nordicsemi.com/thread/199863?ContentTypeID=1</link><pubDate>Mon, 22 Jul 2019 15:17:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:dbe19feb-8bcf-4b94-9a47-bed88789f8a6</guid><dc:creator>naveenj</dc:creator><description>&lt;p&gt;When I generated the hex file with the help of example ld file present in examples/pca10040_ble_debug, it shows the address there at 0x0FF8.&lt;/p&gt;
&lt;p&gt;However, when I compared it with the ld file I am using, it was&amp;nbsp;preferred to use it this way because it can be changed during run time (as per my understanding).&lt;/p&gt;
&lt;p&gt;Example file:&lt;/p&gt;
&lt;p&gt;uicr_bootloader_start_address (r) : ORIGIN = &lt;strong&gt;0x00000FF8&lt;/strong&gt;, LENGTH = 0x4&lt;br /&gt; uicr_mbr_params_page (r) : ORIGIN = &lt;strong&gt;0x00000FFC&lt;/strong&gt;, LENGTH = 0x4&lt;br /&gt; mbr_params_page (r) : ORIGIN = 0x0007E000, LENGTH = 0x1000&lt;br /&gt; bootloader_settings_page (r) : ORIGIN = 0x0007F000, LENGTH = 0x1000&lt;/p&gt;
&lt;p&gt;My file:&lt;/p&gt;
&lt;p&gt;mbr_params_page (r) : ORIGIN = 0x0007E000, LENGTH = 0x1000&lt;br /&gt; bootloader_settings_page (r) : ORIGIN = 0x0007F000, LENGTH = 0x1000&lt;br /&gt; uicr_mbr_params_page (r) : ORIGIN = &lt;strong&gt;0x10001018&lt;/strong&gt;, LENGTH = 0x4&lt;br /&gt; uicr_bootloader_start_address (r) : ORIGIN = &lt;strong&gt;0x10001014&lt;/strong&gt;, LENGTH = 0x4&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem with bootloader relocation</title><link>https://devzone.nordicsemi.com/thread/199853?ContentTypeID=1</link><pubDate>Mon, 22 Jul 2019 14:39:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e515e795-fd9b-4e81-89b1-ee91a3e6bd70</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Please send us your bootloader and softdevice hex file, the original one. Don&amp;#39;t test with changing/switching the bootloader yet. Test with just the normal bootloader, we need to find where the MBR find the bootloader location.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I attached here bootloader that I built, you can see at the first 3 lines the address 0xFF8 is written 0x78000&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t see that in your&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/dump_5F00_after_5F00_copying_5F00_to_5F00_newloc.hex"&gt;dump_after_copying_to_newloc.hex&lt;/a&gt;&amp;nbsp;nor&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/dump_5F00_before_5F00_dfu.hex"&gt;dump_before_dfu.hex&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Note that flash dump wouldn&amp;#39;t show the UICR.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/support-attachments/beef5d1b77644c448dabff31668f3a47-d245cab1f48c43f991ed8de1b0ef80d3/bootloader.hex"&gt;devzone.nordicsemi.com/.../bootloader.hex&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem with bootloader relocation</title><link>https://devzone.nordicsemi.com/thread/199775?ContentTypeID=1</link><pubDate>Mon, 22 Jul 2019 12:14:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6c6f5b2d-d6e9-43a2-804f-ca1a5f848318</guid><dc:creator>naveenj</dc:creator><description>&lt;p&gt;I am not using any dedicated IDEs and I am using&amp;nbsp;&lt;span&gt;GCC ARM compiler.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;This line is enabled in my case:&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;volatile&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;uint32_t&lt;/span&gt;&lt;span&gt; m_uicr_bootloader_start_address &lt;/span&gt;&lt;span&gt;__attribute__&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;((&lt;/span&gt;&lt;span&gt;section&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;.uicr_bootloader_start_address&amp;quot;&lt;/span&gt;&lt;span&gt;)))&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; BOOTLOADER_START_ADDR&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;Yes, I am using S132 v6.1.1.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;The bootloader is initially present at 0x71000, relocated to 0x70000. I am attaching the hex files that I took at every step.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/dump_5F00_after_5F00_copying_5F00_to_5F00_newloc.hex"&gt;devzone.nordicsemi.com/.../dump_5F00_after_5F00_copying_5F00_to_5F00_newloc.hex&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;This is the final file after relocating the bootloader.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/dump_5F00_after_5F00_bank1_5F00_update.hex"&gt;devzone.nordicsemi.com/.../dump_5F00_after_5F00_bank1_5F00_update.hex&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;This hex file, is taken just after the bootloader is received and before the bootloader is written to the new location.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/dump_5F00_before_5F00_dfu.hex"&gt;devzone.nordicsemi.com/.../dump_5F00_before_5F00_dfu.hex&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;This is before the whole process is started.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;The linker file:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/secure_5F00_bootloader_5F00_gcc_5F00_nrf52.ld"&gt;devzone.nordicsemi.com/.../secure_5F00_bootloader_5F00_gcc_5F00_nrf52.ld&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;Update: Just to clear some confusion, I am trying to&amp;nbsp;relocate from the bootloader code. Flashing it fully with the new address works, but I want to do this from the bootloader code itself.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem with bootloader relocation</title><link>https://devzone.nordicsemi.com/thread/199760?ContentTypeID=1</link><pubDate>Mon, 22 Jul 2019 11:52:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ff256b2d-c9ea-40d9-b51b-a2955f284519</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Naveenj,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I would suggest to test with the stock bootloader, you can have a fresh copy of the SDK.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Which IDE you are using ? If you using KEIL, this line should be enabled in nrf_bootloader_info.c.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;uint32_t m_uicr_bootloader_start_address __attribute__((at(NRF_UICR_BOOTLOADER_START_ADDRESS)))&lt;br /&gt; = BOOTLOADER_START_ADDR;&lt;/p&gt;
&lt;p&gt;This line will configure the address&amp;nbsp;&lt;span&gt;NRF_UICR_BOOTLOADER_START_ADDRESS =&amp;nbsp;MBR_BOOTLOADER_ADDR =&amp;nbsp;0xFF8 with the value of&amp;nbsp;BOOTLOADER_START_ADDR&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;When you flash the bootloader hex file, the value whould be written at 0xFF8.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I assume you are using S132 v6.1.1 ?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;If you still having trouble you can send us the hex files you have (bootloader + softdevice )&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem with bootloader relocation</title><link>https://devzone.nordicsemi.com/thread/199720?ContentTypeID=1</link><pubDate>Mon, 22 Jul 2019 09:42:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0fab0015-7778-47c9-854d-43f2551e3485</guid><dc:creator>naveenj</dc:creator><description>&lt;p&gt;Hello Hung,&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve been struggling with this for a while, could you tell me how to set the address in the MBR settings page (I am assuming this to be a part of address *UICR.NRFFW[1])?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem with bootloader relocation</title><link>https://devzone.nordicsemi.com/thread/199544?ContentTypeID=1</link><pubDate>Fri, 19 Jul 2019 13:06:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ec4afd21-0a5b-4b05-bfbe-59d7177be052</guid><dc:creator>naveenj</dc:creator><description>&lt;p&gt;The address 0xFF8 shows FFFF.., every time, which means there is no address in the MBR region. In which case, it should use the address present in UICR region (0x10001014) but seems like it isn&amp;#39;t doing so.&lt;/p&gt;
&lt;p&gt;Or by saying &amp;quot;MBR Setting Page&amp;quot;, did you mean the one present in UICR.NRFFW[1] (just after the bootloader - higher address /&amp;nbsp;&lt;span&gt;MBR Param Storage&lt;/span&gt;)?&lt;/p&gt;
&lt;p&gt;Additionally, the following two check scenarios could be of help (supporting your hypothesis):&lt;/p&gt;
&lt;p&gt;- copied the same bootloader to a different address (0x60000) faraway from the current one (also modified the UICR address to this) and it still jumps to the same old address 0x71000.&lt;/p&gt;
&lt;p&gt;- over-wrote the existing bootloader just in place (i.e. at 0x71000) with the same code and I could verify that it works (staying at the older address).&lt;/p&gt;
&lt;p&gt;I am lighting up an LED in the main() of the bootloader to know that the bootloader is functioning.&lt;/p&gt;
&lt;p&gt;Update: when I read the content present at the address in UICR.NRFFW[1] (MBR Param Storage), it is cleared. Before writing the new bootloader, this address has some content.&lt;/p&gt;
&lt;p&gt;Also, could you tell me how to interpret the data present in MBR Parameter Storage?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem with bootloader relocation</title><link>https://devzone.nordicsemi.com/thread/199534?ContentTypeID=1</link><pubDate>Fri, 19 Jul 2019 12:45:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b764d553-74ac-477b-99a2-17268866b28b</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Ok,&amp;nbsp;so most likely that the MBR sees the bootloader star address inside the MBR setting page and won&amp;#39;t update to follow the UICR change that you make. (this is not covered in the guide you followed because it&amp;#39;s for earlier SDK).&lt;/p&gt;
&lt;p&gt;What you need to do is to update the MBR setting page instead of UICR. Note that we call&amp;nbsp;nrf_bootloader_flash_protect() at the beginning of the bootloader, this may block the bootloader from modifying the MBR setting page. So&amp;nbsp;you need to update a bootloader that doesn&amp;#39;t do so.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem with bootloader relocation</title><link>https://devzone.nordicsemi.com/thread/199483?ContentTypeID=1</link><pubDate>Fri, 19 Jul 2019 09:40:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b59b1c6b-7757-4780-ab65-5c51524d8f71</guid><dc:creator>naveenj</dc:creator><description>&lt;p&gt;Thanks for the info, I will look into that and see if that fixes the problem.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I am trying to update from SDK v15.3 to SDK v15.3 but with a different bootloader address.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Yes, I had taken care of the UICR region as&amp;nbsp;suggested by post. (Buffered the UICR data, modified 0x10001014 corresponding data alone and wrote back the buffered data to UICR region).&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem with bootloader relocation</title><link>https://devzone.nordicsemi.com/thread/199455?ContentTypeID=1</link><pubDate>Fri, 19 Jul 2019 08:43:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:92f71e75-6ff2-41e9-aec8-000810d5c6cd</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;It&amp;#39;s a little bit more complex now.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You can have a look at&amp;nbsp; this case:&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/44768/sdk-15-3-cannot-program-default-bootloader"&gt;https://devzone.nordicsemi.com/f/nordic-q-a/44768/sdk-15-3-cannot-program-default-bootloader&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In SDK v15.3 (Softdevice v6.1.1) the MBR doesn&amp;#39;t look into UICR first to check the bootloader start address but now it&amp;#39;s inside MBR.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The MBR is still backward compatible, so if&amp;nbsp;there is no information inside the MBR setting page, it will look into UICR.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Could you tell which legacy bootloader , softdevice and SDK you are updating from ? Or you are trying to update from SDK v15.3 to SDK v15.3 but with different bootloader address ?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Please also be aware that inside the UICR there is not only bootloader start address but other information, so you need to copy the UICR content before erasing it, and then writing it back after (except for the bootloader start address)&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem with bootloader relocation</title><link>https://devzone.nordicsemi.com/thread/199372?ContentTypeID=1</link><pubDate>Thu, 18 Jul 2019 22:48:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:244989ff-3a70-488f-b06e-b2b09c1757e5</guid><dc:creator>naveenj</dc:creator><description>&lt;p&gt;I am using SDK v15 and softdevice S132 v6.1.1.&lt;/p&gt;
&lt;p&gt;I verified with the help of nrfjprog --readcode that there is no change in the softdevice (at 0x1000), between the hex files obtained from 1. before writing the bootloader to the new location (working) and 2. after DFU, copying the new bootloader and resetting (not working).&lt;/p&gt;
&lt;p&gt;I also verified that the bootloader is being copied to the new location (0x70000) which was 0x71000 previously. Also UICR-&amp;gt;NRFFW[0] (0x10001014)&amp;nbsp;reads 0x70000.&lt;/p&gt;
&lt;p&gt;I have modified the code that copies the bootloader (&amp;quot;bl_activate()&amp;quot; in nrf_bootloader_fw_activation.c ) to include the UICR region erase and writes (from the post mentioned).&lt;/p&gt;
&lt;p&gt;Also would you like to know any differences between the above said hex files?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Problem with bootloader relocation</title><link>https://devzone.nordicsemi.com/thread/199329?ContentTypeID=1</link><pubDate>Thu, 18 Jul 2019 14:12:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:474c6109-1783-4ff5-9668-9533905665bd</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Naveenj,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Could you do a nrfjprog --readcode and read the entire hex dump of the chip ? So that we would know if the softdevice and the bootloader is copied properly or not.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Could you tell the softdevice version of the old one and the new one ? I would suggest to try to move from SDK v11 to SDK v12 as described in the guide first before trying to jump from SDK v11 to SDK v15.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>