<?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 DFU transport - transfer of init packet</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/109211/bootloader-dfu-transport---transfer-of-init-packet</link><description>Hi, 
 I&amp;#39;m implementing flashing modul, which will be running on external mcu. Therefore for the very 1st step, I have captured traffic while performing dfu on PCA10040 via nrf util from PC. Now I&amp;#39;m wondering of the meaning of transferred bytes, since</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 22 May 2024 08:55:15 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/109211/bootloader-dfu-transport---transfer-of-init-packet" /><item><title>RE: Bootloader DFU transport - transfer of init packet</title><link>https://devzone.nordicsemi.com/thread/485328?ContentTypeID=1</link><pubDate>Wed, 22 May 2024 08:55:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:76d17ec2-dec7-48b8-a008-c38745b2581f</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hi Matej,&lt;/p&gt;
&lt;p&gt;It&amp;#39;s good to hear that things are working now. Regarding your question about dual and single bank updates, the bootloader will automatically perform a single bank update if the app is too large to fit in bank 1 as long as you have not enabled this configuration setting in your bootloader:&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1716368091839v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Vidar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader DFU transport - transfer of init packet</title><link>https://devzone.nordicsemi.com/thread/485267?ContentTypeID=1</link><pubDate>Wed, 22 May 2024 04:45:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:788ce3ef-c34b-47cd-a826-af2917f3ce7f</guid><dc:creator>Matej</dc:creator><description>&lt;p&gt;Hi Vidar,&lt;/p&gt;
&lt;p&gt;Most of things are working now, decryption and flashing etc... but I have one additional question about max app size. Bootloader is configured to use dual bank, but in case that someday application won&amp;#39;t fit in memory for dual bank I&amp;#39;m expecting to perform update using a single bank.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Now I&amp;#39;m wondering if this is done automatically, or is there need to update bootloader in case that application won&amp;#39;t fit anymore? I found some posts which are quite old (&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/10908/update-bootloader-from-dual-bank-mode-to-single-bank-mode-failed-in-sdk8-0/40782"&gt;post1, &lt;/a&gt;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/74881/dual-bank-dfu-in-nrf52832/308785"&gt;post2&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Thank you for all your support!&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Matej&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader DFU transport - transfer of init packet</title><link>https://devzone.nordicsemi.com/thread/481691?ContentTypeID=1</link><pubDate>Fri, 03 May 2024 07:38:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8ccd7904-ad7f-45a7-ba0c-10afc6f8c687</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hi Matej,&lt;/p&gt;
&lt;p&gt;I see. The bootloader is&amp;nbsp;configured to run&amp;nbsp;with&amp;nbsp;the &amp;#39;NRF_CRYPTO_BACKEND_CC310_BL_ENABLED&amp;#39; variant of the cc310 runtime library. This is a stripped down version compared to the cc310 library used in our application examples and only includes the features necessary for DFU. The full version of the library is located in&amp;nbsp;/external/nrf_cc310/lib.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Vidar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader DFU transport - transfer of init packet</title><link>https://devzone.nordicsemi.com/thread/481680?ContentTypeID=1</link><pubDate>Fri, 03 May 2024 07:18:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:88e394a5-a8b7-4c1c-82e3-3889280f753c</guid><dc:creator>Matej</dc:creator><description>&lt;p&gt;Hi Vidar,&lt;/p&gt;
&lt;p&gt;I made some initial dfu packets capture on pca10040, but for project i&amp;#39;m using nRF52840... I&amp;#39;m planning to use AES in bootloader. The scenario is following in post build step application will be encrypted since it&amp;#39;s stored in external flash. Then main MCU reads encrypted image and send it to nRF bootloader which will decrypt image.&lt;/p&gt;
&lt;p&gt;By default&amp;nbsp;NRF_CRYPTO_BACKEND_CC310_BL_ENABLED is enabled and once I&amp;#39;m trying to enable also&amp;nbsp;NRF_CRYPTO_BACKEND_CC310_ENABLED there is problem with mutex.&lt;/p&gt;
&lt;p&gt;Most probably I will implement aes-ctr independent of sdk since the most of things is now working with&amp;nbsp;&lt;span&gt;NRF_CRYPTO_BACKEND_CC310_BL_ENABLED. I have already spent quite some time around this and I&amp;#39;m not sure if there will be so much benefit for switching to CC310 and struggling with new issues, since update will be performed only few times in lifetime of product.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Best regards,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Matej&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader DFU transport - transfer of init packet</title><link>https://devzone.nordicsemi.com/thread/481670?ContentTypeID=1</link><pubDate>Fri, 03 May 2024 06:49:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e9f44282-0b0a-4247-8321-933ad8c213b9</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hi Matej,&lt;/p&gt;
&lt;p&gt;I thought you were using the nRF52832. The bootloader projects for the nRF52840 defaults to using the cc310&amp;nbsp;to take advantage of the&amp;nbsp;HW accelerated crypto services. Are you&amp;nbsp;attempting&amp;nbsp;to use AES in your application, or in the bootloader?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Vidar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader DFU transport - transfer of init packet</title><link>https://devzone.nordicsemi.com/thread/481610?ContentTypeID=1</link><pubDate>Thu, 02 May 2024 15:27:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0ab095ce-d35d-4691-991a-8f631aab8b83</guid><dc:creator>Matej</dc:creator><description>&lt;p&gt;Hi Vidar,&lt;/p&gt;
&lt;p&gt;No problem at all... I have switched from uecc to cc310_bl and used prebuild library from sdk and set bootloader settings to version 2 and now signature and verification works as expected...&lt;/p&gt;
&lt;p&gt;Unfortunately I have a new problem, with aes-ctr encryption... Since aes-ctr is supported within cc310, but once I enable both of them cc310 and cc310_bl there is problem with mutex...&lt;/p&gt;
&lt;p&gt;Do you have any suggestion how to proceed with this? Since cc310_bl is working without problem with signature and verification, most probably I will implement aes-ctr independent of sdk.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;BR,&lt;/p&gt;
&lt;p&gt;Matej&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader DFU transport - transfer of init packet</title><link>https://devzone.nordicsemi.com/thread/481551?ContentTypeID=1</link><pubDate>Thu, 02 May 2024 12:39:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fddcd275-c347-4348-8da5-045cb942a39c</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hi Matej,&lt;/p&gt;
&lt;p&gt;Sorry for the delay. I&amp;#39;ve been out of the office for a few days. Have you made any progress on this in the meantime. The byte ordering/endianess should be correct when using the default configurations.&amp;nbsp;You can test your uecc library with the BLE bootloader projects to verify if it is working or not.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Did you build the bootloader with your generated public key, and did you use the corresponding private key when signing the FW update?&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Vidar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader DFU transport - transfer of init packet</title><link>https://devzone.nordicsemi.com/thread/480600?ContentTypeID=1</link><pubDate>Thu, 25 Apr 2024 07:41:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:473e2fc7-7be1-431e-9f98-5d02ef46d5b6</guid><dc:creator>Matej</dc:creator><description>&lt;p&gt;Hi Vidar,&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;"&gt;Thank you for inputs, will check later in afternoon... &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;"&gt;In between I have also tried with required signing of app and unfortunately I hit to another issue with prevalidation.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;"&gt;Init packet is ok transferred - content match to dat file, crc response also match, but on execute command I receive response 5, since ecdsa_verify function returns 0 - meaning signature is not valid (0x8542). I&amp;#39;m using micro ECC library.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I have noticed that there is quite some posts around generating keys with some versions of nrfutil had some problems around byte order and there are also some variations how crypto library is compiled.&lt;/p&gt;
&lt;p&gt;devzone.nordicsemi.com/.../key-pair-generation-with-edcsa-secp256k1&amp;#160;&lt;/p&gt;
&lt;p&gt;devzone.nordicsemi.com/.../prevalidation-failure-on-init-packet-attempting-in-app-dfu-signature-failed-err_code-0x8542&amp;#160;&lt;/p&gt;
&lt;p&gt;Therefore I kindly ask, if you can provide generated key pair (private+public) for debugging purposes only and prebuild micro_ecc library for nrf52840, to isolate at least this part.&lt;/p&gt;
&lt;p&gt;Thank you in advance.&lt;/p&gt;
&lt;p&gt;Best&lt;span style="font-family:inherit;"&gt;e regards,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;"&gt;Matej&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader DFU transport - transfer of init packet</title><link>https://devzone.nordicsemi.com/thread/480571?ContentTypeID=1</link><pubDate>Thu, 25 Apr 2024 06:36:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:daae5f46-dbb6-4697-b580-030d6f4c4327</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;I would recommend you try to place a breakpoint at this line in your bootloader:&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1714026761806v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;to confirm if the postvalidation is being run on the first round. This is where the&amp;nbsp;hash of the receivied image is being verified. The image will not be marked as ready for activation if the validation fails.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Vidar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader DFU transport - transfer of init packet</title><link>https://devzone.nordicsemi.com/thread/480525?ContentTypeID=1</link><pubDate>Wed, 24 Apr 2024 17:42:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:388a7cb5-0682-4a28-95a3-de44ac3e4f7f</guid><dc:creator>Matej</dc:creator><description>&lt;p&gt;On first attempt, there is nothing about validation... right after crc response has jumped to 0xa80 and after that boots up like nothing happend - except that app is missing... in next try everything looks like expected.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;BR,&lt;/p&gt;
&lt;p&gt;Matej&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader DFU transport - transfer of init packet</title><link>https://devzone.nordicsemi.com/thread/480203?ContentTypeID=1</link><pubDate>Tue, 23 Apr 2024 12:21:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:654b28b6-7fb7-46d8-a6ac-78e22b2f75b8</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hi Matej,&lt;/p&gt;
&lt;p&gt;Did&amp;nbsp;the log indicate if the post-validation step&amp;nbsp;failed or passed on&amp;nbsp;your first attempt (the image hash is validated in this step)?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Vidar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader DFU transport - transfer of init packet</title><link>https://devzone.nordicsemi.com/thread/479990?ContentTypeID=1</link><pubDate>Mon, 22 Apr 2024 12:34:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8e129b81-7242-46af-9adb-2d3cf9bfb2ad</guid><dc:creator>Matej</dc:creator><description>&lt;p&gt;Hi Vidar,&lt;/p&gt;
&lt;p&gt;I have performed some additionall tests, also switched to single bank update and figured out that &amp;quot;no jump&amp;quot; or switching to new app happens in case that there is already valid application. And this shows up like at first need to perform one update to invalidate current image, the second round of updated it works properly...&lt;/p&gt;
&lt;p&gt;Attaching part of logs&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1st round - &amp;quot;Invalidating&amp;quot; app&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;info&amp;gt; nrf_dfu_serial_uart: Allocated buffer 200005B8&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_req_handler: Handle NRF_DFU_OP_CRC_GET (data)&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_req_handler: Offset:155648, CRC:0x4D88F134&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_req_handler: Request handling complete. Result: 0x1&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_serial: Sending Response: [0x3, 0x1]&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;At this point stopping at mbr&amp;#39;s reset handler 0xa80, pressing continue/play button as suggested&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;info&amp;gt; app: Inside main&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; app: In nrf_bootloader_init&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_settings: Calling nrf_dfu_settings_init()...&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_flash: Initializing nrf_fstorage_nvmc backend.&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_settings: Using settings page.&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_settings: Copying forbidden parts from backup page.&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;info&amp;gt; nrf_dfu_settings: Backing up settings page to address 0xFE000.&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; app: Enter nrf_bootloader_fw_activate&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;info&amp;gt; app: No firmware to activate.&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;info&amp;gt; app: Boot validation failed. No valid app to boot.&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; app: DFU mode because app is not valid.&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;info&amp;gt; nrf_bootloader_wdt: WDT is not enabled&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; app: in weak nrf_dfu_init_user&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; app: timer_stop (0x20000028)&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; app: timer_activate (0x20000028)&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;info&amp;gt; app: Entering DFU mode.&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; app: Initializing transports (found: 1)&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_serial_uart: serial_dfu_transport_init()&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_serial_uart: serial_dfu_transport_init() completed&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_flash: Initializing nrf_fstorage_nvmc backend.&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_validation: PB: Init packet data len: 64&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; app: Enter main loop&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;And nothing happens, app is not working, while performing same procedure once again, when I stop at at 0xa80, then I receive execute cmd response and app starts working...&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_req_handler: Handle NRF_DFU_OP_CRC_GET (data)&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_req_handler: Offset:155648, CRC:0x4D88F134&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_req_handler: Request handling complete. Result: 0x1&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_serial: Sending Response: [0x3, 0x1]&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;At this point stopping at mbr&amp;#39;s reset handler 0xa80, pressing continue/play button as suggested&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&lt;br /&gt;&amp;lt;info&amp;gt; nrf_dfu_serial_uart: Allocated buffer 200005B8&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_EXECUTE (data)&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_req_handler: Whole firmware image received. Postvalidating.&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_validation: Hash verification. start address: 0x27000, size: 0x26000&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_validation: Invalidating old application in bank 0.&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_serial: Sending Response: [0x4, 0x1]&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_settings: Writing settings...&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_settings: Erasing old settings at: 0x000FF000&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_flash: nrf_fstorage_erase(addr=0x0x000FF000, len=1 pages), queue usage: 1&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_flash: Flash erase success: addr=0x000FF000, pending 0&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_flash: nrf_fstorage_write(addr=0x000FF000, src=0x20000A44, len=896 bytes), queue usage: 1&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_flash: Flash write success: addr=0x000FF000, pending 0&lt;br /&gt;&amp;lt;info&amp;gt; nrf_dfu_settings: Backing up settings page to address 0xFE000.&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_settings: Writing settings...&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_settings: Erasing old settings at: 0x000FE000&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_flash: nrf_fstorage_erase(addr=0x0x000FE000, len=1 pages), queue usage: 1&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_flash: Flash erase success: addr=0x000FE000, pending 0&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_flash: nrf_fstorage_write(addr=0x000FE000, src=0x200006C4, len=896 bytes), queue usage: 1&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_flash: Flash write success: addr=0x000FE000, pending 0&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_req_handler: All flash operations have completed. DFU completed.&lt;br /&gt;&amp;lt;debug&amp;gt; app: Shutting down transports (found: 1)&lt;br /&gt;&amp;lt;debug&amp;gt; app: Resetting bootloader.&lt;br /&gt;&amp;lt;info&amp;gt; nrf_dfu_settings: Backing up settings page to address 0xFE000.&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.&lt;br /&gt;&amp;lt;info&amp;gt; app: Inside main&lt;br /&gt;&amp;lt;debug&amp;gt; app: In nrf_bootloader_init&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_settings: Calling nrf_dfu_settings_init()...&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_flash: Initializing nrf_fstorage_nvmc backend.&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_settings: Using settings page.&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_settings: Copying forbidden parts from backup page.&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.&lt;br /&gt;&amp;lt;info&amp;gt; nrf_dfu_settings: Backing up settings page to address 0xFE000.&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.&lt;br /&gt;&amp;lt;debug&amp;gt; app: Enter nrf_bootloader_fw_activate&lt;br /&gt;&amp;lt;debug&amp;gt; app: Valid App&lt;br /&gt;&amp;lt;debug&amp;gt; app: Enter nrf_dfu_app_continue&lt;br /&gt;&amp;lt;debug&amp;gt; app: No copy needed&lt;br /&gt;&amp;lt;debug&amp;gt; app: Setting app as valid&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_settings: Writing settings...&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_settings: Erasing old settings at: 0x000FF000&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_flash: nrf_fstorage_erase(addr=0x0x000FF000, len=1 pages), queue usage: 0&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_flash: Flash erase success: addr=0x000FF000, pending 0&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_flash: nrf_fstorage_write(addr=0x000FF000, src=0x20000A44, len=896 bytes), queue usage: 1&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_flash: Flash write success: addr=0x000FF000, pending 0&lt;br /&gt;&amp;lt;info&amp;gt; nrf_dfu_settings: Backing up settings page to address 0xFE000.&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_settings: Writing settings...&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_settings: Erasing old settings at: 0x000FE000&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_flash: nrf_fstorage_erase(addr=0x0x000FE000, len=1 pages), queue usage: 1&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_flash: Flash erase success: addr=0x000FE000, pending 0&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_flash: nrf_fstorage_write(addr=0x000FE000, src=0x200006C4, len=896 bytes), queue usage: 1&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_flash: Flash write success: addr=0x000FE000, pending 0&lt;br /&gt;&amp;lt;debug&amp;gt; app: Resetting bootloader.&lt;br /&gt;&amp;lt;info&amp;gt; nrf_dfu_settings: Backing up settings page to address 0xFE000.&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.&lt;br /&gt;&amp;lt;info&amp;gt; app: Inside main&lt;br /&gt;&amp;lt;debug&amp;gt; app: In nrf_bootloader_init&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_settings: Calling nrf_dfu_settings_init()...&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_flash: Initializing nrf_fstorage_nvmc backend.&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_settings: Using settings page.&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_settings: Copying forbidden parts from backup page.&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.&lt;br /&gt;&amp;lt;info&amp;gt; nrf_dfu_settings: Backing up settings page to address 0xFE000.&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.&lt;br /&gt;&amp;lt;debug&amp;gt; app: Enter nrf_bootloader_fw_activate&lt;br /&gt;&amp;lt;info&amp;gt; app: No firmware to activate.&lt;br /&gt;&amp;lt;debug&amp;gt; app: App is valid&lt;br /&gt;&amp;lt;warning&amp;gt; nrf_dfu_settings: No additional data erased&lt;br /&gt;&amp;lt;info&amp;gt; nrf_dfu_settings: Backing up settings page to address 0xFE000.&lt;br /&gt;&amp;lt;debug&amp;gt; nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.&lt;br /&gt;&amp;lt;debug&amp;gt; app: Running nrf_bootloader_app_start with address: 0x00001000&lt;br /&gt;&amp;lt;debug&amp;gt; app: Disabling interrupts. NVIC-&amp;gt;ICER[0]: 0x0&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;Any idea? In both cases same length and crc are calculated.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;Thank you for additional inputs.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;Best regards,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;Matej&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader DFU transport - transfer of init packet</title><link>https://devzone.nordicsemi.com/thread/479591?ContentTypeID=1</link><pubDate>Fri, 19 Apr 2024 06:23:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e1ae5701-c745-43fd-a9a1-ec36fa40c008</guid><dc:creator>Matej</dc:creator><description>&lt;p&gt;Not completly sure (will perform detail test in afternoon), if I&amp;#39;m not wrong I have tried and it seems like reset occur and bootloader boots up normally like nothing happend an previous/old application is booted...&lt;/p&gt;
&lt;p&gt;When I perform flash readout - the new image is stored at 0x4d000 and completely the same as was sent over, on 0x27000 is old application which boots up&lt;/p&gt;
&lt;p&gt;I&amp;#39;m expecting at least a message like whole firmware image is received, but in this case nothing. Are there any differencies how last execute CMD is processed?&lt;/p&gt;
&lt;p&gt;Any idea how to proceed?&lt;/p&gt;
&lt;p&gt;BR,&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;"&gt;Matej&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader DFU transport - transfer of init packet</title><link>https://devzone.nordicsemi.com/thread/479587?ContentTypeID=1</link><pubDate>Fri, 19 Apr 2024 05:59:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4882a5d9-7d9f-42ad-b249-a402ae87e3ab</guid><dc:creator>Vidar Berg</dc:creator><description>[quote user="Matej"]In case that image is valid and sending algorithm is completly the same, I don&amp;#39;t get a message that whole firmware is received and bootloader stops at 0xa80[/quote]
&lt;p&gt;0xA80 is the address of the mbr&amp;#39;s reset handler, and the program should not hang there unless you have this breakpoint enabled in SES:&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1713506328064v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;Have you tried to see what happens if you continue execution by pressing the &amp;#39;play&amp;#39; button in SES?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Vidar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader DFU transport - transfer of init packet</title><link>https://devzone.nordicsemi.com/thread/479581?ContentTypeID=1</link><pubDate>Fri, 19 Apr 2024 04:50:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0e02ed72-d954-4a42-bde8-eac5512ad720</guid><dc:creator>Matej</dc:creator><description>&lt;p&gt;True, there was an error of sending one 64 byte to much within 4k chunks.&lt;/p&gt;
&lt;p&gt;I made a bit of rework and I&amp;#39;m able to transffer image, but at the end of transfer when I send out execute cmd I have a bit weird situation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In case that image is not valid I receive a message that whole firmware image is received, but hash verfication failed - it seems ok, since hash is not matching&lt;/li&gt;
&lt;li&gt;In case that image is valid and sending algorithm is completly the same, I don&amp;#39;t get a message that whole firmware is received and bootloader stops at 0xa80&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1713501687082v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;Would you be please so kind and check attached logs? Where is the reason that I don&amp;#39;t get any response on execute command in case that image transfer is valid? I have also performed readout and images are completly the same and in both cases I see with logic analyzer that execute cmd (0x04, 0xc0) is sent out.&lt;/p&gt;
&lt;p&gt;Thank you for your support!&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Matej&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/dfu_5F00_log_5F00_hangs.log"&gt;devzone.nordicsemi.com/.../dfu_5F00_log_5F00_hangs.log&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/dfu_5F00_log_5F00_hash.log"&gt;devzone.nordicsemi.com/.../dfu_5F00_log_5F00_hash.log&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader DFU transport - transfer of init packet</title><link>https://devzone.nordicsemi.com/thread/479434?ContentTypeID=1</link><pubDate>Thu, 18 Apr 2024 12:45:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:03c2ba7c-781d-44a3-98d9-6e713b82067d</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hi Matej,&lt;/p&gt;
&lt;p&gt;The error below suggests that the bootloader is receiving a packet that is too large:&lt;/p&gt;
[quote user="Matej"]&amp;lt;error&amp;gt; nrf_dfu_req_handler: Write request too long[/quote]
&lt;p&gt;There is also this one that indicates that it is receiving packets that are &amp;gt;64 bytes:&lt;/p&gt;
[quote user="Matej"]&amp;lt;debug&amp;gt; nrf_dfu_flash: nrf_fstorage_write(addr=0x0004F040, src=0x2000063C, len=129 bytes), queue usage: 1[/quote]
&lt;p&gt;Does your client verify that the reported CRC during DFU is correct?&lt;/p&gt;
&lt;p&gt;BR,&lt;/p&gt;
&lt;p&gt;Vidar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader DFU transport - transfer of init packet</title><link>https://devzone.nordicsemi.com/thread/479327?ContentTypeID=1</link><pubDate>Thu, 18 Apr 2024 05:06:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7fd89772-2ba0-4caa-ac69-df809a9c3d6c</guid><dc:creator>Matej</dc:creator><description>&lt;p&gt;Hi Vidar,&lt;/p&gt;
&lt;p&gt;I was a bit to fast with reseting and didn&amp;#39;t check for execute response; and then i noticed that there is hash error... now I have reworked quite some things... and when I&amp;#39;m sending 64 byte long chunks, now I&amp;#39;m getting an error that allocating buffer has failed.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Any idea? I&amp;#39;m attaching bootloader log:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;info&amp;gt; nrf_dfu_serial_uart: Allocated buffer 20000530&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_flash: nrf_fstorage_write(addr=0x0004EFC0, src=0x2000063C, len=64 bytes), queue usage: 1&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_flash: Flash write success: addr=0x0004EFC0, pending 0&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_req_handler: Request handling complete. Result: 0x1&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;info&amp;gt; nrf_dfu_serial_uart: Allocated buffer 20000638&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;error&amp;gt; nrf_dfu_req_handler: Write request too long&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_req_handler: Request handling complete. Result: 0x3&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;warning&amp;gt; nrf_dfu_serial: DFU request completed with result: 0x3&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;info&amp;gt; nrf_dfu_serial_uart: Allocated buffer 20000638&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_req_handler: Handle NRF_DFU_OP_CRC_GET (data)&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_req_handler: Offset:8192, CRC:0x9C7914AB&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_req_handler: Request handling complete. Result: 0x1&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_serial: Sending Response: [0x3, 0x1]&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;info&amp;gt; nrf_dfu_serial_uart: Allocated buffer 20000638&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_EXECUTE (data)&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_serial: Sending Response: [0x4, 0x1]&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_req_handler: Request handling complete. Result: 0x1&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; app: timer_stop (0x20000028)&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; app: timer_activate (0x20000028)&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;info&amp;gt; nrf_dfu_serial_uart: Allocated buffer 20000638&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_SELECT (data)&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_req_handler: crc = 0x9C7914AB, offset = 0x2000, max_size = 0x1000&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_req_handler: Request handling complete. Result: 0x1&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_serial: Sending Response: [0x6, 0x1]&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;info&amp;gt; nrf_dfu_serial_uart: Allocated buffer 20000638&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_CREATE (data)&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_flash: nrf_fstorage_erase(addr=0x0x0004F000, len=1 pages), queue usage: 1&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_flash: Flash erase success: addr=0x0004F000, pending 0&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_req_handler: Creating object with size: 4096. Offset: 0x00002000, CRC: 0x9C7914AB&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_req_handler: Request handling complete. Result: 0x1&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_serial: Sending Response: [0x1, 0x1]&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;error&amp;gt; nrf_dfu_serial_uart: Failed to allocate buffer&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_flash: nrf_fstorage_write(addr=0x0004F000, src=0x2000063C, len=64 bytes), queue usage: 1&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_flash: Flash write success: addr=0x0004F000, pending 0&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_req_handler: Request handling complete. Result: 0x1&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;info&amp;gt; nrf_dfu_serial_uart: Allocated buffer 20001DF0&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_WRITE (data)&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;debug&amp;gt; nrf_dfu_flash: nrf_fstorage_write(addr=0x0004F040, src=0x2000063C, len=129 bytes), queue usage: 1&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;error&amp;gt; app: Received a fault! id: 0x00004002, pc: 0x00000000, info: 0x2003FF48&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;error&amp;gt; nrf_dfu_serial_uart: Failed to allocate buffer&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;&amp;lt;error&amp;gt; nrf_dfu_serial_uart: Failed to allocate buffer&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span style="font-size:inherit;"&gt;Thank you in advance!&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span style="font-size:inherit;"&gt;BR,&lt;br /&gt;Matej&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader DFU transport - transfer of init packet</title><link>https://devzone.nordicsemi.com/thread/478039?ContentTypeID=1</link><pubDate>Wed, 10 Apr 2024 11:50:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9cba7d40-d0fc-41ea-85a6-1f3d8e1a9f4a</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hello&amp;nbsp;&lt;span&gt;Matej,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The new app should be activated automatically after the last&amp;nbsp;&lt;a title="Execute request" href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.0.2/lib_dfu_transport.html?cp=9_5_0_3_5_2_0_4#lib_dfu_transport_op_execute"&gt;Execute request&lt;/a&gt;. I recommend you enable logging over RTT from the target bootloader to see if there are any errors reported during the pre- or post-validation step.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Best regards,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Vidar&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader DFU transport - transfer of init packet</title><link>https://devzone.nordicsemi.com/thread/477920?ContentTypeID=1</link><pubDate>Wed, 10 Apr 2024 03:22:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:26b771bb-52cd-40e4-a017-a50ddbc307a4</guid><dc:creator>Matej</dc:creator><description>&lt;p&gt;Hello Vidar,&lt;/p&gt;
&lt;p&gt;I have managed to transfer image and it boots up if I have flashed only bootloader and softdevice. If I have also application, then always old application boots up.&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1712719214127v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;If I refer to picture above - I&amp;#39;m at the state in the middle column... Is there any command that needs to be sent over to actually switch/replace old application with the new one?&lt;/p&gt;
&lt;p&gt;Thank you and best regards,&lt;/p&gt;
&lt;p&gt;Matej&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader DFU transport - transfer of init packet</title><link>https://devzone.nordicsemi.com/thread/477240?ContentTypeID=1</link><pubDate>Fri, 05 Apr 2024 07:46:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:29cdb3d8-2635-4245-8fc6-a8804c7a865c</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hello Matej,&lt;/p&gt;
&lt;p&gt;The content of the update is transparent to the sender. It is the bootloader that know where to place the image in flash based on the update type specified in the transferred init command (the *.dat file). The DFU controller cannot instruct the DFU target to place the image at a specific address.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Vidar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader DFU transport - transfer of init packet</title><link>https://devzone.nordicsemi.com/thread/477055?ContentTypeID=1</link><pubDate>Thu, 04 Apr 2024 10:19:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5d93091c-774d-4ae3-969c-5d225a33eaab</guid><dc:creator>Matej</dc:creator><description>&lt;p&gt;Hello Vidar,&lt;/p&gt;
&lt;p&gt;This is the case why I was wondering for protocol documentation and request sequence...&lt;/p&gt;
&lt;p&gt;As mentioned I&amp;#39;m implementing dfu flashing on external MCU via UART. Therefore I&amp;#39;m interested in packets description at least a list of min required requests.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I have checked about following commands; ping, get mtu, and set receipt notification and I think its everything clear...&lt;/p&gt;
&lt;p&gt;Now I&amp;#39;m wondering of usage of select, create, write and execute... Could you please provide me a bit info how app/SD is selected, is there option to define also start address?&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;"&gt;Thank you for support.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;"&gt;Best regards,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;"&gt;Matej&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader DFU transport - transfer of init packet</title><link>https://devzone.nordicsemi.com/thread/477007?ContentTypeID=1</link><pubDate>Thu, 04 Apr 2024 06:28:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bc19ead6-407d-4017-af21-e49b4f2c7bec</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hello Matej,&lt;/p&gt;
&lt;p&gt;The object_type should probably have been declared as a uint8_t to indicate that it&amp;#39;s only 1 byte. As&amp;nbsp;shown in the code snippet below, we extract the object type from the second byte of the request.&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1712212085322v2.png" alt=" " /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Vidar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader DFU transport - transfer of init packet</title><link>https://devzone.nordicsemi.com/thread/476989?ContentTypeID=1</link><pubDate>Wed, 03 Apr 2024 21:13:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:024adf50-a78d-47e7-a8ef-22786cdcdce5</guid><dc:creator>Matej</dc:creator><description>&lt;p&gt;Hello Vidar,&lt;/p&gt;
&lt;p&gt;thank you for your reply. Sorry for a bit of delay. Now I&amp;#39;,m back and looking forward to understand communication protocol. Now I&amp;#39;m wondering about following request:&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:63px;max-width:367px;" height="63" src="https://devzone.nordicsemi.com/resized-image/__size/734x126/__key/communityserver-discussions-components-files/4/pastedimage1712178181680v1.png" width="367" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;it seems that this is create request according to&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1712178310113v2.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;but according to struct description&amp;nbsp;two arguments of type of uint32_t are expected&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1712178499217v3.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;but this somehow does not match with captured traffic (flashing blinky example via nrfutil) - or did I missed something?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thank you for your reply.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Matej&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader DFU transport - transfer of init packet</title><link>https://devzone.nordicsemi.com/thread/473892?ContentTypeID=1</link><pubDate>Thu, 14 Mar 2024 13:52:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:049aed77-bd21-42ce-b690-38fbc28003f9</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;span&gt;Matej,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The message sequence chart shows the required requests to perform an update. However, this doesn&amp;#39;t mean the controller can&amp;#39;t send other requests, such as a ping request, before starting the transfer.&lt;/p&gt;
[quote user="Matej"]&lt;p&gt;On &amp;quot;Get MTU&amp;quot; request 0x07, 0xC0, i get response:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;0x60 (indicating response)&lt;/li&gt;
&lt;li&gt;0x07 (get mtu rsp)&lt;/li&gt;
&lt;li&gt;0x01, 0x83 (size)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;0x00 status?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;0xc0 (slip end)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;[/quote]
&lt;p&gt;0x1 is the response code and corresponds it to&amp;nbsp;&lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.1.0/group__sdk__nrf__dfu__req__handler.html#gga654d8446f2996253016f7c7713124094a8934202d8cf397e2fcc76dcef027e602"&gt;NRF_DFU_RES_CODE_SUCCESS&lt;/a&gt;. The MTU size is 0x0083 = 131 bytes.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Best regards,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;Vidar&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader DFU transport - transfer of init packet</title><link>https://devzone.nordicsemi.com/thread/473760?ContentTypeID=1</link><pubDate>Thu, 14 Mar 2024 06:45:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d2cce145-2778-481e-948a-a15c28879ff1</guid><dc:creator>Matej</dc:creator><description>&lt;p&gt;Vidar, thank you, for your response.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I see, there are listed different OpCodes, for several requests. Is there any list of requests order (collected at one place), that needs to be sent for successful update?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;What is the timeout between request, before dfu is aborted?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;On &amp;quot;Get MTU&amp;quot; request 0x07, 0xC0, i get response:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;0x60 (indicating response)&lt;/li&gt;
&lt;li&gt;0x07 (get mtu rsp)&lt;/li&gt;
&lt;li&gt;0x01, 0x83 (size)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;0x00 status?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;0xc0 (slip end)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;while on ping req i get response i get&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;0x60 (indicating response)&lt;/li&gt;
&lt;li&gt;0x09 (ping request)&lt;/li&gt;
&lt;li&gt;0x01 ping id&lt;/li&gt;
&lt;li&gt;0x01 &lt;strong&gt;status?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;0xc0 (slip end)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now i&amp;#39;m wondering about bold status bytes? are those really status or something else? where can i find byte-to-byte overview?&lt;/p&gt;
&lt;p&gt;Thank you in advance for additional support&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Matej&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>