<?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 - missing swap page</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/53687/fds---missing-swap-page</link><description>Hi, 
 One of our devices is bricked due to the fds_init returning FDS_ERR_NO_PAGES. After flash analysis, I have discovered that all pages are marked as FDS_PAGE_DATA (no FDS_PAGE_SWAP). One of these pages is erased (just FDS_PAGE_TAG_MAGIC and FDS_PAGE_DATA</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 31 Aug 2023 15:54:21 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/53687/fds---missing-swap-page" /><item><title>RE: FDS - missing swap page</title><link>https://devzone.nordicsemi.com/thread/443957?ContentTypeID=1</link><pubDate>Thu, 31 Aug 2023 15:54:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:24275888-6896-4873-ba8a-a08db61e36d2</guid><dc:creator>Rick N</dc:creator><description>&lt;p&gt;My workaround was to check the flash pages prior to calling `fds_init`.&amp;nbsp; If there were no swap pages (`FDS_PAGE_SWAP`) and no blank pages (`FDS_PAGE_ERASED` or `FDS_PAGE_UNDEFINED`) I would perform a recovery.&amp;nbsp; Recovery would either erase a single data page, if a data page was blank (just header), or it would erase all flash storage pages (last resort, data is lost, but the MCU will recovery).&amp;nbsp; Also, if a page is `FDS_PAGE_UNDEFINED`, then I would erase that page because it is unknown what is on that page and it cannot be trusted.&lt;br /&gt;&lt;br /&gt;`fds_init` takes care of the rest.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FDS - missing swap page</title><link>https://devzone.nordicsemi.com/thread/443894?ContentTypeID=1</link><pubDate>Thu, 31 Aug 2023 11:32:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5751180b-f2d8-4ab4-9418-e139efe4cf37</guid><dc:creator>Remco Poelstra</dc:creator><description>&lt;p&gt;Hi Rick N,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m experiencing the same problem with the FDS and I really like your take on solving this problem.&lt;/p&gt;
&lt;p&gt;Do you perhaps have a more worked-out example of your solution?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks in advance.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Remco Poelstra&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FDS - missing swap page</title><link>https://devzone.nordicsemi.com/thread/303849?ContentTypeID=1</link><pubDate>Thu, 08 Apr 2021 16:04:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:df53ab81-dc02-48d5-9287-fb63ab2490a4</guid><dc:creator>Rick N</dc:creator><description>&lt;p&gt;I am having the same issue.&amp;nbsp; I have not been able to reliably reproduce it, however, in my case at least one of the DATA&amp;nbsp; pages is empty.&amp;nbsp; This is a recoverable state as a blank data page can be erased and tagged as a SWAP page.&lt;/p&gt;
&lt;p&gt;I suggest adding a new enum value of PAGE_DATA_EMPTY&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;enum
{
    PAGE_ERASED     = 0x1,  // One or more erased pages found.
    PAGE_DATA       = 0x2,  // One or more data pages found.
    PAGE_SWAP_CLEAN = 0x4,  // A clean (empty) swap page was found.
    PAGE_SWAP_DIRTY = 0x8,  // A dirty (non-empty) swap page was found.
    PAGE_DATA_EMPTY = 0x10, // One or more empty data pages found.
};&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;and a new enum to fds_init_opts_t&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;    // The filesystem only contains data pages, but at least one data page is empty.
    // It is likely that the device powered off during GC. It is safe to discard (erase)
    // a empty data page, since there is nothing stored there.    
    DISCARD_EMPTY_DATA             = (PAGE_DATA | PAGE_DATA_EMPTY),&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Handling this in a similar manner as DISCARD_SWAP (erase empty data page then init that page as a swap), will produce the same result.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FDS - missing swap page</title><link>https://devzone.nordicsemi.com/thread/276269?ContentTypeID=1</link><pubDate>Wed, 21 Oct 2020 14:56:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2154140d-55c4-40b2-9a2f-ee0516e8e288</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Is there a reliable way of reproducing this?&lt;/p&gt;
&lt;p&gt;BR,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FDS - missing swap page</title><link>https://devzone.nordicsemi.com/thread/276258?ContentTypeID=1</link><pubDate>Wed, 21 Oct 2020 14:25:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:37eba0ff-4e27-492a-a1d5-81fbc192ca03</guid><dc:creator>Jason Wright</dc:creator><description>&lt;p&gt;I have also experienced this issue with SDK 17.0.2. On one device calls to fds_init during boot returned the NO_SWAP error. Looking at the memory contents all the FDS pages were tagged as DATA.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FDS - missing swap page</title><link>https://devzone.nordicsemi.com/thread/265700?ContentTypeID=1</link><pubDate>Fri, 21 Aug 2020 08:35:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e2bc6714-3b23-401b-abdf-385ee1c34253</guid><dc:creator>Min-Joon Kim</dc:creator><description>&lt;p&gt;Edvin,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The flash dump was very simple.&lt;/p&gt;
&lt;p&gt;All the three pages were tagged as data page.&lt;/p&gt;
&lt;p&gt;Two pages had no record.&lt;/p&gt;
&lt;p&gt;One page had some records that were very normal as I wrote.&lt;/p&gt;
&lt;p&gt;When I changed the tag of one data page having no record to swap,&lt;/p&gt;
&lt;p&gt;it worked well.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Min-Joon Kim.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FDS - missing swap page</title><link>https://devzone.nordicsemi.com/thread/265670?ContentTypeID=1</link><pubDate>Fri, 21 Aug 2020 07:33:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5e1dc230-a088-4ee2-a45b-e31041cbd479</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/members/min_2d00_joon-kim"&gt;Min-Joon Kim&lt;/a&gt;:&amp;nbsp;&lt;br /&gt;Please create a new ticket and upload the flash dump in that ticket.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user="Min-Joon Kim"] &amp;nbsp;(I couldn&amp;#39;t dump the hex file before fds_init().)[/quote]
&lt;p&gt;&amp;nbsp;No need. Just dump it after the fds_init() that returns &amp;quot;no swap page&amp;quot;. Perhaps it gives some information as to why it can&amp;#39;t initialize.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;BR,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FDS - missing swap page</title><link>https://devzone.nordicsemi.com/thread/265636?ContentTypeID=1</link><pubDate>Fri, 21 Aug 2020 05:33:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d41ca18c-7fd5-4127-970a-88f10839c819</guid><dc:creator>Min-Joon Kim</dc:creator><description>&lt;p&gt;Dear Edvin,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve upgraded the SDK and tested.&lt;/p&gt;
&lt;p&gt;Unfortunately, I still have the same problem, the no swap page issue.&lt;/p&gt;
&lt;p&gt;The test procedure was as follows:&lt;/p&gt;
&lt;p&gt;1. I run a code doing &amp;quot;write and garbage collection&amp;quot; continuously.&lt;/p&gt;
&lt;p&gt;2. During the process, I turned off the power.&lt;/p&gt;
&lt;p&gt;3. After a while, turned on.&lt;/p&gt;
&lt;p&gt;4. Then, from time to time, I found &amp;quot;no swap page&amp;quot; after fds_init().&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;(I couldn&amp;#39;t dump the hex file before fds_init().)&lt;/p&gt;
&lt;p&gt;5. As you know, if there is no swap page, fds_init() looks not fully successful and we cannot access to FDS.&lt;br /&gt;&amp;nbsp; &amp;nbsp; After that, bricked at the next boot.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Min-Joon Kim.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FDS - missing swap page</title><link>https://devzone.nordicsemi.com/thread/217236?ContentTypeID=1</link><pubDate>Tue, 29 Oct 2019 07:16:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:31284a58-ba7c-45a5-86ce-48e11094c861</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello Wojciech,&lt;/p&gt;
&lt;p&gt;Thank you for coming back to us. I am sorry I didn&amp;#39;t reach out, but it is hard to keep track of old cases with no activity. The bug (the cause) was actually found some time before the release of SDK16. The fix looks quite similar (if not identical). You can compare it to the fds.c file in SDK 16.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FDS - missing swap page</title><link>https://devzone.nordicsemi.com/thread/216925?ContentTypeID=1</link><pubDate>Fri, 25 Oct 2019 10:33:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:44e4bab4-89bc-4639-8a47-2512a2309a1b</guid><dc:creator>Wojciech Jasko</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Good news:) I have a way to reproduce it.&lt;/p&gt;
&lt;p&gt;Given we have interrupted the GC procedure (power off) in the following state:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;| page_address | page_type  |
| 0xEF000      | erased     |
| 0xF0000      | data       |
| 0xF1000      | swap_dirty |
| 0xF2000      | data       |
| 0xF3000      | data       |&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When we initialized fds again it performs the following actions (&lt;strong&gt;PROMOTE_SWAP_INST&lt;/strong&gt;):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;tag 0xF1000 as the data&lt;/li&gt;
&lt;li&gt;tag 0xF0000 as the swap &lt;strong&gt;(this fails due to NAND flash)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;tag 0xEF000 as the data&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;When the erased page is initialized before swap page then&amp;nbsp;&lt;span&gt;m_gc.cur_page is not initialized correctly. This is my proposition:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;            case FDS_PAGE_SWAP:
            {
                if (swap_set_but_not_found)
                {
                    m_pages[page].page_type    = FDS_PAGE_ERASED;
                    m_pages[page].p_addr       = m_swap_page.p_addr;
                    m_pages[page].write_offset = FDS_PAGE_TAG_SIZE;

                    m_gc.cur_page = page; // FIX
                    page++;
                }

                m_swap_page.p_addr = p_page_addr;
                // If the swap is promoted, this offset should be kept, otherwise,
                // it should be set to FDS_PAGE_TAG_SIZE.
                page_scan(p_page_addr, &amp;amp;m_swap_page.write_offset, NULL);

                ret |= (m_swap_page.write_offset == FDS_PAGE_TAG_SIZE) ?
                        PAGE_SWAP_CLEAN : PAGE_SWAP_DIRTY;
            } break;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;It is fixing this case, but I am not sure if it does not break anything. Please, could you review it for me?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FDS - missing swap page</title><link>https://devzone.nordicsemi.com/thread/216924?ContentTypeID=1</link><pubDate>Mon, 18 Mar 2019 08:39:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:018fd23f-61f3-401a-8875-431f381c495f</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;I understand. However, I would say that anything is better than just passing the NO_SWAP into APP_ERROR_CHECK, which will preform a reset, run into the same check after reboot, and continue in that loop.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Of course, not knowing what caused the issue in the first place is a bit worrying. If it is caused by a power cut during a certain point of Garbage Collection (GC), then you will probably have the situation where you have a data page that is blank. (However, I don&amp;#39;t see any specific reason why this would have happened due to a power cut during GC.)&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;But if you want a workaround, it needs to end up getting a new swap page. Maybe you can modify the GC function to copy all valid (not dirty/marked as deleted) records from e.g. the first data page to the current data page. That is, have a special GC function that empties all the records on the first data page. When finished, delete this page and mark it as a swap page.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FDS - missing swap page</title><link>https://devzone.nordicsemi.com/thread/216923?ContentTypeID=1</link><pubDate>Wed, 13 Mar 2019 19:47:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:66007b73-0f20-4d12-bb6a-66cd49707da0</guid><dc:creator>Wojciech Jasko</dc:creator><description>&lt;p&gt;Hi,&lt;br /&gt;I started to patch fds last month as a result of these tests. These devices are not affected by my changes. I am pretty sure that your solution will work as a workaround. Anyway, there is still a bug somewhere. I am afraid that it may manifest itself in a different way (for example some operation on 0x0007D000 might be processed before reboot). In such case, this workaround will not be working.&lt;/p&gt;
&lt;p&gt;All records seem to be fine. Actually, I have erased this page using jlink and after reset device started to work.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FDS - missing swap page</title><link>https://devzone.nordicsemi.com/thread/216922?ContentTypeID=1</link><pubDate>Wed, 13 Mar 2019 17:16:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8bf31ba6-154f-4faa-adbf-7b0ca2d429af</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Helllo,&lt;/p&gt;
&lt;p&gt;I have been looking at this ticket a lot today, together with Terje, who is handling one of the other tickets.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I have looked through a lot of documentation, done some testing by erasing pages, writing the magic word, but no tag and so on, but I have not found a way to reproduce ending up with all data pages and no swap page, which is what you are facing with this node.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;So I have to ask, have you done any changes to the FDS module before programming these devices? Any fixes that were implemented beforehand that can affect the FDS behavior in any way?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;That being said, it looks like somehow, the swap page has been tagged as a data page. In this page it is the first FDS page, at 0007D000.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;A suggested patch could be that if you end up with the NO_SWAP return from fds_init(), anything is better than just falling into APP_ERROR_CHECK(NO_SWAP);&lt;/p&gt;
&lt;p&gt;As a workaround you can go through your FDS pages, and look for a page that contains the magic word and the data tag but no other data (all 0xFFFF). If you find one of these in the NO_SWAP state, it would be safe to assume that this page can be deleted. You can delete this page, then run fds_init() again. Alternatively, an&amp;nbsp;NVIC_SystemReset();&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If the FDS starts up with one empty page and the rest data pages, it will make the empty page to a SWAP page (I have tested this).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;What would be interesting is to see what happens if you erase this first page (from 0x0007D000) and reboot the application. Do you get any other errors at this point? Are the rest of the records valid, or do you get any information saying parts of the rest of the FDS are corrupted?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FDS - missing swap page</title><link>https://devzone.nordicsemi.com/thread/216921?ContentTypeID=1</link><pubDate>Wed, 13 Mar 2019 10:33:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7ab65547-52ee-4d00-a5d0-94aeba9e110c</guid><dc:creator>Wojciech Jasko</dc:creator><description>&lt;p&gt;Sorry, this is probably my mistake. I sent you too much.&lt;br /&gt;We use 5 fds_pages. FLASH_FDS (rw) : ORIGIN = 0x0006F000, LENGTH = 0x5000&lt;br /&gt;Address 0x74000 is bootloader&amp;#39;s data.&lt;/p&gt;
&lt;p&gt;I have uploaded decoded fds_dump&amp;nbsp;&lt;a href="https://drive.google.com/file/d/1R7gSYENEmZZ3l5Fyh95nZNbv7FaCW6TW/view?usp=sharing"&gt;https://drive.google.com/file/d/1R7gSYENEmZZ3l5Fyh95nZNbv7FaCW6TW/view?usp=sharing&lt;/a&gt;. Sorry for this mistake.&lt;/p&gt;
&lt;p&gt;This issue is not connected with my other 2 tickets. One of them will result in corrupted Record ID and the second with FDS_PAGE_UNDEFINED. In both cases, I believe that I found a root cause and I need more review than&amp;nbsp;help.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In this case, we have 5 times&amp;nbsp;FDS_PAGE_DATA. I do not know why it happened.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;This corrupted node had exactly&amp;nbsp;7 runs of GC. Usually tested nodes have between 4-10 runs of GC.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FDS - missing swap page</title><link>https://devzone.nordicsemi.com/thread/216920?ContentTypeID=1</link><pubDate>Wed, 13 Mar 2019 08:55:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:000ef7f7-abc8-41a0-a93b-aceb4b68fa37</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello Wojciech,&lt;/p&gt;
&lt;p&gt;I see that there are some regions missing from your flashdump. Also, I see that the last data page is moved to a weird location, not page aligned. Do you have any idea of what is present in the flash in the area that is missing?&lt;/p&gt;
&lt;p&gt;That is between 0x00073FFF and &lt;span&gt;0x&lt;/span&gt;0007544B. It should have been included &amp;quot;between&amp;quot; line 1025 and 1026 in the flashdump. especially interesting is what that is present on &lt;span&gt;0x&lt;/span&gt;00074000, since this should be the start of a page.&lt;/p&gt;
&lt;p&gt;How many FDS pages do you use in your application? if there are more than 5, then 0x00075000 is also interresting. Actually, for N flash pages 0x0007(N+1)000 is interresting. The start of each page. Also, as I mentioned, I don&amp;#39;t understand why DEADC0DE (DEC0ADDE) is present in a non-page-aligned place. Do you have a record where the actual data is DEADC0DE?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I see the internal ticket that Jørgen created from your original post here on DevZone. There is still no conclusion. I also see from one of the other tickets that you created that you have some theory on why you may have a missing swap page. It is an interesting theory, but without seeing what in the missing part of the flashdump, it is difficult to say whether this actually is the issue in your case.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Also, you say that the chip has been running for a few months. Do you have any estimation on how much and how often you write and erase your flash? Or in other words, how often you perform the Garbage Collection?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;br /&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>