<?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  SDK6.1+SD7.1  to  SDK1+SD8</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/13755/dfu-sdk6-1-sd7-1-to-sdk1-sd8</link><description>I&amp;#39;m trying to piece together how to be able to get this migration to work OTA via DFU. I was told by Nordic that all you need is to .zip SD8 + Boot(SDK10) and DFU both to update. However these seems to fail. 
 I followed a previous posts to create the</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 25 May 2016 22:36:05 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/13755/dfu-sdk6-1-sd7-1-to-sdk1-sd8" /><item><title>RE: DFU  SDK6.1+SD7.1  to  SDK1+SD8</title><link>https://devzone.nordicsemi.com/thread/52581?ContentTypeID=1</link><pubDate>Wed, 25 May 2016 22:36:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:dd50b959-593e-4fd3-9a43-2930fde1313d</guid><dc:creator>Dave_couling</dc:creator><description>&lt;p&gt;HI Vidar,&lt;/p&gt;
&lt;p&gt;I added the BANK_UNUSED = 0xFFFFFFF to my bootloader settings on the SDK10 bootloader image.  However the upload is still not successful/&lt;/p&gt;
&lt;p&gt;The settings in my previous response are the settings stored i flash.  I obtain them via a Flash readback after the DFU.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU  SDK6.1+SD7.1  to  SDK1+SD8</title><link>https://devzone.nordicsemi.com/thread/52580?ContentTypeID=1</link><pubDate>Mon, 23 May 2016 17:22:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3a0ee50c-e9ee-4f43-80b6-66faaca6d350</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hi Dave,&lt;/p&gt;
&lt;p&gt;Sorry, could have been more clear, but was referring to the data store in flash at 0x3FC00 by the bootloader when after it failed to update sd+bl. Updated my answer to better illustrate the problem.&lt;/p&gt;
&lt;p&gt;SDK 6.1.0 supports softdevice and bootlaoder update, and I was able to do DFU from SDK 6.1.0/s110 v.7.x.x to SDK10.0.0/s110.v.8.0.0 after fixing the format issue.&lt;/p&gt;
&lt;p&gt;It is very unfortunate if it has been indicated that reloaction of the bootloader would be supported. I hope it will be ok to keep the start address, but if space becomes an issue you could switch over to single bank.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU  SDK6.1+SD7.1  to  SDK1+SD8</title><link>https://devzone.nordicsemi.com/thread/52579?ContentTypeID=1</link><pubDate>Fri, 20 May 2016 16:55:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e4461681-22e2-4712-96fd-87005f070847</guid><dc:creator>Dave_couling</dc:creator><description>&lt;p&gt;Hi Vidar,&lt;/p&gt;
&lt;p&gt;My settings are the following:
&lt;strong&gt;:10FC0000A5009D4FFF000000AC9C010018590100A9
:10FC1000944300000000000000600100FFFFFFFFB0&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I tried updating the SD + boot using SD7 and old bootloader.  But this exhibits the same behaviour.  So I can&amp;#39;t seem to get SD + Boot of any kind to work on a stock DFU code.  Was SD + Boot supported in SDK 6.1?&lt;/p&gt;
&lt;p&gt;Ok, we can compromise on not update the Bootloader start address but its not ideal.  We were informed by Nordic early in our development this would be possible on future SDKs.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU  SDK6.1+SD7.1  to  SDK1+SD8</title><link>https://devzone.nordicsemi.com/thread/52578?ContentTypeID=1</link><pubDate>Fri, 20 May 2016 11:54:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f0e2f552-c13e-4217-9130-773af158727b</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Please post the  bootloader settings data @ 0x3FC00 after updating to SDK 10.0.0. This should show whether the bootloader was able to finalize the update or not.&lt;/p&gt;
&lt;p&gt;We don&amp;#39;t have any examples demonstrating relocation of the bootloader at runtime, and I&amp;#39;m not sure if it is possible to make failsafe. I think the main problem is that you will be vulnerable to resets when changing the interrupt forwarding address to the new bootloader start address (&lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s130.sds/dita/softdevices/s130/mbr_bootloader/mbr_sd_reset_behavior.html?cp=3_6_2_0_11_2"&gt;&lt;strong&gt;SD_MBR_COMMAND_VECTOR_TABLE_BASE_SET&lt;/strong&gt;&lt;/a&gt;).  Is keeping the old start address an option? I understand it is not ideal, but not sure if there is a better alternative.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU  SDK6.1+SD7.1  to  SDK1+SD8</title><link>https://devzone.nordicsemi.com/thread/52577?ContentTypeID=1</link><pubDate>Thu, 19 May 2016 17:40:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:de70ae5e-0b2e-416d-b751-7e45b9c691cd</guid><dc:creator>Dave_couling</dc:creator><description>&lt;p&gt;What is the non-trivial way the Bootloader Address can change?     We were told me Nordic a while ago during SDK6.1 that future SDK&amp;#39;s will allow the Bootloader start address to change.   Since our Bootloader is not much smaller than it was on SDK6.1 it is very inconvenient to still use the same start address.&lt;/p&gt;
&lt;p&gt;I am not using nrf toolbox v.3.0.1 on iOS,   I&amp;#39;m using Master Control app on Android as it has the same DFU library intergrating into my app.    Yes this .zip is rejected without the JSON or .dat file.   The modified version gets rejected as well.   I have hardcoded to check the [3] element for CRC when updating SD + Boot.   This works and the images do properly upload, validate and swap.   However they do not run properly still.   I&amp;#39;ve verified via readback that these images are placed properly.  So there must be another compatibility issues with SDK 6.1 -&amp;gt; to SDK 10&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU  SDK6.1+SD7.1  to  SDK1+SD8</title><link>https://devzone.nordicsemi.com/thread/52576?ContentTypeID=1</link><pubDate>Fri, 13 May 2016 10:47:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:96fcb4e8-7931-4cac-bd03-be8cd9819e59</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Unfortunately, the bootloader address has stay the same, and is not something that can be worked around (non-trivial at least).&lt;/p&gt;
&lt;p&gt;Is the distribituin zip still being rejected if you try nrf toolbox v.3.0.1 on iOS?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU  SDK6.1+SD7.1  to  SDK1+SD8</title><link>https://devzone.nordicsemi.com/thread/52575?ContentTypeID=1</link><pubDate>Thu, 12 May 2016 22:08:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8b7a036e-08c7-452a-885a-63971047015a</guid><dc:creator>Dave_couling</dc:creator><description>&lt;p&gt;Is there any way I can update the BOOTLOADERADDR?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU  SDK6.1+SD7.1  to  SDK1+SD8</title><link>https://devzone.nordicsemi.com/thread/52574?ContentTypeID=1</link><pubDate>Thu, 12 May 2016 19:10:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:82671480-e435-49be-a4f0-9012bf03927e</guid><dc:creator>Dave_couling</dc:creator><description>&lt;p&gt;Hi Vidar,&lt;/p&gt;
&lt;p&gt;I tried your new iOS .zip  but nRF Master Control App rejects it as a valid Distributed File.   I tried updating the bootloader_settings enumeration on the  SDK10 bootloader that I try to DFU.     I believe SD upload may be successful because after the DFU I get an assert error on SOFTDEVICE_HANDLER_INIT() which makes sense with new API for this function call.&lt;/p&gt;
&lt;p&gt;However I think the main error is in the Bootloader upload.   My current bootloader starts at 0x35000 and the new SDK10 Bootloader starts at 0x3A000.  Could this cause a compatibility issue?&lt;/p&gt;
&lt;p&gt;I tried compiling the OTA image to start at 0x35000 but DFU still fails.  I verified that the SD 8 correctly uploaded via commandline readbacks.  But it appears the bootloader is not uploading or swapping correctly.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU  SDK6.1+SD7.1  to  SDK1+SD8</title><link>https://devzone.nordicsemi.com/thread/52573?ContentTypeID=1</link><pubDate>Thu, 12 May 2016 09:04:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:15c7606c-e786-4b31-b8f3-c67edff2984d</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Sorry, I uploaded the wrong .zip for ios earlier, uploaded the correct one now. Please try with one of the .zip files I attached and see if you still get the same problem.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU  SDK6.1+SD7.1  to  SDK1+SD8</title><link>https://devzone.nordicsemi.com/thread/52572?ContentTypeID=1</link><pubDate>Thu, 12 May 2016 03:49:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:81e899c4-e209-4701-82c1-e5ff6aebb0a9</guid><dc:creator>Dave_couling</dc:creator><description>&lt;p&gt;I&amp;#39;ve also checked the settings used for SD_MBR_COMMAND_COMPARE  validation and SD_MBR_COMMAND_COPY_BL.&lt;/p&gt;
&lt;p&gt;In both cases the bl_image_start = 178456 and the length variables sd_mbr_cmd.params.compare.len and sd_mbr_cmd.params.copy_bl.bl_len  correctly equal 3915   (15660/4).&lt;/p&gt;
&lt;p&gt;I tried making the init packet and json updates you mentioned, but my nRF Master Control App rejects the files and doesn&amp;#39;t allow the DFU process to even start.  So I bypass the checks for now and use the current init and json file formats.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU  SDK6.1+SD7.1  to  SDK1+SD8</title><link>https://devzone.nordicsemi.com/thread/52571?ContentTypeID=1</link><pubDate>Wed, 11 May 2016 22:42:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ed9a1476-18b7-4c79-a63a-a84db9dbd5bf</guid><dc:creator>Dave_couling</dc:creator><description>&lt;p&gt;Even if I bypass the CRC checks, the Images do not seem to update properly.  Seems to fail at the image swap and validation.   Perhaps having to do with this settings issue that is still unclear.  Thanks.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU  SDK6.1+SD7.1  to  SDK1+SD8</title><link>https://devzone.nordicsemi.com/thread/52570?ContentTypeID=1</link><pubDate>Wed, 11 May 2016 21:17:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b56e23ee-b6df-4a77-8a24-2d5ef0ff6fe4</guid><dc:creator>Dave_couling</dc:creator><description>&lt;p&gt;I will try this with the new json and init file formats.&lt;/p&gt;
&lt;p&gt;However your last note regarding changing the bootloader_bank_code_t enumeration doesn&amp;#39;t make sense as these are already the same in bootloader_types.h   between SDK6.1 and SDK10.    SDK 6.1 does not have any BANK_UNUSED      = 0xFFFFFFF  value in bootloader_bank_code_t nor any reference in any source code?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU  SDK6.1+SD7.1  to  SDK1+SD8</title><link>https://devzone.nordicsemi.com/thread/52569?ContentTypeID=1</link><pubDate>Wed, 11 May 2016 12:52:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:381caef6-40c4-4010-b67a-869f31061c9f</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;The update procedure in SDK 6.1.0 differs slightly from the bootlaoder in SDK 7 and later. Mainly that the extended init packet is not supported which causes the wrong crc value to be parsed from the init packet. So to update from this bootloader you will need to use a different distribution packet so nrftoolbox goes into &amp;quot;legacy&amp;quot; mode&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Steps to create legacy distribution packet for Android (nrftoolbox v. 1.16.3):&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Create a .zip folder with bootloader.hex and softdevice.hex.&lt;/p&gt;
&lt;p&gt;Example : &lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/sd8sdk10_5F00_android.zip"&gt;sd8sdk10_android.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Same for iOS (nrftoolbox v.3.0.1):&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Use nrf.exe as you described, but edit the manifest and .dat (CRC = last 2 bytes) file so the init packet only contains the CRC value.&lt;/p&gt;
&lt;p&gt;Eg., manifest.json:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
    &amp;quot;manifest&amp;quot;: {
        &amp;quot;dfu_version&amp;quot;: 0.5,
        &amp;quot;softdevice_bootloader&amp;quot;: {
            &amp;quot;bin_file&amp;quot;: &amp;quot;sd_bl.bin&amp;quot;,
            &amp;quot;bl_size&amp;quot;: 13172,
            &amp;quot;dat_file&amp;quot;: &amp;quot;sd_bl.dat&amp;quot;,
            &amp;quot;init_packet_data&amp;quot;: {
                 &amp;quot;firmware_crc16&amp;quot;: 32149,
             },
            &amp;quot;sd_size&amp;quot;: 88344
       }
   }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Example : &lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/sd8sdk10_5F00_ios2.zip"&gt;sd8sdk10_ios2.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Also, you will need to do a minor change in the SDK 10.0.0 bootloader to keep the same bootloader settings format as SDK 6.1.0 in flash. The bootloader_settings_t is the same for both examples, but the size of the enum is not. This will affect the location of the struct members, and cause the new bootloader to read out the wrong values from the bootlaoder settings page in flash.&lt;/p&gt;
