<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: MKW41Z Thread commissioning issue with fsci bootloader in Wireless MCU</title>
    <link>https://community.nxp.com/t5/Wireless-MCU/MKW41Z-Thread-commissioning-issue-with-fsci-bootloader/m-p/1153671#M10149</link>
    <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Just to confirm, when you deploy your example with the HCD, did you make sure that you made the linker file changes mentioned in the BLE Application Developer's Guide? When using the fsci_bootloader you must change the linker file configuration of the project, if you did not make those changes there might be some memory issues , could you please check that and confirm ?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;Estephania&lt;/P&gt;</description>
    <pubDate>Tue, 15 Sep 2020 20:27:41 GMT</pubDate>
    <dc:creator>stephanie_m</dc:creator>
    <dc:date>2020-09-15T20:27:41Z</dc:date>
    <item>
      <title>MKW41Z Thread commissioning issue with fsci bootloader</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/MKW41Z-Thread-commissioning-issue-with-fsci-bootloader/m-p/1149803#M10115</link>
      <description>&lt;P&gt;&lt;!-- StartFragment  --&gt;&lt;/P&gt;&lt;DIV&gt;&lt;SPAN&gt;Greetings:&lt;BR /&gt;I am building a Thread based sensor network using the MKW41Z parts.&lt;BR /&gt;There are SED endpoints, and a Host Controlled Device attached to a Linux&lt;BR /&gt;host via the serial port. I am using the 2.2.2 version of the SDK,&lt;BR /&gt;though I first noticed this issue with 2.2.1.&lt;BR /&gt;&lt;BR /&gt;Generally, things are working the way they should. The HCD is&lt;BR /&gt;pretty close to the vanilla example provided in the projects. But&lt;BR /&gt;I want to make the HCD upgradeable, using the fsci bootloader.&lt;BR /&gt;I modified the HCD loader file, and was able to successfully upgrade&lt;BR /&gt;the firmware. My SED devices that were previously commissioned, continued&lt;BR /&gt;to work after the HCD firmware was upgraded. However, if I tried to&lt;BR /&gt;commission a new device, the code did not work.&lt;BR /&gt;&lt;BR /&gt;I have traced this down, I think, to the thread library, which makes a&lt;BR /&gt;read cycle to the interrupt vector table. With the default HCD code&lt;BR /&gt;(which runs without a bootloader), the read (from address 0x0000001c)&lt;BR /&gt;returns a value of 0, which seems to satisfy the library, and everthing&lt;BR /&gt;works. With the fsci bootloader, the IVT is filled with default&lt;BR /&gt;vectors, and the value returned is not 0, and the library does not&lt;BR /&gt;seem to start the DTLS session necessary to commision the new endpoint.&lt;BR /&gt;&lt;BR /&gt;I set a breakpoint on the read to 0x000001c, and it is coming from a&lt;BR /&gt;routine named "IP6_Service". From the assembly language, it looks like perhaps&lt;BR /&gt;it is expecting a non-zero pointer from the "IP_IF_GetAddressDataStruct6" function,&lt;BR /&gt;and indexing 0x1c (28) off of that value. But when it gets a 0 pointer, it ends&lt;BR /&gt;up reading from the IVT (my speculation, can't really tell without the&lt;BR /&gt;library source).&lt;BR /&gt;&lt;BR /&gt;Even when the code works (i.e. no boot loader), the read is still happening,&lt;BR /&gt;but the HCD code plugs "0x0" into the IVT. I hacked the fsci bootloader&lt;BR /&gt;to place 0xffffffff into the 0x1c address, and things work okay as well.&lt;BR /&gt;For now, I'll make the IVT at 0x1c be 0, to match the non-bootloader hcd code&lt;BR /&gt;&lt;BR /&gt;Just wondering if anyone else has observed this issue? My thinking is&lt;BR /&gt;that the library should protect itself better against NULL pointers, of&lt;BR /&gt;course. But is there some configuration I should use to bypass this issue?&lt;BR /&gt;Seems somehow related to IPV6, should I disable (worried other things&lt;BR /&gt;might break)?&lt;BR /&gt;&lt;BR /&gt;Thanks!&lt;BR /&gt;Mike Lundberg&lt;/SPAN&gt;&lt;/DIV&gt;&lt;P&gt;&lt;!-- EndFragment  --&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 07 Sep 2020 16:09:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/MKW41Z-Thread-commissioning-issue-with-fsci-bootloader/m-p/1149803#M10115</guid>
      <dc:creator>michaellundberg</dc:creator>
      <dc:date>2020-09-07T16:09:45Z</dc:date>
    </item>
    <item>
      <title>Re: MKW41Z Thread commissioning issue with fsci bootloader</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/MKW41Z-Thread-commissioning-issue-with-fsci-bootloader/m-p/1152336#M10140</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If I understand correctly you have already a network with some nodes , but at a certain point when you have your network and try to add a new device this fails, is this correct?&lt;/P&gt;&lt;P&gt;If this is the case , have you checked the memory ? It is possible that device is getting out of memory depending on you application size and how many devices you have already in your network, in the release notes of the SDK you will fin the footprint for most of the examples, considering that you have the library footprint + the fsci bootloader + your application + the routing table of the network it can be possible that the device is going out of memory.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;About the source code of the libraries, I apologize but we do not share the source code of the pre-compiled libraries&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;regards,&lt;BR /&gt;Estephania&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 11 Sep 2020 22:52:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/MKW41Z-Thread-commissioning-issue-with-fsci-bootloader/m-p/1152336#M10140</guid>
      <dc:creator>stephanie_m</dc:creator>
      <dc:date>2020-09-11T22:52:09Z</dc:date>
    </item>
    <item>
      <title>Re: MKW41Z Thread commissioning issue with fsci bootloader</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/MKW41Z-Thread-commissioning-issue-with-fsci-bootloader/m-p/1153028#M10145</link>
      <description>&lt;P&gt;&lt;!--   StartFragment    --&gt;&lt;/P&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;Hi Estephania!&lt;BR /&gt;Thank you for your response to my issue.&lt;BR /&gt;&lt;BR /&gt;I do understand that you don't share the Thread Library source, no problem.&lt;BR /&gt;&lt;BR /&gt;While your understanding of what I described is correct, I only mentioned&lt;BR /&gt;that previously commissioned nodes worked to show that the HCD was&lt;BR /&gt;generally operational, outside of commissioning. If I start with no&lt;BR /&gt;existing commissioned endpoints, and try only to commission the first one,&lt;BR /&gt;it fails to commission.&lt;BR /&gt;&lt;BR /&gt;When I first hit this problem, I spent more days than I'd like to admit&lt;BR /&gt;looking at memory, because to build the upgradeable HCD, I had to relocate&lt;BR /&gt;the HCD application to make room for the fsci bootloader. Eventually,&lt;BR /&gt;I discovered that if I erased the device, then only installed the relocated&lt;BR /&gt;HCD code from MCUExpresso, and ran it, commissioning worked correctly.&lt;BR /&gt;If I installed the bootloader along with the HCD application, then&lt;BR /&gt;commissioning would not work, even though I started from MCUExpresso,&lt;BR /&gt;and the bootloader never ran.&lt;BR /&gt;&lt;BR /&gt;I installed smaller and smaller pieces of the fsci bootloader, until&lt;BR /&gt;I was only installing a very small piece of the IVT. It narrowed&lt;BR /&gt;down to that 0x0000001c location: If 0xf1 at 0x0000001c, commissioning&lt;BR /&gt;would fail. If 0x0, or 0xff at 0x0000001c, commissioning would work.&lt;BR /&gt;&lt;BR /&gt;This failure can be reproduced with the sample code. If you build&lt;BR /&gt;a router-eligible-device, and a end-device, and put them each&lt;BR /&gt;on a FRDM_KW41Z (I actually use the Rigado R41Z), you can use&lt;BR /&gt;"thr create" on the REED and "thr join" on the ED, and the endpoint&lt;BR /&gt;joins. But if you modify that 0x0000001c location on the REED, by writing&lt;BR /&gt;0xf1 into it (just like the fsci boot loader has), then the&lt;BR /&gt;endpoint will not be able to join the thread network, because commissioning&lt;BR /&gt;won't work.&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;You can add a "watchpoint" at 0x0000001c after creating the network&lt;BR /&gt;(make sure to&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;check "read", not write), in MCUExpresso, to see the issue.&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;The Thread Library appears to me to be mistakenly accessing the&lt;BR /&gt;Interrupt Vector Table, and behaving differently depending upon what&lt;BR /&gt;it reads back. If I'm right that this is a bug, I guess I'm looking for two things:&lt;BR /&gt;1) If possible, someone can confirm the Thread Library bug, and maybe fix it.&lt;BR /&gt;2) Let others know about this issue, in case they face the same problem.&lt;BR /&gt;&lt;BR /&gt;Thank you for your attention, and your suggestions. I want to say that&lt;BR /&gt;I am very impressed with the capabilities of the source code that NXP/Kinetis&lt;BR /&gt;provides. Also, having these forums to discuss issues is great!&lt;BR /&gt;&lt;BR /&gt;Thanks!&lt;BR /&gt;Mike Lundberg&lt;/SPAN&gt;&lt;/DIV&gt;&lt;P&gt;&lt;!--   EndFragment    --&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 14 Sep 2020 19:07:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/MKW41Z-Thread-commissioning-issue-with-fsci-bootloader/m-p/1153028#M10145</guid>
      <dc:creator>michaellundberg</dc:creator>
      <dc:date>2020-09-14T19:07:43Z</dc:date>
    </item>
    <item>
      <title>Re: MKW41Z Thread commissioning issue with fsci bootloader</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/MKW41Z-Thread-commissioning-issue-with-fsci-bootloader/m-p/1153671#M10149</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Just to confirm, when you deploy your example with the HCD, did you make sure that you made the linker file changes mentioned in the BLE Application Developer's Guide? When using the fsci_bootloader you must change the linker file configuration of the project, if you did not make those changes there might be some memory issues , could you please check that and confirm ?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;Estephania&lt;/P&gt;</description>
      <pubDate>Tue, 15 Sep 2020 20:27:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/MKW41Z-Thread-commissioning-issue-with-fsci-bootloader/m-p/1153671#M10149</guid>
      <dc:creator>stephanie_m</dc:creator>
      <dc:date>2020-09-15T20:27:41Z</dc:date>
    </item>
    <item>
      <title>Re: MKW41Z Thread commissioning issue with fsci bootloader</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/MKW41Z-Thread-commissioning-issue-with-fsci-bootloader/m-p/1154232#M10153</link>
      <description>&lt;P&gt;Hi Estephania!&lt;BR /&gt;Again, thanks for your patience and your help.&lt;/P&gt;&lt;P&gt;I'm working with Thread, not BLE (though I understand that much of&lt;BR /&gt;the information can be applicable to both). So I followed&lt;BR /&gt;"Kinetis Thread Stack and FSCI Bootloader Quick Start Guide".&lt;BR /&gt;In section 1.4, it says "The user is requested to overwrite&lt;BR /&gt;MKW41Z512xxx4_connectivity.ld with the one under&lt;BR /&gt;boards\frdmkw41z\wireless_examples\thread\reed_ota_client\freertos."&lt;BR /&gt;That is what I did. I've attached the original (no_bl...) and the&lt;BR /&gt;modified (bl...) loader files.&lt;/P&gt;&lt;P&gt;My understanding is that the fsci bootloader, when working normally,&lt;BR /&gt;jumps to the application, and consumes 0 Ram space (i.e. any ram used&lt;BR /&gt;by the bootloader is overwritten by the application). Of course,&lt;BR /&gt;the bootloader does take some flash space, and the HCD application is&lt;BR /&gt;displaced to make room. But even then, I think there is still 100K&lt;BR /&gt;of extra flash space.&lt;/P&gt;&lt;P&gt;The difference that I see is that in main.c, the fsci boot loader fills the&lt;BR /&gt;the IVT with pointers to various interrupt handlers (for address&lt;BR /&gt;0x1c, that would be the default handler). When the HCD application&lt;BR /&gt;is built without allowing for the boot loader, the "reserved" IVT&lt;BR /&gt;entries get "0" because of the values in startup/startup_MKW41Z4.S&lt;BR /&gt;This changes the thread library behavior, when it reads from the&lt;BR /&gt;IVT area.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Thanks!&lt;BR /&gt;Mike Lundberg&lt;/P&gt;</description>
      <pubDate>Wed, 16 Sep 2020 14:02:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/MKW41Z-Thread-commissioning-issue-with-fsci-bootloader/m-p/1154232#M10153</guid>
      <dc:creator>michaellundberg</dc:creator>
      <dc:date>2020-09-16T14:02:03Z</dc:date>
    </item>
    <item>
      <title>Re: MKW41Z Thread commissioning issue with fsci bootloader</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/MKW41Z-Thread-commissioning-issue-with-fsci-bootloader/m-p/1154297#M10154</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Sorry no, I just added the wrong name of the file, I meant the Kinetis Thread Stack Application Developer's Guide as you can see here. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="estephania_mart_0-1600275695675.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/125332iAF8144F14871FE57/image-size/medium?v=v2&amp;amp;px=400" role="button" title="estephania_mart_0-1600275695675.png" alt="estephania_mart_0-1600275695675.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Sorry for putting the wrong name of file, but in the Thread developers guide you can find the information I referred in the last post about the linker files when using the Fsci_bootloader.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Sorry for the inconveniences cause by the name error.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;Estephania&lt;/P&gt;</description>
      <pubDate>Wed, 16 Sep 2020 17:03:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/MKW41Z-Thread-commissioning-issue-with-fsci-bootloader/m-p/1154297#M10154</guid>
      <dc:creator>stephanie_m</dc:creator>
      <dc:date>2020-09-16T17:03:48Z</dc:date>
    </item>
  </channel>
</rss>

