<?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>Endless loop in MBR after bootloader update from SDK14.1 to SDK 15.0</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/33339/endless-loop-in-mbr-after-bootloader-update-from-sdk14-1-to-sdk-15-0</link><description>We have a project running based on the SDK 14.1 on a nRF52DK with S132 5.0. The used bootloader works as expected and also an update of the bootloader works properly. 
 After the release of SDK 15 we tried to implement the update the current bootloader</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 19 Apr 2018 14:11:32 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/33339/endless-loop-in-mbr-after-bootloader-update-from-sdk14-1-to-sdk-15-0" /><item><title>RE: Endless loop in MBR after bootloader update from SDK14.1 to SDK 15.0</title><link>https://devzone.nordicsemi.com/thread/129009?ContentTypeID=1</link><pubDate>Thu, 19 Apr 2018 14:11:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:67acb3ef-40aa-4d13-8045-fd08bdc490c3</guid><dc:creator>tesc</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Performing a &lt;strong&gt;bootloader only&lt;/strong&gt; update from SDK 14.x to SDK 15.0 does not work. This is a rare corner case, as normally one is required to update the SoftDevice along with the bootloader in order to get from SDK 14 to SDK 15.&lt;/p&gt;
&lt;p&gt;There are two cases where you can start a BL only update from SDK 14 to SDK 15:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;When one of the bootloaders are ported to use a different SoftDevice, so that both bootloaders requires the same SoftDevice. In that case BL only update becomes a valid option.&lt;/li&gt;
&lt;li&gt;If updating to a bootloader where the SoftDevice requirement has been removed, which means BL only update is a valid option.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In both situations, if you attempt a BL only update it will fail when entering the SDK 15 bootloader for the first time, with symptoms equal or similar to those described in the opening question post.&lt;/p&gt;
&lt;p&gt;We are aware of the issue, and are planning to fix it for next SDK release.&lt;/p&gt;
&lt;p&gt;The initially proposed (not production tested, use at own risk) fix is adding four lines (an &amp;quot;else if&amp;quot; statement) in nrf_bootloader_fw_activation.c of SDK 15.0, so that the beginning of the function bl_activate() reads:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;static uint32_t bl_activate(void)
{
    uint32_t         ret_val  = NRF_ERROR_INVALID_DATA;
    nrf_dfu_bank_t * p_bank   = &amp;amp;s_dfu_settings.bank_1;
    uint32_t         len      = p_bank-&amp;gt;image_size;
    uint32_t         src_addr = s_dfu_settings.progress.update_start_address;

    if (p_bank-&amp;gt;bank_code == NRF_DFU_BANK_VALID_SD_BL)
    {
        src_addr += s_dfu_settings.sd_size;
        len      -= s_dfu_settings.sd_size;
    }
    else if (src_addr == 0)
    {
        src_addr = nrf_dfu_bank1_start_addr();
    }&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Terje&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Endless loop in MBR after bootloader update from SDK14.1 to SDK 15.0</title><link>https://devzone.nordicsemi.com/thread/128687?ContentTypeID=1</link><pubDate>Tue, 17 Apr 2018 18:10:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:30fc3d42-81e0-4f25-b467-de14da45b48e</guid><dc:creator>tesc</dc:creator><description>&lt;p&gt;HI,&lt;/p&gt;
&lt;p&gt;Thank you. I suggest that we continue the discussion in the private thread, and when we find a solution you may choose to post it here.&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Terje&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Endless loop in MBR after bootloader update from SDK14.1 to SDK 15.0</title><link>https://devzone.nordicsemi.com/thread/128415?ContentTypeID=1</link><pubDate>Mon, 16 Apr 2018 09:27:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b23af284-6745-40d5-9203-87b4880163f4</guid><dc:creator>Adrian Eggenberger</dc:creator><description>&lt;p&gt;Hi Terje&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve created a private ticket with a reference to this one. The files provided there are not for the public, but I guess the results from the issue will be interesting for other Nordic uses as well.&lt;/p&gt;
&lt;p&gt;Regards Adrian&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Endless loop in MBR after bootloader update from SDK14.1 to SDK 15.0</title><link>https://devzone.nordicsemi.com/thread/128286?ContentTypeID=1</link><pubDate>Fri, 13 Apr 2018 15:51:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:56bbe522-50af-4af6-bea5-3d756964e768</guid><dc:creator>tesc</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Are you doing an upgrade from the unmodified 14.1 bootloader to the unmodified 15.0 bootloader (with exception of key pair used for signing)?&lt;/p&gt;
&lt;p&gt;If not, if for instance the bootloader size has changed then a likely scenario may be that the bootloader starts briefly, thinks that a time costly MBR operation is required, and then reboots into the MBR (so that it looks like MBR is running all of the time, but in reality it is 99 % of the time.)&lt;/p&gt;
&lt;p&gt;Not qute able to parse the MBR Params page, but it looks like a copy or compare operation involving the bootloader.&lt;/p&gt;
&lt;p&gt;I may need hex files and DFU zip file for reproducing, and/or flash hex dumps before and after DFU in order to investigate further. You can create a private ticket and post those there if confidential. (Or we can go private with this thread, if needed. Let me know.)&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Terje&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>