&lt;p&gt;In the old version we had set the &amp;quot;enum as int compiler&amp;quot; option:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/8686.Capture.PNG" alt="image description" /&gt;&lt;/p&gt;
&lt;p&gt;This option is disabled in the newer SDKs, and instead of enabling it again I  added the BANK_UNUSED member.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;typedef enum
{
    BANK_VALID_APP   = 0x01,
    BANK_VALID_SD    = 0xA5,
    BANK_VALID_BOOT  = 0xAA,
    BANK_ERASED      = 0xFE,
    BANK_INVALID_APP = 0xFF,
    BANK_UNUSED      = 0xFFFFFFF,
} bootloader_bank_code_t;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is a somewhat hacky way of making all the members in this enum to have the size of an &amp;#39;int&amp;#39; to avoid affecting other enums that may be used in your project. Have only tested this with Keil.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update - the bootloader settings problem when doing DFU of BL from SDK 6.1.0 to SDK 10.0.0&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A known problem with doing bootloader update from SDK 6.1.0 to one from SDK 7.x.x or later is that &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v11.0.0/structbootloader__settings__t.html?cp=5_0_0_7_0_230"&gt;&lt;strong&gt;bootloader settings structure&lt;/strong&gt;&lt;/a&gt; is stored differently in flash because of the &amp;quot;enum contrainer always int&amp;quot; option that was used before.&lt;/p&gt;
&lt;p&gt;The picture below shows how the &amp;quot;enum contrainer always int&amp;quot; option affects the format of how the structure is stored to flash.The first line shows the result with the option enabled during SD+BL update, and the second line shows the same without it enabled (default SDK 7+). Notice the offset on every struct member after bank_0 when comparing these two.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/boot_5F00_settings.png" alt="image description" /&gt;&lt;/p&gt;
&lt;p&gt;So the problem is that the new bootloader (sdk 10.0.0) will read the wrong values from flash in the bootloader_dfu_sd_update_continue() function, hence failing to reach bootloader_dfu_sd_update_finalize() to complete the update.&lt;/p&gt;
&lt;p&gt;When I tried this with Keil it was sufficient to add BANK_UNUSED = 0xFFFFFFF to get the same format between SDK 10.0.0 and SDK 6.1.0. as I mentioned earlier. Please make sure that you do have the same format for your bootloaders so we know that this is not why it is failing at your end.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>