<?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>Bootloader only DFU failed.</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/36829/bootloader-only-dfu-failed</link><description>Hi, 
 i have some issue regarding DFU-ing the bootloader. 
 Here is my command to generate zip file: nrfutil pkg generate --hw-version 52 --bootloader-version 1 --bootloader output.hex --sd-req 0x9D --key-file private.key bootloader.zip 
 
 Now when i</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 25 Jul 2018 13:01:22 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/36829/bootloader-only-dfu-failed" /><item><title>RE: Bootloader only DFU failed.</title><link>https://devzone.nordicsemi.com/thread/141330?ContentTypeID=1</link><pubDate>Wed, 25 Jul 2018 13:01:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e8e6ad5a-1186-4e07-a802-7bf04e075201</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;No, there is no tag in this question which indicate the SDK version. In any case it seems you have found a mismatch between the documentation and implementation in SDK 14.2. You can see that from line 339-347 in &lt;code&gt;dfu_req_handling.c&lt;/code&gt;, where the bootloader and SoftDevice is required to have a higher version number:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;            case DFU_FW_TYPE_BOOTLOADER:            // fall through
            case DFU_FW_TYPE_SOFTDEVICE_BOOTLOADER:
                // updating the bootloader is stricter. There must be an increase in version number
                if (p_init-&amp;gt;fw_version &amp;lt;= fw_version)
                {
                    NRF_LOG_ERROR(&amp;quot;BL FW version too low&amp;quot;);
                    return ext_error_set(NRF_DFU_EXT_ERROR_FW_VERSION_FAILURE);
                }
                break;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;You can allow upgrading bootloader to the same version by moving line 339 (&lt;code&gt;case DFU_FW_TYPE_BOOTLOADER:&lt;/code&gt;) to above line 331.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader only DFU failed.</title><link>https://devzone.nordicsemi.com/thread/141311?ContentTypeID=1</link><pubDate>Wed, 25 Jul 2018 11:23:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a30c9fc8-f337-4373-8e5f-6beec047bb68</guid><dc:creator>schef</dc:creator><description>&lt;p&gt;I use SDK 14.1. Can&amp;#39;t you see it in the tags?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader only DFU failed.</title><link>https://devzone.nordicsemi.com/thread/141301?ContentTypeID=1</link><pubDate>Wed, 25 Jul 2018 10:28:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a9e471a3-60fa-4667-9a14-be9a180aad2b</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Which SDK version are you using?&lt;/p&gt;
&lt;p&gt;Referring to the SDK 15.0.0 implementation, you can see that the implementation of&amp;nbsp;&lt;code&gt;fw_version_ok()&lt;/code&gt; should same version to be upgraded for the bootloader (anything not application or SoftDevice):&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;static bool fw_version_ok(dfu_init_command_t const * p_init)
{
    ASSERT(p_init != NULL);
    ASSERT(p_init-&amp;gt;has_fw_version);

    if (  (p_init-&amp;gt;type == DFU_FW_TYPE_APPLICATION)
       || (p_init-&amp;gt;type == DFU_FW_TYPE_SOFTDEVICE))
    {
        return ((p_init-&amp;gt;fw_version &amp;gt;= s_dfu_settings.app_version) || !NRF_DFU_APP_DOWNGRADE_PREVENTION);
    }
    else
    {
        return  (p_init-&amp;gt;fw_version &amp;gt; s_dfu_settings.bootloader_version);
    }
}&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>