<?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>ColdFire/68K Microcontrollers and ProcessorsのトピックRe: MCF54454 with branch cache hangs my flexbus?</title>
    <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF54454-with-branch-cache-hangs-my-flexbus/m-p/195463#M8636</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Sounds similar to a problem I tracked down a couple of years ago when I worked for FSL doing the V4 Linux BSP.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 31 Mar 2011 23:32:27 GMT</pubDate>
    <dc:creator>jkmahan</dc:creator>
    <dc:date>2011-03-31T23:32:27Z</dc:date>
    <item>
      <title>MCF54454 with branch cache hangs my flexbus?</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF54454-with-branch-cache-hangs-my-flexbus/m-p/195460#M8633</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I am having trouble with sporadic reads to unmapped flexbus memory causing&lt;/P&gt;&lt;P&gt;the processor to hang until the bus monitor kicks it going again.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The accesses seem to come from the branch cache, something like&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;move.l #1000,a2&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;lea sdram_label,a2&lt;/P&gt;&lt;P&gt;jsr (a2)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;will still have caused a flexbus access at address 1000.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Turning the branch cache off comes with a 10% performance decrease which is no good.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I can extend an auto acknowledging chipselect to cover flexbus memory, what if a2 would point to&lt;/P&gt;&lt;P&gt;internal peripheral space?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Does anyone know if I am right about this? If so, can instruction prefetch disturb the internal peripherals?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;best regards&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Andy&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 31 Mar 2011 06:21:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF54454-with-branch-cache-hangs-my-flexbus/m-p/195460#M8633</guid>
      <dc:creator>AndyDaytona</dc:creator>
      <dc:date>2011-03-31T06:21:40Z</dc:date>
    </item>
    <item>
      <title>Re: MCF54454 with branch cache hangs my flexbus?</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF54454-with-branch-cache-hangs-my-flexbus/m-p/195461#M8634</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Does it still happen if you do a flush on the branch cache?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 31 Mar 2011 07:16:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF54454-with-branch-cache-hangs-my-flexbus/m-p/195461#M8634</guid>
      <dc:creator>jkmahan</dc:creator>
      <dc:date>2011-03-31T07:16:06Z</dc:date>
    </item>
    <item>
      <title>Re: MCF54454 with branch cache hangs my flexbus?</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF54454-with-branch-cache-hangs-my-flexbus/m-p/195462#M8635</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;If I flush the branch cache in the kernel thread dispatcher, the problem seems to disappear (or happen so seldom&lt;/P&gt;&lt;P&gt;I cannot detect it, although I cannot detect it directly by stepping thru code, and I cannot get any bus error to detect this so I&lt;/P&gt;&lt;P&gt;cannot trace exactly what happens, it has taken almost two weeks to find this problem as I initially assumed that it was a code bug.)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;from my disassembly I have this generated by gcc&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;loop:&lt;/P&gt;&lt;P&gt;jsr (a3)&lt;/P&gt;&lt;P&gt;jsr (a2)&lt;/P&gt;&lt;P&gt;addq.l #4,sp&lt;/P&gt;&lt;P&gt;bra loop&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;a3 points to the semaphore wait command&lt;/P&gt;&lt;P&gt;a2 points to something that executes every time I get a semaphore signal.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The pop is for the semaphore wait, but has been deferred.&lt;/P&gt;&lt;P&gt;When this code executes there seem to be a flexbus read at the address pointed to by a2 in another thread!&lt;/P&gt;&lt;P&gt;If I put just a trapf between the jsr instructions the problem goes away.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have&amp;nbsp; a memory mapped external peripheral (a DSP) and if a2 for some reason would point to its memory,&lt;/P&gt;&lt;P&gt;it would be really bad. &lt;IMG alt=":smileysad:" class="emoticon emoticon-smileysad" id="smileysad" src="http://freescale.i.lithium.com/i/smilies/16x16_smiley-sad.gif" title="Smiley Sad" /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 31 Mar 2011 17:23:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF54454-with-branch-cache-hangs-my-flexbus/m-p/195462#M8635</guid>
      <dc:creator>AndyDaytona</dc:creator>
      <dc:date>2011-03-31T17:23:23Z</dc:date>
    </item>
    <item>
      <title>Re: MCF54454 with branch cache hangs my flexbus?</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF54454-with-branch-cache-hangs-my-flexbus/m-p/195463#M8636</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Sounds similar to a problem I tracked down a couple of years ago when I worked for FSL doing the V4 Linux BSP.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 31 Mar 2011 23:32:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF54454-with-branch-cache-hangs-my-flexbus/m-p/195463#M8636</guid>
      <dc:creator>jkmahan</dc:creator>
      <dc:date>2011-03-31T23:32:27Z</dc:date>
    </item>
    <item>
      <title>Re: MCF54454 with branch cache hangs my flexbus?</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF54454-with-branch-cache-hangs-my-flexbus/m-p/195464#M8637</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;That sounds very interesting, did you manage to pinpoint how to avoid the problem?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I also noticed now that disabling the branch cache in cacr did not solve the problem.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I also managed to induce false reads to the ATA FIFO, hanging the DMA handler, using this&lt;/P&gt;&lt;P&gt;problem which proves that it is not isolated to the flexbus, I think.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This only leaves avoiding the instruction combinations creating this state altogether as an option.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Apr 2011 00:33:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF54454-with-branch-cache-hangs-my-flexbus/m-p/195464#M8637</guid>
      <dc:creator>AndyDaytona</dc:creator>
      <dc:date>2011-04-01T00:33:27Z</dc:date>
    </item>
    <item>
      <title>Re: MCF54454 with branch cache hangs my flexbus?</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF54454-with-branch-cache-hangs-my-flexbus/m-p/195465#M8638</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The big issue was that I was changing the the MMU mappings and not flushing the branch cache at the same time I was flushing the other caches.&amp;nbsp; So there was stale data in the branch cache.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Apr 2011 00:44:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF54454-with-branch-cache-hangs-my-flexbus/m-p/195465#M8638</guid>
      <dc:creator>jkmahan</dc:creator>
      <dc:date>2011-04-01T00:44:44Z</dc:date>
    </item>
    <item>
      <title>Re: MCF54454 with branch cache hangs my flexbus?</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF54454-with-branch-cache-hangs-my-flexbus/m-p/195466#M8639</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Ok, unfortunately, we do not use the MMU, so that shouldn't be it.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Apr 2011 00:50:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF54454-with-branch-cache-hangs-my-flexbus/m-p/195466#M8639</guid>
      <dc:creator>AndyDaytona</dc:creator>
      <dc:date>2011-04-01T00:50:42Z</dc:date>
    </item>
  </channel>
</rss>

