<?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>DFU - Bootloader fails to complete update with error &amp;#39;Request to copy BL failed&amp;#39;</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/41117/dfu---bootloader-fails-to-complete-update-with-error-request-to-copy-bl-failed</link><description>Hello! 
 We&amp;#39;ve written a custom bootloader (based off the secure_serial_dfu example), that uses SPI instead of serial communication. I can successfully update an Application using this custom bootloader, but when I attempt to update the bootloader itself</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 11 Jun 2019 08:55:58 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/41117/dfu---bootloader-fails-to-complete-update-with-error-request-to-copy-bl-failed" /><item><title>RE: DFU - Bootloader fails to complete update with error 'Request to copy BL failed'</title><link>https://devzone.nordicsemi.com/thread/191967?ContentTypeID=1</link><pubDate>Tue, 11 Jun 2019 08:55:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5e03093f-efd4-49be-a871-9cc0d24f2179</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;In new softdevice (v6.1.1) we has updated the MBR so it will use the&amp;nbsp;&lt;span&gt;NRF_MBR_PARAMS_PAGE_ADDRESS&amp;nbsp; to store the bootloader location and setting instead of UICR. But it&amp;#39;s still backward compatible, it will check the UICR if the MBR param page is empty.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU - Bootloader fails to complete update with error 'Request to copy BL failed'</title><link>https://devzone.nordicsemi.com/thread/191688?ContentTypeID=1</link><pubDate>Fri, 07 Jun 2019 14:58:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f071407e-695d-425e-853c-ba7f73ef2d7f</guid><dc:creator>Anne van Rossum</dc:creator><description>&lt;p&gt;What&amp;#39;s the purpose of NRF_MBR_PARAMS_PAGE_ADDRESS if it needs to be set in UICR anyway?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU - Bootloader fails to complete update with error 'Request to copy BL failed'</title><link>https://devzone.nordicsemi.com/thread/160052?ContentTypeID=1</link><pubDate>Mon, 03 Dec 2018 16:00:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d96b0c3e-2681-46e0-b3a3-4ecc4d1d5e81</guid><dc:creator>rjdunn</dc:creator><description>&lt;p&gt;Thanks for your reply!&lt;/p&gt;
&lt;p&gt;For the step you are asking about (&amp;#39;&lt;span&gt;Upload the concatenated binary to our custom board&amp;#39;s Flash&amp;#39;), I&amp;#39;m using X-Modem to transfer a binary containing INIT_PACKET+BL_IMAGE to the NVM of the custom board. A task running on the host chip of the custom board then starts the DFU process. Next, via SPI, it transfers the Init Packet first, then the BL Image, to the NRF52. For each of these transfers the task runs through the sequence of operations defined&amp;nbsp;&lt;a title="DFU Message Sequence Charts" href="https://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.sdk5.v15.0.0%2Flib_dfu_transport_serial.html&amp;amp;anchor=lib_dfu_transport_serial_msc"&gt;here&lt;/a&gt;.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The changes made to the secure_serial Bootloader were mostly related to SPI functionality, and removal of serial functionality. Otherwise, they are very similar.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;With regard to NRF_UICR_MBR_PARAMS_PAGE_ADDRESS, I see that in the file&amp;nbsp;&lt;strong&gt;dfu_settings.c&lt;/strong&gt;, the variable &amp;#39;m_uicr_mbr_params_page_address&amp;#39; is&amp;nbsp;set to&amp;nbsp;NRF_MBR_PARAMS_PAGE_ADDRESS which is 0x7E000, Also I&amp;#39;ve confirmed that this address is still 0x7E000 during runtime, by printing it when the error occurs. Same for the start-address of the bootloader (NRF_UICR_BOOTLOADER_START_ADDRESS).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I may be mistaken but is the linker file responsible for writing the correct values to these addresses? I have attached my linker file here, as perhaps there is an issue with it that I&amp;#39;m not aware of. Again, it is the same file as that used in the secure_serial_dfu example.&lt;/p&gt;
&lt;p&gt;Do you know if it is required to build the bootloader settings.hex and&amp;nbsp;concat it with the BL for the DFU of the BL to work? I haven&amp;#39;t seen this specified anywhere, but just wondering if this is the missing piece.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Lastly, which file is the code snippet you posted in? I have searched the entire SDK for the vars &amp;#39;&lt;span&gt;m_check_copy_bl_params&amp;#39;, and &amp;#39;EMPTY_FLASH_BITMAP&amp;#39;, and they cannot be found..&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thanks again for your help&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/secure_5F00_dfu_5F00_serial_5F00_gcc_5F00_nrf52.ld"&gt;devzone.nordicsemi.com/.../secure_5F00_dfu_5F00_serial_5F00_gcc_5F00_nrf52.ld&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU - Bootloader fails to complete update with error 'Request to copy BL failed'</title><link>https://devzone.nordicsemi.com/thread/159994?ContentTypeID=1</link><pubDate>Mon, 03 Dec 2018 14:20:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:da082ea7-9503-40ac-b7d0-30ddb5d09656</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Could you let me know what exactly you did at this step &amp;quot;&lt;span&gt;- Upload the concatenated binary to our custom board&amp;#39;s Flash&amp;quot; ?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;So the binary image of the bootloader is not transferred via SPI ? &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Do you transfer the init data ?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I assume that you has made quite a significant change in the bootloader ? &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;We would need to have a look at your code to figure out what could be wrong here.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;But have you made sure you written to&amp;nbsp;NRF_UICR_MBR_PARAMS_PAGE_ADDRESS (UICR.NRFFW[1]) the address for MBR parameter ?&amp;nbsp;NRF_MBR_PARAMS_PAGE_ADDRESS by default at 0x7E000. This value need to be written to&amp;nbsp;NRF_UICR_MBR_PARAMS_PAGE_ADDRESS&amp;nbsp;. If you use other address you need to write that into the UICR.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The address of the bootloader need to be written in&amp;nbsp;NRF_UICR_BOOTLOADER_START_ADDRESS as well.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I attached is the snippet of the code in the MBR, most likely it&amp;#39;s the&amp;nbsp;NRF_UICR_MBR_PARAMS_PAGE_ADDRESS was not pointing to correct location.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " height="173" src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/support-attachments/beef5d1b77644c448dabff31668f3a47-5f63c03aaf05476e88d5870921b76dfd/MBR.JPG" width="692" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;m_check_copy_bl_params wouldn&amp;#39;t return NOMEM.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>