<?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>Inquiry on SRAM Retention and Potential Clearing Mechanism on nRF52840</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/116296/inquiry-on-sram-retention-and-potential-clearing-mechanism-on-nrf52840</link><description>Dear Nordic Semiconductor Support Team, 
 I am conducting academic research with the nRF52840 development board, specifically investigating the use of SRAM Physical Unclonable Function (PUF) capabi 
 During our testing, we noticed that upon power-up,</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 13 Nov 2024 13:41:26 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/116296/inquiry-on-sram-retention-and-potential-clearing-mechanism-on-nrf52840" /><item><title>RE: Inquiry on SRAM Retention and Potential Clearing Mechanism on nRF52840</title><link>https://devzone.nordicsemi.com/thread/510309?ContentTypeID=1</link><pubDate>Wed, 13 Nov 2024 13:41:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:893935e7-f448-418d-8ece-50538f04dc1f</guid><dc:creator>Charlie</dc:creator><description>&lt;p&gt;Hi Yuxuan,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thank you for your explanation. I now have a better understanding after your detailed explanation and reading through &lt;a href="https://en.wikipedia.org/wiki/Types_of_physical_unclonable_function" target="_new"&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt; Wikipedia&lt;/span&gt;&lt;span&gt; article&lt;/span&gt;&lt;span&gt; on&lt;/span&gt;&lt;span&gt; Types&lt;/span&gt;&lt;span&gt; of&lt;/span&gt;&lt;span&gt; Physical&lt;/span&gt;&lt;span&gt; Unclonable&lt;/span&gt;&lt;span&gt; Functions&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;According to the nRF52840 datasheet, there is no automatic hardware mechanism for clearing SRAM during power-on. However, on the firmware side, it depends on the SDK being used.&lt;/p&gt;
&lt;p&gt;Currently, we have two SDKs for firmware development: &lt;a href="https://devzone.nordicsemi.com/nordic/nordic-blog/b/blog/posts/nrf-connect-sdk-and-nrf5-sdk-statement"&gt;the &lt;span&gt;nRF&lt;/span&gt;&lt;span&gt; Connect&lt;/span&gt;&lt;span&gt; SDK&lt;/span&gt; and the nRF5 SDK&lt;/a&gt;. We encourage developers to use the newer nRF Connect SDK for new development projects, as it is based on the open-source Zephyr project.&lt;/p&gt;
&lt;p&gt;If your firmware is developed using the nRF Connect SDK/Zephyr, memory behavior can also depend on whether a bootloader is used. For bare-metal firmware, the &lt;code&gt;v2.7.0\zephyr\kernel\init.c&lt;/code&gt; file includes the &lt;code&gt;z_bss_zero&lt;/code&gt; function for zero-initializing RAM, but you can configure this behavior by setting &lt;code&gt;CONFIG_SKIP_BSS_CLEAR&lt;/code&gt; to avoid clearing it.&lt;/p&gt;
&lt;p&gt;If a bootloader like MCUboot is used, memory initialization settings can vary. I checked MCUboot documentation and code, and it does not explicitly perform zero-initialization of memory regions.&lt;/p&gt;
&lt;p&gt;When no firmware is programmed, you should be able to perform SRAM PUF without interference from the firmware, and you can then compare the results when firmware is present.&lt;/p&gt;
&lt;p&gt;Hope this will help you a bit for your research. Let me know if you need more help.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Charlie&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Inquiry on SRAM Retention and Potential Clearing Mechanism on nRF52840</title><link>https://devzone.nordicsemi.com/thread/510091?ContentTypeID=1</link><pubDate>Tue, 12 Nov 2024 11:56:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f8b94cee-84a6-4d49-a22b-0ac210486806</guid><dc:creator>lancaster</dc:creator><description>&lt;p&gt;Hi Charlie,&lt;/p&gt;
&lt;p&gt;Thank you for your detailed response and for clarifying the behavior of SRAM. I realize that my previous question might have led to some misunderstanding, so I&amp;rsquo;d like to clarify my intentions more precisely.&lt;/p&gt;
&lt;p&gt;I am aware that SRAM, as a volatile memory, loses its data when power is removed. However, my interest lies specifically in capturing the initial, random state of the SRAM immediately upon power-up. This randomness at power-on is crucial for our SRAM PUF (Physical Unclonable Function) implementation. The PUF concept leverages the natural, unique variations in SRAM&amp;#39;s power-on state to generate a unique hardware fingerprint for each device.&lt;/p&gt;
&lt;p&gt;To be clear, my goal is to access the SRAM&amp;rsquo;s state right at the moment it is powered up, before any kind of clearing or erasing might take place. I would like to confirm if the nRF52840 incorporates any automatic hardware or firmware-based mechanism that clears the SRAM content immediately after power-up, prior to any code execution. If such a mechanism exists, is there any way to disable it to allow us to observe the unaltered power-on state of the SRAM?&lt;/p&gt;
&lt;p&gt;Thank you once again for your assistance, and I look forward to any insights or guidance you can provide on this matter for our research.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;br /&gt;Yuxuan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Inquiry on SRAM Retention and Potential Clearing Mechanism on nRF52840</title><link>https://devzone.nordicsemi.com/thread/510081?ContentTypeID=1</link><pubDate>Tue, 12 Nov 2024 11:36:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:119c57fe-6b75-4736-9dd8-a6faefe20676</guid><dc:creator>Charlie</dc:creator><description>&lt;p&gt;Hi Yuxuan,&lt;/p&gt;
&lt;p&gt;Thank you for reaching out with your questions. It sounds like a very interesting project, and we&amp;#39;re more than happy to assist as much as we can. I noticed that you also have another private ticket with similar questions. To maintain consistency and benefit others who may be interested, I&amp;#39;ll answer your questions in this open ticket only. However, if you have any concerns, I can set this thread to private upon request.&lt;/p&gt;
&lt;p&gt;Regarding your observation about the SRAM clearing or erase process upon power-up or reset: as far as I know, this behavior is how SRAM works. Being a volatile memory type, SRAM loses its data when power is removed. On the oppsite, If developer want to retain some data in SRAM to enable quicker wake-up and operation, they need&amp;nbsp;consider a tradeoff in power consumption to ensure data retention.&lt;/p&gt;
&lt;p&gt;If you’re attempting to access SRAM after code execution has started and data is loading from ROM, keep in mind that the APPROTECT feature is designed to prevent unauthorized memory reads. You can refer to the following resources for details on unlocking memory access when needed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.nordicsemi.com/bundle/ps_nrf52840/page/dif.html#d402e184"&gt;https://docs.nordicsemi.com/bundle/ps_nrf52840/page/dif.html#d402e184&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://devzone.nordicsemi.com/nordic/nordic-blog/b/blog/posts/working-with-the-nrf52-series-improved-approtect"&gt;(77) Working with the nRF52 Series&amp;#39; improved APPROTECT - Blogs - Nordic Blog - Nordic DevZone&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Additionally, some courses from the Nordic DevAcademy may help you gain a better understanding of the IDE and coding aspects. Feel free to explore those resources as well.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://academy.nordicsemi.com/courses/nrf-connect-sdk-fundamentals/"&gt;nRF Connect SDK Fundamentals - Nordic Developer Academy&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://academy.nordicsemi.com/courses/nrf-connect-sdk-intermediate/"&gt;nRF Connect SDK Intermediate - Nordic Developer Academy&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Charlie&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>