<?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: Cortex-A9 ARM Errata 845369 in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/Cortex-A9-ARM-Errata-845369/m-p/399976#M58963</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Rabiammal&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sorry for answering so late, but I have been off for some time. The patch for the errata is very simply: it's nothing more than setting a single bit in a special configuration register and fully documented with the necessary code in the referenced official ARM Errata. Therefore it can by easily applied to any boot-loader or even operating system.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The performance impact depends on OS, driver and application code: any code that makes use of the kind of memory accesses mentioned above -- directly as well as indirectly -- will notice the performance impact. How much, depends on the specific application and your mileage will vary, depending on what you're doing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As this is a bug in the Cortex-A9 itself, there is not much Freescale/NXP can do about it. So it's more a choice of "fast but maybe occasionally instable", "stable but, depending on code, slow", or "lots of manual tuning by each application developer to prevent the slow accesses". Upside is: it's not only Freescale's/NXP's Cortex-A9 SoCs, but all other manufacturers, as well.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Marc&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 11 Feb 2016 09:06:57 GMT</pubDate>
    <dc:creator>MOW</dc:creator>
    <dc:date>2016-02-11T09:06:57Z</dc:date>
    <item>
      <title>Cortex-A9 ARM Errata 845369</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Cortex-A9-ARM-Errata-845369/m-p/399972#M58959</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Apparently on 1st of April 2015 a work-around for ARM Cortex-A9 Errata #845369 has been added to public U-Boot repositories and this patch also is included in Freescale's most recent i.MX6x Android Release L5.0.0_1.0.0-ga, but nowhere else, so far (esp. not yet in the i.MX6x Yocto releases from Freescale).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The ARM Errata mentions "Setting this bit could possibly result in a visible drop in performance for routines that perform intensive memory&lt;/P&gt;&lt;P&gt;accesses, such as memset() or memcpy(). However, the workaround is not expected to create any significant performance degradation in most standard applications." &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Brief tests on our i.MX6x-devices show that there is indeed a "visible drop in performance" for memset() and memcpy():&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;memset() performance drops down to &amp;lt;25% of its previous performance (yes, "down to" not "by")&lt;/LI&gt;&lt;LI&gt;memcpy() performance dropds down to ~50% of its previous performance&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Has anybody made any more "real-world" experience with the performance-impact of the work-around for this errata #845369, so far (e.g. impact on graphics or video-performance, network performance, storage-media, etc)?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Aug 2015 11:49:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Cortex-A9-ARM-Errata-845369/m-p/399972#M58959</guid>
      <dc:creator>MOW</dc:creator>
      <dc:date>2015-08-26T11:49:15Z</dc:date>
    </item>
    <item>
      <title>Re: Cortex-A9 ARM Errata 845369</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Cortex-A9-ARM-Errata-845369/m-p/399973#M58960</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;Hello,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt; Appears, we do not have benchmark estimations regarding the issue impact.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt; &lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;As mentioned in the erratum,&amp;nbsp; the performance problem takes place for applications&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;that perform very intensive memory accesses. Customers can try to implement own&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;memcpy() function, and vary its parameters,&amp;nbsp; such as burst length, start address&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;aligning.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;&amp;nbsp; The following may be helpful :&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;&lt;A class="jive-link-wiki-small" data-containerid="2004" data-containertype="14" data-objectid="106467" data-objecttype="102" href="https://community.freescale.com/docs/DOC-106467"&gt;https://community.freescale.com/docs/DOC-106467&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;Have a great day,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;Yuri&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Sep 2015 09:41:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Cortex-A9-ARM-Errata-845369/m-p/399973#M58960</guid>
      <dc:creator>Yuri</dc:creator>
      <dc:date>2015-09-01T09:41:50Z</dc:date>
    </item>
    <item>
      <title>Re: Cortex-A9 ARM Errata 845369</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Cortex-A9-ARM-Errata-845369/m-p/399974#M58961</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Yuri&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your reply. If I understand the description of the errata correctly, the work-around prevents the Cortex-A9 core from entering "read-allocate/streaming"-mode, i.e. the CPU-core will perform write-allocations in L1-data-cache for all write accesses, even if unnecessary e.g. for memset()/memcpy(), and therefore cause lots of unnecessary bus-traffic and cache-trashing for code that writes lots of full cache-lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This will not only impact memset()/memcpy() but also quite a few drivers working with internal buffers, software audio- and video-codecs and renderers writing larger amounts of data to memory, probably some garbage-collectors of JVM and other similar code in OSses, libraries and applications.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For the Cortex-&lt;SPAN style="text-decoration: underline;"&gt;A5&lt;/SPAN&gt; and &lt;SPAN style="text-decoration: underline;"&gt;A7&lt;/SPAN&gt; cores ARM documents when exactly the core switches to "read allocate mode" (which would be prevented by the work-around):&lt;/P&gt;&lt;P&gt;&amp;lt;&amp;lt;&amp;lt;&lt;/P&gt;&lt;P&gt;To prevent this, the Bus Interface Unit (BIU) includes logic to detect when a full cache line has been written by the processor before the linefill has completed. If this situation is detected on three consecutive linefills, it switches into read allocate mode.&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Unfortunately neither ARM nor Freescale seem to document, when the Cortex-&lt;SPAN style="text-decoration: underline;"&gt;A9&lt;/SPAN&gt; core usually would do this. Do you have any information whether the A9 uses the same detection mechanism as the A5 and A7?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kind regards,&lt;/P&gt;&lt;P&gt;Marc&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Sep 2015 07:28:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Cortex-A9-ARM-Errata-845369/m-p/399974#M58961</guid>
      <dc:creator>MOW</dc:creator>
      <dc:date>2015-09-07T07:28:56Z</dc:date>
    </item>
    <item>
      <title>Re: Cortex-A9 ARM Errata 845369</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Cortex-A9-ARM-Errata-845369/m-p/399975#M58962</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Marc,&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-size: 10pt; font-family: 'Arial','sans-serif'; color: #1f497d;"&gt;We would like to know &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-size: 10pt; font-family: 'Arial','sans-serif'; color: #1f497d;"&gt;1. Whether the performance issue is observed in &lt;SPAN lang="EN-US" style="font-size: 10pt; font-family: 'Arial','sans-serif'; color: #1f497d;"&gt;Android Lollipop 5 release?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-size: 10pt; font-family: 'Arial','sans-serif'; color: #1f497d;"&gt;2. Whether Freescale is able to reduce the performance impact into an acceptable level. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-size: 10pt; font-family: 'Arial','sans-serif'; color: #1f497d;"&gt;3. Whether the same patch can be applied on Android KK 4.4.3? What will be the impact on performance level?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-size: 10pt; font-family: 'Arial','sans-serif'; color: #1f497d;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-size: 10pt; font-family: 'Arial','sans-serif'; color: #1f497d;"&gt;Best Regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-size: 10pt; font-family: 'Arial','sans-serif'; color: #1f497d;"&gt;Rabiammal&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Nov 2015 10:51:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Cortex-A9-ARM-Errata-845369/m-p/399975#M58962</guid>
      <dc:creator>ambika</dc:creator>
      <dc:date>2015-11-04T10:51:25Z</dc:date>
    </item>
    <item>
      <title>Re: Cortex-A9 ARM Errata 845369</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Cortex-A9-ARM-Errata-845369/m-p/399976#M58963</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Rabiammal&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sorry for answering so late, but I have been off for some time. The patch for the errata is very simply: it's nothing more than setting a single bit in a special configuration register and fully documented with the necessary code in the referenced official ARM Errata. Therefore it can by easily applied to any boot-loader or even operating system.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The performance impact depends on OS, driver and application code: any code that makes use of the kind of memory accesses mentioned above -- directly as well as indirectly -- will notice the performance impact. How much, depends on the specific application and your mileage will vary, depending on what you're doing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As this is a bug in the Cortex-A9 itself, there is not much Freescale/NXP can do about it. So it's more a choice of "fast but maybe occasionally instable", "stable but, depending on code, slow", or "lots of manual tuning by each application developer to prevent the slow accesses". Upside is: it's not only Freescale's/NXP's Cortex-A9 SoCs, but all other manufacturers, as well.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Marc&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 11 Feb 2016 09:06:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Cortex-A9-ARM-Errata-845369/m-p/399976#M58963</guid>
      <dc:creator>MOW</dc:creator>
      <dc:date>2016-02-11T09:06:57Z</dc:date>
    </item>
    <item>
      <title>Re: Cortex-A9 ARM Errata 845369</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Cortex-A9-ARM-Errata-845369/m-p/399977#M58964</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We got the x2-x3 degradation in our application when we applied this errata.&lt;/P&gt;&lt;P&gt;Does it end up with the same errata if we use NEON for memcpy?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BR.&lt;/P&gt;&lt;P&gt;NS.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 11 Apr 2016 05:59:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Cortex-A9-ARM-Errata-845369/m-p/399977#M58964</guid>
      <dc:creator>norishinozaki</dc:creator>
      <dc:date>2016-04-11T05:59:24Z</dc:date>
    </item>
    <item>
      <title>Re: Cortex-A9 ARM Errata 845369</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Cortex-A9-ARM-Errata-845369/m-p/399978#M58965</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;As I understand the description of the errata, the work-around for the errata changes the behaviour of the L1 data cache, so it should affect all kind of code that works on data that can be cached in the L1-cache; no matter what kind of instructions are used.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 11 Apr 2016 11:55:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Cortex-A9-ARM-Errata-845369/m-p/399978#M58965</guid>
      <dc:creator>MOW</dc:creator>
      <dc:date>2016-04-11T11:55:41Z</dc:date>
    </item>
    <item>
      <title>Re: Cortex-A9 ARM Errata 845369</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Cortex-A9-ARM-Errata-845369/m-p/399979#M58966</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Marc,&lt;/P&gt;&lt;P&gt;BR, N.S&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Apr 2016 07:52:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Cortex-A9-ARM-Errata-845369/m-p/399979#M58966</guid>
      <dc:creator>norishinozaki</dc:creator>
      <dc:date>2016-04-12T07:52:12Z</dc:date>
    </item>
  </channel>
</rss>

