<?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>Assert after DFU, flash_manager issue : NRF_MESH_ASSERT(p_manager-&amp;gt;config.p_area[i].metadata.page_index == i);</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/111583/assert-after-dfu-flash_manager-issue-nrf_mesh_assert-p_manager--config-p_area-i-metadata-page_index-i</link><description>Hi, 
 We are facing the same issue as in this post but the solution is not working for us. The old post : https://devzone.nordicsemi.com/f/nordic-q-a/109161/problem-with-flash_manager-nrf_mesh_assert-p_manager--config-p_area-i-metadata-page_index-i 
</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 30 Jul 2024 12:04:34 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/111583/assert-after-dfu-flash_manager-issue-nrf_mesh_assert-p_manager--config-p_area-i-metadata-page_index-i" /><item><title>RE: Assert after DFU, flash_manager issue : NRF_MESH_ASSERT(p_manager-&gt;config.p_area[i].metadata.page_index == i);</title><link>https://devzone.nordicsemi.com/thread/496198?ContentTypeID=1</link><pubDate>Tue, 30 Jul 2024 12:04:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5b216c1e-f309-45ba-b232-a04433f6c18b</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;If I understand this correctly, the problem is that in some cases when dual bank is used, you see that the new application is temporarily stored in the area used by the &lt;a href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.meshsdk.v5.0.0/md_doc_user_guide_modules_flash_manager.html"&gt;Flash manager&lt;/a&gt;&amp;nbsp;library from the nRF5 SDK for Mesh.&lt;/p&gt;
&lt;p&gt;The nRF5 SDK Secure Bootoader has no knowledge of the BLE mesh specific libraries, and assumes it can use any space between the SoftDevice end and FDS or other Application data (see &lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.1.0/lib_bootloader.html"&gt;Memory layout&lt;/a&gt;). In other words what you are doing is not supported out of the box, and special considerations are needed.&lt;/p&gt;
&lt;p&gt;There are potentially several ways to handel this. I am not very familiar with the SDK for Mesh, but it is possible to specify the location of the flash manager pages using&amp;nbsp;FLASH_MANAGER_RECOVERY_PAGE as described in the &lt;a href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.meshsdk.v5.0.0/md_doc_user_guide_modules_flash_manager.html"&gt;documentation&lt;/a&gt;. If you place this right nex to the bootloader, and reserve that region in the bootloader by setting&amp;nbsp;NRF_DFU_APP_DATA_AREA_SIZE in the bootloader&amp;#39;s sdk_config.h accordingly, the bootloader will know that this cannot be touched, and it will use singel bank automatically if dual banking would involve writing to this region. This seems to me to be the cleanest way to handle this.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Assert after DFU, flash_manager issue : NRF_MESH_ASSERT(p_manager-&gt;config.p_area[i].metadata.page_index == i);</title><link>https://devzone.nordicsemi.com/thread/496055?ContentTypeID=1</link><pubDate>Mon, 29 Jul 2024 15:23:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a9ed8dd9-3ffd-497e-84ca-42ec507b903d</guid><dc:creator>ValentinL</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;We didn&amp;#39;t really find a solution. What we do now is that we test the size of the application to be sure that when the DFU it does not write data in the mesh_config pages.&lt;br /&gt;&lt;br /&gt;So if application is small, it does the dual bank without reaching the &amp;quot;problematic areas&amp;quot;.&lt;br /&gt;If the application is big, it does a single bank and so don&amp;#39;t write in the problematic areas.&lt;br /&gt;If it is between, we have the assert occuring.&lt;br /&gt;So the issue happens just with a range of specific sizes. We pay attention to not be in this size.&lt;br /&gt;It will be an issue for later if we do not correct this !!!&lt;/p&gt;
&lt;p&gt;If you can help us resolving the issue, it would be great !&lt;br /&gt;Our method is only to have it to work, it is not intended to stay like this ...&lt;/p&gt;
&lt;p&gt;Thank you!&lt;br /&gt;Waiting for your answer.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Assert after DFU, flash_manager issue : NRF_MESH_ASSERT(p_manager-&gt;config.p_area[i].metadata.page_index == i);</title><link>https://devzone.nordicsemi.com/thread/496001?ContentTypeID=1</link><pubDate>Mon, 29 Jul 2024 12:28:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:47c38652-20b4-4680-970d-84be3a82f3c0</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I am sorry for the late reply. Have you had any progress on this issue?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Assert after DFU, flash_manager issue : NRF_MESH_ASSERT(p_manager-&gt;config.p_area[i].metadata.page_index == i);</title><link>https://devzone.nordicsemi.com/thread/490493?ContentTypeID=1</link><pubDate>Tue, 25 Jun 2024 07:33:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5d081663-f78e-4390-b41a-5720680f9ced</guid><dc:creator>ValentinL</dc:creator><description>&lt;p&gt;Can someone help me please !!??&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Assert after DFU, flash_manager issue : NRF_MESH_ASSERT(p_manager-&gt;config.p_area[i].metadata.page_index == i);</title><link>https://devzone.nordicsemi.com/thread/489139?ContentTypeID=1</link><pubDate>Mon, 17 Jun 2024 14:41:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c2133687-71aa-47f1-aa54-1a3a52cdc996</guid><dc:creator>ValentinL</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I work several days on the Issue but I still don&amp;#39;t have a fully working DFU.&lt;br /&gt;But I tried many things and understand better so I can precise my issue.&lt;br /&gt;I hope you could help because I have no more ideas.&lt;/p&gt;
&lt;p&gt;1) I am working with nrf sdk for mesh ! My modules are mesh modules. But we want to do the DFU not over mesh but with an App, like the DFU nordic App for exemple. We program the bootloader of basic sdk (not mesh).&lt;br /&gt;It works not fully so maybe it is related to the &amp;quot;mesh&amp;quot; stack. -&amp;gt; my assert is with &amp;quot;mesh configuration&amp;quot; so I think maybe it is an uncompatibility issue with memory placement,...&lt;/p&gt;
&lt;p&gt;I use an nrf52833.&lt;/p&gt;
&lt;p&gt;2) For the bootloader, I use the project : secure_bootloader_ble_s140_nrf52833_debug from&amp;nbsp;bootloader_dfu_nrf_16.0.0.&lt;/p&gt;
&lt;p&gt;3) The DFU works correctly in DUAL BANK when my application is not too big. With a certain size, I have my assert.&lt;br /&gt;I explain : My mesh_configuration writes in Pages of the flash memory at&amp;nbsp;&lt;span&gt;&lt;span class="ui-provider ah aza azb azc azd aze azf azg azh azi azj azk azl azm azn azo azp azq azr azs azt azu azv azw azx azy azz baa bab bac bae baf bag bah bai" dir="ltr"&gt;6F000, 6E000, 6D000, 6C000, 6B000, 6A000 et 69000. (I assume the dfu working with what I understand). During the DFU, it checks if there is enough place to du a DUAL_BANK. The problematic case is when the DFU assume there is enough space, so do dual_bank, add new app above the old one but write on the mesh config pages !! so it write until 6D000 for example. My mesh_config pages are &amp;quot;corrupted&amp;quot; and I have the assert on starte.&lt;br /&gt;I confirm these observation by reading the flash directly.&lt;br /&gt;If The size is bigger, it will conclude that dual_bank is not possible and do single bank. And that works !&lt;br /&gt;So I have an issue with a range of application size -&amp;gt; when the dfu think that there is enough place because it does not take into account the mesh_config pages from 69000 to 6F000.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span class="ui-provider ah aza azb azc azd aze azf azg azh azi azj azk azl azm azn azo azp azq azr azs azt azu azv azw azx azy azz baa bab bac bae baf bag bah bai" dir="ltr"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span class="ui-provider ah aza azb azc azd aze azf azg azh azi azj azk azl azm azn azo azp azq azr azs azt azu azv azw azx azy azz baa bab bac bae baf bag bah bai" dir="ltr"&gt;Here is all I already tried but not working :&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span class="ui-provider ah aza azb azc azd aze azf azg azh azi azj azk azl azm azn azo azp azq azr azs azt azu azv azw azx azy azz baa bab bac bae baf bag bah bai" dir="ltr"&gt;3) I tried to force SINGLE_BANK by putting&amp;nbsp;NRF_DFU_SINGLE_BANK_APP_UPDATES = 1. the purpose here is to use less space and not write to 69000 before our applicaton size is very very big (what should not happen).&lt;br /&gt;But this don&amp;#39;t works. I have a &amp;quot;stopped by vector catch&amp;quot; error. I can not program the app after the bootloader.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span class="ui-provider ah aza azb azc azd aze azf azg azh azi azj azk azl azm azn azo azp azq azr azs azt azu azv azw azx azy azz baa bab bac bae baf bag bah bai" dir="ltr"&gt;4) I want to make sur the range 65000 to 72000 is not overwrite when doing DFU. I didn&amp;#39;t find the way to do so.&lt;br /&gt;I tried to modify the&amp;nbsp;&lt;/span&gt;&lt;/span&gt;FLASH_PH_SIZE to 0x65000. the&amp;nbsp;FLASH_SIZE=0x56000. But the DFU still overwrite on the problematic range when doing dual_bank.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;5) I also tried the&amp;nbsp;DFU_APP_DATA_RESERVED in my application code and the&amp;nbsp;NRF_DFU_APP_DATA_AREA_SIZE in the bootloader. I increased it because the doc says :&amp;nbsp;This area will not be erased by the bootloader during a&lt;br /&gt;// &amp;lt;i&amp;gt; firmware upgrade. The size must be a multiple of the flash page size.&lt;br /&gt;But again it didn&amp;#39;t works.&lt;/p&gt;
&lt;p&gt;6) I always updated the &amp;quot;app_settings&amp;quot; for the bootloader. I understand that it is with this setting file that the DFU knows the size of the app,...&lt;br /&gt;&lt;br /&gt;I tried some other little things, not usefull to mention now.&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t find any more information on the web or the forum. I already tried solutions I saw but it does not work.&lt;/p&gt;
&lt;p&gt;Can you help me please !?&lt;/p&gt;
&lt;p&gt;The best solution would be to protect the &amp;quot;mesh_configuration&amp;quot; memory zone I think.&lt;br /&gt;Or forcing singlebank dfu if first is not possible.&lt;/p&gt;
&lt;p&gt;Waiting for your answer!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Assert after DFU, flash_manager issue : NRF_MESH_ASSERT(p_manager-&gt;config.p_area[i].metadata.page_index == i);</title><link>https://devzone.nordicsemi.com/thread/486229?ContentTypeID=1</link><pubDate>Tue, 28 May 2024 14:20:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9048a096-69ef-487e-bc6c-88b614172bdb</guid><dc:creator>tesc</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;There seems to be some issues with my latest answer in the other thread. I have tried to repost it there: &amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/109161/problem-with-flash_manager-nrf_mesh_assert-p_manager--config-p_area-i-metadata-page_index-i/486228"&gt;RE: Problem with flash_manager, NRF_MESH_ASSERT(p_manager-&amp;gt;config.p_area[i].metadata.page_index &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Please let me know if there are any further issues.&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Terje&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>