<?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>Update firmware with DFU bootloader but only use a prefix for bootloader settings</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/119928/update-firmware-with-dfu-bootloader-but-only-use-a-prefix-for-bootloader-settings</link><description>I&amp;#39;d like to update a firmware which is essentially made of 2 parts, say 0x1000-0x8000 is a &amp;quot;read-only&amp;quot; part and 0x8000-0x50000 is a &amp;quot;read-write&amp;quot; part. If I flash this firmware using with DFU, the bootloader will store the full size (0x4f000) and the associated</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 21 Mar 2025 10:12:04 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/119928/update-firmware-with-dfu-bootloader-but-only-use-a-prefix-for-bootloader-settings" /><item><title>RE: Update firmware with DFU bootloader but only use a prefix for bootloader settings</title><link>https://devzone.nordicsemi.com/thread/528369?ContentTypeID=1</link><pubDate>Fri, 21 Mar 2025 10:12:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:04272dbd-3d59-4fc1-8269-9cd17683dc87</guid><dc:creator>ia0</dc:creator><description>&lt;p&gt;Thanks! Yes, putting the read-write part after the end of the application image is what I want to do. I currently do it by doing 2 updates (one with everything and one with only the read-only part). From the rest of your comment (the application region is updated on every DFU operation), I guess that&amp;#39;s the best possible. Thanks for the confirmation!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Update firmware with DFU bootloader but only use a prefix for bootloader settings</title><link>https://devzone.nordicsemi.com/thread/528358?ContentTypeID=1</link><pubDate>Fri, 21 Mar 2025 09:27:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:870e5ad3-df4c-4b8c-98a9-3653e0d2d3f4</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I see. The nRF52840 dongle ships with the open DFU bootloader from the nRF5 SDK. This is a variant of the nRF5 SDK secure bootloader that only requiers signed updates for the bootladoer itself, but not other components. It does however perform a CRC check at boot, and will not start the application if it has been modified.&lt;/p&gt;
&lt;p&gt;The application region in this case is everythign between the start and end of the application .hex file that you program. So if you program an application hex file that has data in what you refer to as &amp;quot;read-write&amp;quot; part, this will be checked during boot. However, if you place your &amp;quot;read-write&amp;quot; part after the end of the application image, the application will be considered valid even if you make changes there. Note that this region is not hard coded in the bootloader, but is updated on every DFU operation, and stored a metadata in the last page of the flash (where the nRF5 SDK bootloader stores the bootloader settings). (See &lt;a href="https://docs.nordicsemi.com/bundle/sdk_nrf5_v17.1.0/page/lib_bootloader.html"&gt;nRF5 SDK bootloader documentation&lt;/a&gt; for more details).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Update firmware with DFU bootloader but only use a prefix for bootloader settings</title><link>https://devzone.nordicsemi.com/thread/528200?ContentTypeID=1</link><pubDate>Thu, 20 Mar 2025 11:55:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:16d231dd-8c74-439c-bec5-2284070617a9</guid><dc:creator>ia0</dc:creator><description>&lt;p&gt;It&amp;#39;s the bootloader that was pre-installed when I bought the nRF52840-dongle (which was a long time ago). So I&amp;#39;m assuming it comes from an SDK, but I don&amp;#39;t know the version. Is the version encoded somewhere in flash?&amp;nbsp;(worst case I could dump the bootloader and compare it with all SDK bootloaders if there&amp;#39;s an easy way to download them)&lt;/p&gt;
&lt;p&gt;EDIT: By the way, another idea would be to disable the CRC validation of the application.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Update firmware with DFU bootloader but only use a prefix for bootloader settings</title><link>https://devzone.nordicsemi.com/thread/528191?ContentTypeID=1</link><pubDate>Thu, 20 Mar 2025 11:16:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:73c6172e-39d6-49c7-b4ae-a48ae79ea864</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;I am not able to make any specific suggetions without knowing more about what you are using.Are you using&amp;nbsp; a bootloader from an SDK? If so, which SDK and which bootloader(s)? Or do you have your custom bootloaders? Please elaborate.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Update firmware with DFU bootloader but only use a prefix for bootloader settings</title><link>https://devzone.nordicsemi.com/thread/528047?ContentTypeID=1</link><pubDate>Wed, 19 Mar 2025 15:06:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5b75bbb0-13a4-4fbe-895d-b9f512ee0092</guid><dc:creator>ia0</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Indeed, in theory the 0x8000-0x50000 range is another firmware, so can be considered data from the first firmware in the 0x1000-0x8000 range. From a high-level point of view, I have a bootloader in the 0x1000-0x8000 range that boots between 0x8000-0x50000 and 0x50000-0x98000. But I cannot flash just the bootloader alone because it won&amp;#39;t support updates, so I&amp;#39;m &amp;quot;packing&amp;quot; the 0x8000-0x50000 side already inside it. Maybe something that could work would be to flash 0x8000-0x50000 first then 0x1000-0x8000 but I don&amp;#39;t know how to start writing at a different address than 0x1000.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t use any SDK and I don&amp;#39;t know which bootloader version I have, but I know it starts at 0x000E0000.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Update firmware with DFU bootloader but only use a prefix for bootloader settings</title><link>https://devzone.nordicsemi.com/thread/528035?ContentTypeID=1</link><pubDate>Wed, 19 Mar 2025 14:36:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c7e3a9d5-75c7-4101-a224-879362cae9ff</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;The bootloader will normally validate the entier application slot. Are you modifying the application firmware itelf, or just some other data that could be outside of the application slot? Can you elaborate both on a higher level what you want to achieve and what you are doing? Also, which SDK version are you using, and which bootloader(s) etc?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>