<?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>fds_init failure and recovery options</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/50851/fds_init-failure-and-recovery-options</link><description>fds_init fails for several valid reasons, but my issue is how to recover. This for me was triggered by a firmware upgrade overwriting the fds file area. This can trigger fds_init to not find any valid or erased fds pages, or not finding an fds swap page</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 30 Nov 2021 14:32:56 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/50851/fds_init-failure-and-recovery-options" /><item><title>RE: fds_init failure and recovery options</title><link>https://devzone.nordicsemi.com/thread/341337?ContentTypeID=1</link><pubDate>Tue, 30 Nov 2021 14:32:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fc4e3557-9903-4f77-80e5-43a1e0f98bca</guid><dc:creator>joel-sc</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;There is an update on this?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: fds_init failure and recovery options</title><link>https://devzone.nordicsemi.com/thread/291538?ContentTypeID=1</link><pubDate>Wed, 27 Jan 2021 14:22:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:610b272c-c9fd-45ef-83a7-3a6224aec09e</guid><dc:creator>MarieMaurer</dc:creator><description>&lt;p&gt;Hi Kenneth,&lt;br /&gt;&lt;br /&gt;I think we reached the same point. Can you please give us an current update on this topic?&lt;br /&gt;&lt;br /&gt;Many thanks!&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Marie&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: fds_init failure and recovery options</title><link>https://devzone.nordicsemi.com/thread/272835?ContentTypeID=1</link><pubDate>Sat, 03 Oct 2020 20:36:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5cd299af-f0ca-4c3a-8a1a-27b81e82cca2</guid><dc:creator>cbrown_cdi</dc:creator><description>&lt;p&gt;Hi Kenneth,&lt;/p&gt;
&lt;p&gt;Can you provide an updated implementation of this for the current SDK? Looks like fstorage_internal_defs.h no longer exists.&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: fds_init failure and recovery options</title><link>https://devzone.nordicsemi.com/thread/219735?ContentTypeID=1</link><pubDate>Tue, 12 Nov 2019 15:53:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:421e17f5-9582-4d17-b389-23cdbc0b1c9b</guid><dc:creator>bart</dc:creator><description>&lt;p&gt;Hi Kenneth,&lt;/p&gt;
&lt;p&gt;I also ran into this problem, and implemented a pages erase.&lt;/p&gt;
&lt;p&gt;But then I still have to reboot, as &lt;em&gt;fds_init&lt;/em&gt; already set some variable that remembers it&amp;#39;s initializing (&lt;em&gt;m_flags.initializing&lt;/em&gt;), and then refuses to initialize. So I hope the team doesn&amp;#39;t just implement a page erase method, but make sure we can init fds after that as well.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: fds_init failure and recovery options</title><link>https://devzone.nordicsemi.com/thread/203670?ContentTypeID=1</link><pubDate>Mon, 12 Aug 2019 16:40:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:230ca581-2b2d-492d-a513-b0a9c3017a75</guid><dc:creator>Jordan Archer</dc:creator><description>&lt;p&gt;That&amp;#39;s what I did.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;An enhanced fds_stat that always worked (even if init had failed), would have helped debugging.&amp;nbsp; I had to hand examine every page to figure out what was wrong.&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: fds_init failure and recovery options</title><link>https://devzone.nordicsemi.com/thread/203570?ContentTypeID=1</link><pubDate>Mon, 12 Aug 2019 12:05:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4c6a999a-fe72-4c50-a69a-6c5c687e5b25</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;I have added your input and suggestions to internal Jira for the SDK team to look at for future improvement of the FDS.&lt;/p&gt;
&lt;p&gt;For now you would need to make your own implementation of &amp;quot;cleaning up&amp;quot; storage area reserved for FDS yes, e.g. something like:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#include &amp;quot;fds_internal_defs.h&amp;quot;
#include &amp;quot;fstorage_internal_defs.h&amp;quot;
#include &amp;quot;nrf_nvmc.h&amp;quot;
...
{
  uint32_t const *addr = FS_PAGE_END_ADDR;
  uint32_t pages = FDS_PHY_PAGES;
  uint32_t curr_addr = 0;
 
  sd_softdevice_disable();
 
  for (int i = 1; i &amp;lt; (pages + 1); i++)
  {
    curr_addr = (uint32_t)addr - (FS_PAGE_SIZE*i);
    nrf_nvmc_page_erase(curr_addr);
  }
}&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>