<?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 MCF5208 Access errors... in ColdFire/68K Microcontrollers and Processors</title>
    <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5208-Access-errors/m-p/130880#M782</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #ff0000;"&gt;This message contains an entire topic ported&amp;nbsp;from the WildRice - Coldfire forum.&amp;nbsp; Freescale has received the approval from the WildRice administrator on seeding the Freescale forum with messages.&amp;nbsp; The original message and all replies are in this single message. We have seeded this new forum with selected information that we expect will be of value as you search for answers to your questions.&amp;nbsp;&lt;/SPAN&gt; &lt;SPAN style="color: #ff0000;"&gt;Freescale assumes no responsibility whatsoever with respect to Posted Material.&amp;nbsp; For additional information, please see the &lt;A _jive_internal="true" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.freescale.com%2Ffiles%2Fabstract%2Fhelp_page%2FTERMSOFUSE.html" rel="nofollow" target="_blank"&gt;&lt;SPAN style="color: #000000;"&gt;Terms of Use - Message Boards and Community Forums&lt;/SPAN&gt;&lt;/A&gt;.&amp;nbsp; Thank You and Enjoy the Forum!&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Jan 11, 2006, 2:15 PM&lt;/DIV&gt;&lt;DIV&gt;Post #1 of 11 (71 views)&lt;BR /&gt;Copy Shortcut&lt;BR /&gt;&amp;nbsp;[ColdFire] MCF5208 Access errors...&amp;nbsp; Can't Post&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;--------------------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;I am in the process of porting to the 5208.&lt;/DIV&gt;&lt;DIV&gt;I'm currently having problems with access errors,&lt;BR /&gt;any other coldfire I've ever worked on would generate an access error trap&lt;BR /&gt;if you accessed unmapped memory.&lt;/DIV&gt;&lt;DIV&gt;(For example it is a Netburner rule that memory around 0 will not be valid so&lt;BR /&gt;Null pointer accesses will generate traps.)&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;The 5208 does not trap it just hangs.&lt;/DIV&gt;&lt;DIV&gt;This is a problem for us, because we do not directly control the&lt;BR /&gt;code that runs on our modules. (our customers write their own code)&lt;BR /&gt;so that if a customer makes a coding error and overflows a stack or&lt;BR /&gt;references a Null pointer the system will just hang, and it looks&lt;BR /&gt;like a bug in our&lt;BR /&gt;hardware.&lt;/DIV&gt;&lt;DIV&gt;I got a response from Freescale today that is disturbing...&lt;/DIV&gt;&lt;DIV&gt;&amp;gt;The way the internal buses work on the 5208 (and this will be the same&lt;BR /&gt;&amp;gt;on most of our parts going forward), the bus monitor that you are&lt;BR /&gt;&amp;gt;looking at will really only count for accesses in the internal register&lt;BR /&gt;&amp;gt;space. Once an access is passed on to one of the slave ports like the&lt;BR /&gt;&amp;gt;FlexBus, SDRAMC, or SRAM, the bus monitor isn't really in the picture&lt;BR /&gt;&amp;gt;anymore. So the bus monitor is really only going to terminate hung&lt;BR /&gt;&amp;gt;accesses in the internal register space (0xF0000000-0xFFFFFFFF).&lt;/DIV&gt;&lt;DIV&gt;&amp;gt;It sounds like you are accessing space within the FlexBus memory area&lt;BR /&gt;&amp;gt;that isn't mapped to a chip select, right? I just tried this on a board&lt;BR /&gt;&amp;gt;myself and there doesn't seem to be any way to gracefully recover except&lt;BR /&gt;&amp;gt;for a reset. I'm talking to the design team now about changing this for&lt;BR /&gt;&amp;gt;future devices and possibly even fixing it on the 5208/7 and 523x and&lt;BR /&gt;&amp;gt;537x parts if there are respins on any of those parts.&lt;/DIV&gt;&lt;DIV&gt;I've tried to setup the debug breakpoint monitoring stuff to catch these, but&lt;BR /&gt;that does not seem to work either.&lt;/DIV&gt;&lt;DIV&gt;On a 5272 if I setup the debug breakpoint to trap on access to some&lt;BR /&gt;memory range,&lt;BR /&gt;then it generates a debug trap if the specified range is mapped,&lt;BR /&gt;and an access error if the specified range is unmapped.&lt;/DIV&gt;&lt;DIV&gt;On the 5208 the debug breakpoint trap generates a debug trap if the&lt;BR /&gt;memory is mapped,&lt;BR /&gt;and just hangs if it is not mapped. This makes me thing that the&lt;BR /&gt;debug break point logic happens at&lt;BR /&gt;the end of the bus cycle.&lt;/DIV&gt;&lt;DIV&gt;I've also tried to setup a core fault interrupt register, and it does&lt;BR /&gt;not seem to work.&lt;BR /&gt;This makes sense as the CPU can't recognize an interrupt until it&lt;BR /&gt;finishes it's&lt;BR /&gt;present instruction. I've also put a variety of values into the BMT&lt;BR /&gt;register to no avail.&lt;/DIV&gt;&lt;DIV&gt;Has anyone else fought this problem and reached a solution?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Paul&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;--------------------------------------------------------------------&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;Jan 11, 2006, 3:27 PM&lt;/DIV&gt;&lt;DIV&gt;Post #2 of 11 (71 views)&lt;BR /&gt;Copy Shortcut&lt;BR /&gt;&amp;nbsp;Re: [ColdFire] MCF5208 Access errors... [In reply to]&amp;nbsp; Can't Post&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;--------------------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;Paul -&lt;/DIV&gt;&lt;DIV&gt;I don't have an answer for you... just another question. Would the&lt;BR /&gt;547/8x series of processors have the same issue? I've noticed something&lt;BR /&gt;similar but have not pursued yet.&lt;/DIV&gt;&lt;DIV&gt;Thanks for the heads up on this issue.&lt;/DIV&gt;&lt;DIV&gt;Regards,&lt;/DIV&gt;&lt;DIV&gt;Brett&lt;/DIV&gt;&lt;DIV&gt;Paul Breed wrote:&lt;/DIV&gt;&lt;DIV&gt;&amp;gt; I am in the process of porting to the 5208.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; I'm currently having problems with access errors,&lt;BR /&gt;&amp;gt; any other coldfire I've ever worked on would generate an access error&lt;BR /&gt;&amp;gt; trap&lt;BR /&gt;&amp;gt; if you accessed unmapped memory.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; (For example it is a Netburner rule that memory around 0 will not be&lt;BR /&gt;&amp;gt; valid so&lt;BR /&gt;&amp;gt; Null pointer accesses will generate traps.)&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; The 5208 does not trap it just hangs.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; This is a problem for us, because we do not directly control the&lt;BR /&gt;&amp;gt; code that runs on our modules. (our customers write their own code)&lt;BR /&gt;&amp;gt; so that if a customer makes a coding error and overflows a stack or&lt;BR /&gt;&amp;gt; references a Null pointer the system will just hang, and it looks like&lt;BR /&gt;&amp;gt; a bug in our&lt;BR /&gt;&amp;gt; hardware.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; I got a response from Freescale today that is disturbing...&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt;The way the internal buses work on the 5208 (and this will be the same&lt;BR /&gt;&amp;gt; &amp;gt;on most of our parts going forward), the bus monitor that you are&lt;BR /&gt;&amp;gt; &amp;gt;looking at will really only count for accesses in the internal register&lt;BR /&gt;&amp;gt; &amp;gt;space. Once an access is passed on to one of the slave ports like the&lt;BR /&gt;&amp;gt; &amp;gt;FlexBus, SDRAMC, or SRAM, the bus monitor isn't really in the picture&lt;BR /&gt;&amp;gt; &amp;gt;anymore. So the bus monitor is really only going to terminate hung&lt;BR /&gt;&amp;gt; &amp;gt;accesses in the internal register space (0xF0000000-0xFFFFFFFF).&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt;It sounds like you are accessing space within the FlexBus memory area&lt;BR /&gt;&amp;gt; &amp;gt;that isn't mapped to a chip select, right? I just tried this on a board&lt;BR /&gt;&amp;gt; &amp;gt;myself and there doesn't seem to be any way to gracefully recover except&lt;BR /&gt;&amp;gt; &amp;gt;for a reset. I'm talking to the design team now about changing this for&lt;BR /&gt;&amp;gt; &amp;gt;future devices and possibly even fixing it on the 5208/7 and 523x and&lt;BR /&gt;&amp;gt; &amp;gt;537x parts if there are respins on any of those parts.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; I've tried to setup the debug breakpoint monitoring stuff to catch&lt;BR /&gt;&amp;gt; these, but&lt;BR /&gt;&amp;gt; that does not seem to work either.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; On a 5272 if I setup the debug breakpoint to trap on access to some&lt;BR /&gt;&amp;gt; memory range,&lt;BR /&gt;&amp;gt; then it generates a debug trap if the specified range is mapped,&lt;BR /&gt;&amp;gt; and an access error if the specified range is unmapped.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; On the 5208 the debug breakpoint trap generates a debug trap if the&lt;BR /&gt;&amp;gt; memory is mapped,&lt;BR /&gt;&amp;gt; and just hangs if it is not mapped. This makes me thing that the debug&lt;BR /&gt;&amp;gt; break point logic happens at&lt;BR /&gt;&amp;gt; the end of the bus cycle.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; I've also tried to setup a core fault interrupt register, and it does&lt;BR /&gt;&amp;gt; not seem to work.&lt;BR /&gt;&amp;gt; This makes sense as the CPU can't recognize an interrupt until it&lt;BR /&gt;&amp;gt; finishes it's&lt;BR /&gt;&amp;gt; present instruction. I've also put a variety of values into the BMT&lt;BR /&gt;&amp;gt; register to no avail.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; Has anyone else fought this problem and reached a solution?&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; Paul&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; --------------------------------------------------------------------&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;--&lt;BR /&gt;Brett Swimley&lt;BR /&gt;Sr. Design Engineer&lt;BR /&gt;Advanced Electronic Designs&lt;BR /&gt;406-585-8892&lt;/DIV&gt;&lt;DIV&gt;brett DOT swimley AT aedinc DOT net&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;--------------------------------------------------------------------&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;Jan 12, 2006, 5:51 AM&lt;/DIV&gt;&lt;DIV&gt;Post #3 of 11 (69 views)&lt;BR /&gt;Copy Shortcut&lt;BR /&gt;&amp;nbsp;RE: [ColdFire] MCF5208 Access errors... [In reply to]&amp;nbsp; Can't Post&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;--------------------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;Paul&lt;BR /&gt;Most of the CF cores have access control registers that can be used to&lt;BR /&gt;trap access attempts to non-existent memory. It has been quite a while&lt;BR /&gt;since I looked at the 5200 series chips, so I don't remember what they&lt;BR /&gt;have for ACRs. If you configure the chip through the CACR to inhibit&lt;BR /&gt;access to memory that is not configured by the ACRs, you get an&lt;BR /&gt;exception rather than a hang.&lt;/DIV&gt;&lt;DIV&gt;From a more global prospective, if you can't trust all the applications&lt;BR /&gt;that will be loaded into your target, you should probably be looking for&lt;BR /&gt;a chip with an MMU and an OS with protection domains. This will prevent&lt;BR /&gt;an errant process from stepping on the rest of the system. I would&lt;BR /&gt;suggest the V4e chipsets (5471 etc...). As for OS selection, our OS&lt;BR /&gt;(vxWorks) does not yet have MMU support for the coldfire architecture.&lt;BR /&gt;I'd be reluctant to recommend a competitors product but I'm sure someone&lt;BR /&gt;out there will.&lt;/DIV&gt;&lt;DIV&gt;Rich Carter&lt;BR /&gt;Wind River Systems&lt;BR /&gt;603-897-2071&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;gt; -----Original Message-----&lt;BR /&gt;&amp;gt; From: On Behalf Of Paul Breed&lt;BR /&gt;&amp;gt; Sent: Wednesday, January 11, 2006 5:16 PM&lt;BR /&gt;&amp;gt; To: Carter, Richard&lt;BR /&gt;&amp;gt; Subject: [ColdFire] MCF5208 Access errors...&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; I am in the process of porting to the 5208.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; I'm currently having problems with access errors, any other&lt;BR /&gt;&amp;gt; coldfire I've ever worked on would generate an access error&lt;BR /&gt;&amp;gt; trap if you accessed unmapped memory.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; (For example it is a Netburner rule that memory around 0 will&lt;BR /&gt;&amp;gt; not be valid so Null pointer accesses will generate traps.)&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; The 5208 does not trap it just hangs.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; This is a problem for us, because we do not directly control&lt;BR /&gt;&amp;gt; the code that runs on our modules. (our customers write their&lt;BR /&gt;&amp;gt; own code) so that if a customer makes a coding error and&lt;BR /&gt;&amp;gt; overflows a stack or references a Null pointer the system&lt;BR /&gt;&amp;gt; will just hang, and it looks like a bug in our hardware.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; I got a response from Freescale today that is disturbing...&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt;The way the internal buses work on the 5208 (and this will&lt;BR /&gt;&amp;gt; be the same &amp;gt;on most of our parts going forward), the bus&lt;BR /&gt;&amp;gt; monitor that you are &amp;gt;looking at will really only count for&lt;BR /&gt;&amp;gt; accesses in the internal register &amp;gt;space. Once an access is&lt;BR /&gt;&amp;gt; passed on to one of the slave ports like the &amp;gt;FlexBus,&lt;BR /&gt;&amp;gt; SDRAMC, or SRAM, the bus monitor isn't really in the picture&lt;BR /&gt;&amp;gt; &amp;gt;anymore. So the bus monitor is really only going to&lt;BR /&gt;&amp;gt; terminate hung &amp;gt;accesses in the internal register space&lt;BR /&gt;&amp;gt; (0xF0000000-0xFFFFFFFF).&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt;It sounds like you are accessing space within the FlexBus&lt;BR /&gt;&amp;gt; memory area &amp;gt;that isn't mapped to a chip select, right? I&lt;BR /&gt;&amp;gt; just tried this on a board &amp;gt;myself and there doesn't seem to&lt;BR /&gt;&amp;gt; be any way to gracefully recover except &amp;gt;for a reset. I'm&lt;BR /&gt;&amp;gt; talking to the design team now about changing this for&lt;BR /&gt;&amp;gt; &amp;gt;future devices and possibly even fixing it on the 5208/7 and&lt;BR /&gt;&amp;gt; 523x and &amp;gt;537x parts if there are respins on any of those parts.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; I've tried to setup the debug breakpoint monitoring stuff to&lt;BR /&gt;&amp;gt; catch these, but that does not seem to work either.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; On a 5272 if I setup the debug breakpoint to trap on access&lt;BR /&gt;&amp;gt; to some memory range, then it generates a debug trap if the&lt;BR /&gt;&amp;gt; specified range is mapped, and an access error if the&lt;BR /&gt;&amp;gt; specified range is unmapped.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; On the 5208 the debug breakpoint trap generates a debug trap&lt;BR /&gt;&amp;gt; if the memory is mapped, and just hangs if it is not mapped.&lt;BR /&gt;&amp;gt; This makes me thing that the debug break point logic happens&lt;BR /&gt;&amp;gt; at the end of the bus cycle.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; I've also tried to setup a core fault interrupt register, and&lt;BR /&gt;&amp;gt; it does not seem to work.&lt;BR /&gt;&amp;gt; This makes sense as the CPU can't recognize an interrupt&lt;BR /&gt;&amp;gt; until it finishes it's present instruction. I've also put a&lt;BR /&gt;&amp;gt; variety of values into the BMT register to no avail.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; Has anyone else fought this problem and reached a solution?&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; Paul&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; --------------------------------------------------------------------&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;Jan 12, 2006, 7:31 AM&lt;/DIV&gt;&lt;DIV&gt;Post #4 of 11 (68 views)&lt;BR /&gt;Copy Shortcut&lt;BR /&gt;&amp;nbsp;Re: [ColdFire] MCF5208 Access errors... [In reply to]&amp;nbsp; Can't Post&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;--------------------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;Paul -&lt;/DIV&gt;&lt;DIV&gt;We had one other thought here.&lt;/DIV&gt;&lt;DIV&gt;I'm not familiar with the 5208, but is there a chance you could get a&lt;BR /&gt;workaround going with a Watchdog timeout? Or, does the processor hang&lt;BR /&gt;to the point where even the Watchog doesn't trip?&lt;/DIV&gt;&lt;DIV&gt;Good luck,&lt;/DIV&gt;&lt;DIV&gt;Brett&lt;/DIV&gt;&lt;DIV&gt;Paul Breed wrote:&lt;/DIV&gt;&lt;DIV&gt;&amp;gt; I am in the process of porting to the 5208.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; I'm currently having problems with access errors,&lt;BR /&gt;&amp;gt; any other coldfire I've ever worked on would generate an access error&lt;BR /&gt;&amp;gt; trap&lt;BR /&gt;&amp;gt; if you accessed unmapped memory.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; (For example it is a Netburner rule that memory around 0 will not be&lt;BR /&gt;&amp;gt; valid so&lt;BR /&gt;&amp;gt; Null pointer accesses will generate traps.)&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; The 5208 does not trap it just hangs.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; This is a problem for us, because we do not directly control the&lt;BR /&gt;&amp;gt; code that runs on our modules. (our customers write their own code)&lt;BR /&gt;&amp;gt; so that if a customer makes a coding error and overflows a stack or&lt;BR /&gt;&amp;gt; references a Null pointer the system will just hang, and it looks like&lt;BR /&gt;&amp;gt; a bug in our&lt;BR /&gt;&amp;gt; hardware.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; I got a response from Freescale today that is disturbing...&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt;The way the internal buses work on the 5208 (and this will be the same&lt;BR /&gt;&amp;gt; &amp;gt;on most of our parts going forward), the bus monitor that you are&lt;BR /&gt;&amp;gt; &amp;gt;looking at will really only count for accesses in the internal register&lt;BR /&gt;&amp;gt; &amp;gt;space. Once an access is passed on to one of the slave ports like the&lt;BR /&gt;&amp;gt; &amp;gt;FlexBus, SDRAMC, or SRAM, the bus monitor isn't really in the picture&lt;BR /&gt;&amp;gt; &amp;gt;anymore. So the bus monitor is really only going to terminate hung&lt;BR /&gt;&amp;gt; &amp;gt;accesses in the internal register space (0xF0000000-0xFFFFFFFF).&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt;It sounds like you are accessing space within the FlexBus memory area&lt;BR /&gt;&amp;gt; &amp;gt;that isn't mapped to a chip select, right? I just tried this on a board&lt;BR /&gt;&amp;gt; &amp;gt;myself and there doesn't seem to be any way to gracefully recover except&lt;BR /&gt;&amp;gt; &amp;gt;for a reset. I'm talking to the design team now about changing this for&lt;BR /&gt;&amp;gt; &amp;gt;future devices and possibly even fixing it on the 5208/7 and 523x and&lt;BR /&gt;&amp;gt; &amp;gt;537x parts if there are respins on any of those parts.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; I've tried to setup the debug breakpoint monitoring stuff to catch&lt;BR /&gt;&amp;gt; these, but&lt;BR /&gt;&amp;gt; that does not seem to work either.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; On a 5272 if I setup the debug breakpoint to trap on access to some&lt;BR /&gt;&amp;gt; memory range,&lt;BR /&gt;&amp;gt; then it generates a debug trap if the specified range is mapped,&lt;BR /&gt;&amp;gt; and an access error if the specified range is unmapped.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; On the 5208 the debug breakpoint trap generates a debug trap if the&lt;BR /&gt;&amp;gt; memory is mapped,&lt;BR /&gt;&amp;gt; and just hangs if it is not mapped. This makes me thing that the debug&lt;BR /&gt;&amp;gt; break point logic happens at&lt;BR /&gt;&amp;gt; the end of the bus cycle.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; I've also tried to setup a core fault interrupt register, and it does&lt;BR /&gt;&amp;gt; not seem to work.&lt;BR /&gt;&amp;gt; This makes sense as the CPU can't recognize an interrupt until it&lt;BR /&gt;&amp;gt; finishes it's&lt;BR /&gt;&amp;gt; present instruction. I've also put a variety of values into the BMT&lt;BR /&gt;&amp;gt; register to no avail.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; Has anyone else fought this problem and reached a solution?&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; Paul&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&lt;BR /&gt;Brett Swimley&lt;BR /&gt;Sr. Design Engineer&lt;BR /&gt;Advanced Electronic Designs&lt;BR /&gt;406-585-8892&lt;/DIV&gt;&lt;DIV&gt;brett DOT swimley AT aedinc DOT net&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;--------------------------------------------------------------------&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&lt;/DIV&gt;&lt;P&gt;Message Edited by Dietrich on &lt;SPAN class="date_text"&gt;04-01-2006&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;11:40 AM&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Message Edited by Dietrich on &lt;SPAN class="date_text"&gt;04-04-2006&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;09:40 PM&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 01 Apr 2006 06:33:58 GMT</pubDate>
    <dc:creator>Dietrich</dc:creator>
    <dc:date>2006-04-01T06:33:58Z</dc:date>
    <item>
      <title>MCF5208 Access errors...</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5208-Access-errors/m-p/130880#M782</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #ff0000;"&gt;This message contains an entire topic ported&amp;nbsp;from the WildRice - Coldfire forum.&amp;nbsp; Freescale has received the approval from the WildRice administrator on seeding the Freescale forum with messages.&amp;nbsp; The original message and all replies are in this single message. We have seeded this new forum with selected information that we expect will be of value as you search for answers to your questions.&amp;nbsp;&lt;/SPAN&gt; &lt;SPAN style="color: #ff0000;"&gt;Freescale assumes no responsibility whatsoever with respect to Posted Material.&amp;nbsp; For additional information, please see the &lt;A _jive_internal="true" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.freescale.com%2Ffiles%2Fabstract%2Fhelp_page%2FTERMSOFUSE.html" rel="nofollow" target="_blank"&gt;&lt;SPAN style="color: #000000;"&gt;Terms of Use - Message Boards and Community Forums&lt;/SPAN&gt;&lt;/A&gt;.&amp;nbsp; Thank You and Enjoy the Forum!&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Jan 11, 2006, 2:15 PM&lt;/DIV&gt;&lt;DIV&gt;Post #1 of 11 (71 views)&lt;BR /&gt;Copy Shortcut&lt;BR /&gt;&amp;nbsp;[ColdFire] MCF5208 Access errors...&amp;nbsp; Can't Post&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;--------------------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;I am in the process of porting to the 5208.&lt;/DIV&gt;&lt;DIV&gt;I'm currently having problems with access errors,&lt;BR /&gt;any other coldfire I've ever worked on would generate an access error trap&lt;BR /&gt;if you accessed unmapped memory.&lt;/DIV&gt;&lt;DIV&gt;(For example it is a Netburner rule that memory around 0 will not be valid so&lt;BR /&gt;Null pointer accesses will generate traps.)&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;The 5208 does not trap it just hangs.&lt;/DIV&gt;&lt;DIV&gt;This is a problem for us, because we do not directly control the&lt;BR /&gt;code that runs on our modules. (our customers write their own code)&lt;BR /&gt;so that if a customer makes a coding error and overflows a stack or&lt;BR /&gt;references a Null pointer the system will just hang, and it looks&lt;BR /&gt;like a bug in our&lt;BR /&gt;hardware.&lt;/DIV&gt;&lt;DIV&gt;I got a response from Freescale today that is disturbing...&lt;/DIV&gt;&lt;DIV&gt;&amp;gt;The way the internal buses work on the 5208 (and this will be the same&lt;BR /&gt;&amp;gt;on most of our parts going forward), the bus monitor that you are&lt;BR /&gt;&amp;gt;looking at will really only count for accesses in the internal register&lt;BR /&gt;&amp;gt;space. Once an access is passed on to one of the slave ports like the&lt;BR /&gt;&amp;gt;FlexBus, SDRAMC, or SRAM, the bus monitor isn't really in the picture&lt;BR /&gt;&amp;gt;anymore. So the bus monitor is really only going to terminate hung&lt;BR /&gt;&amp;gt;accesses in the internal register space (0xF0000000-0xFFFFFFFF).&lt;/DIV&gt;&lt;DIV&gt;&amp;gt;It sounds like you are accessing space within the FlexBus memory area&lt;BR /&gt;&amp;gt;that isn't mapped to a chip select, right? I just tried this on a board&lt;BR /&gt;&amp;gt;myself and there doesn't seem to be any way to gracefully recover except&lt;BR /&gt;&amp;gt;for a reset. I'm talking to the design team now about changing this for&lt;BR /&gt;&amp;gt;future devices and possibly even fixing it on the 5208/7 and 523x and&lt;BR /&gt;&amp;gt;537x parts if there are respins on any of those parts.&lt;/DIV&gt;&lt;DIV&gt;I've tried to setup the debug breakpoint monitoring stuff to catch these, but&lt;BR /&gt;that does not seem to work either.&lt;/DIV&gt;&lt;DIV&gt;On a 5272 if I setup the debug breakpoint to trap on access to some&lt;BR /&gt;memory range,&lt;BR /&gt;then it generates a debug trap if the specified range is mapped,&lt;BR /&gt;and an access error if the specified range is unmapped.&lt;/DIV&gt;&lt;DIV&gt;On the 5208 the debug breakpoint trap generates a debug trap if the&lt;BR /&gt;memory is mapped,&lt;BR /&gt;and just hangs if it is not mapped. This makes me thing that the&lt;BR /&gt;debug break point logic happens at&lt;BR /&gt;the end of the bus cycle.&lt;/DIV&gt;&lt;DIV&gt;I've also tried to setup a core fault interrupt register, and it does&lt;BR /&gt;not seem to work.&lt;BR /&gt;This makes sense as the CPU can't recognize an interrupt until it&lt;BR /&gt;finishes it's&lt;BR /&gt;present instruction. I've also put a variety of values into the BMT&lt;BR /&gt;register to no avail.&lt;/DIV&gt;&lt;DIV&gt;Has anyone else fought this problem and reached a solution?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Paul&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;--------------------------------------------------------------------&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;Jan 11, 2006, 3:27 PM&lt;/DIV&gt;&lt;DIV&gt;Post #2 of 11 (71 views)&lt;BR /&gt;Copy Shortcut&lt;BR /&gt;&amp;nbsp;Re: [ColdFire] MCF5208 Access errors... [In reply to]&amp;nbsp; Can't Post&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;--------------------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;Paul -&lt;/DIV&gt;&lt;DIV&gt;I don't have an answer for you... just another question. Would the&lt;BR /&gt;547/8x series of processors have the same issue? I've noticed something&lt;BR /&gt;similar but have not pursued yet.&lt;/DIV&gt;&lt;DIV&gt;Thanks for the heads up on this issue.&lt;/DIV&gt;&lt;DIV&gt;Regards,&lt;/DIV&gt;&lt;DIV&gt;Brett&lt;/DIV&gt;&lt;DIV&gt;Paul Breed wrote:&lt;/DIV&gt;&lt;DIV&gt;&amp;gt; I am in the process of porting to the 5208.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; I'm currently having problems with access errors,&lt;BR /&gt;&amp;gt; any other coldfire I've ever worked on would generate an access error&lt;BR /&gt;&amp;gt; trap&lt;BR /&gt;&amp;gt; if you accessed unmapped memory.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; (For example it is a Netburner rule that memory around 0 will not be&lt;BR /&gt;&amp;gt; valid so&lt;BR /&gt;&amp;gt; Null pointer accesses will generate traps.)&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; The 5208 does not trap it just hangs.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; This is a problem for us, because we do not directly control the&lt;BR /&gt;&amp;gt; code that runs on our modules. (our customers write their own code)&lt;BR /&gt;&amp;gt; so that if a customer makes a coding error and overflows a stack or&lt;BR /&gt;&amp;gt; references a Null pointer the system will just hang, and it looks like&lt;BR /&gt;&amp;gt; a bug in our&lt;BR /&gt;&amp;gt; hardware.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; I got a response from Freescale today that is disturbing...&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt;The way the internal buses work on the 5208 (and this will be the same&lt;BR /&gt;&amp;gt; &amp;gt;on most of our parts going forward), the bus monitor that you are&lt;BR /&gt;&amp;gt; &amp;gt;looking at will really only count for accesses in the internal register&lt;BR /&gt;&amp;gt; &amp;gt;space. Once an access is passed on to one of the slave ports like the&lt;BR /&gt;&amp;gt; &amp;gt;FlexBus, SDRAMC, or SRAM, the bus monitor isn't really in the picture&lt;BR /&gt;&amp;gt; &amp;gt;anymore. So the bus monitor is really only going to terminate hung&lt;BR /&gt;&amp;gt; &amp;gt;accesses in the internal register space (0xF0000000-0xFFFFFFFF).&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt;It sounds like you are accessing space within the FlexBus memory area&lt;BR /&gt;&amp;gt; &amp;gt;that isn't mapped to a chip select, right? I just tried this on a board&lt;BR /&gt;&amp;gt; &amp;gt;myself and there doesn't seem to be any way to gracefully recover except&lt;BR /&gt;&amp;gt; &amp;gt;for a reset. I'm talking to the design team now about changing this for&lt;BR /&gt;&amp;gt; &amp;gt;future devices and possibly even fixing it on the 5208/7 and 523x and&lt;BR /&gt;&amp;gt; &amp;gt;537x parts if there are respins on any of those parts.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; I've tried to setup the debug breakpoint monitoring stuff to catch&lt;BR /&gt;&amp;gt; these, but&lt;BR /&gt;&amp;gt; that does not seem to work either.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; On a 5272 if I setup the debug breakpoint to trap on access to some&lt;BR /&gt;&amp;gt; memory range,&lt;BR /&gt;&amp;gt; then it generates a debug trap if the specified range is mapped,&lt;BR /&gt;&amp;gt; and an access error if the specified range is unmapped.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; On the 5208 the debug breakpoint trap generates a debug trap if the&lt;BR /&gt;&amp;gt; memory is mapped,&lt;BR /&gt;&amp;gt; and just hangs if it is not mapped. This makes me thing that the debug&lt;BR /&gt;&amp;gt; break point logic happens at&lt;BR /&gt;&amp;gt; the end of the bus cycle.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; I've also tried to setup a core fault interrupt register, and it does&lt;BR /&gt;&amp;gt; not seem to work.&lt;BR /&gt;&amp;gt; This makes sense as the CPU can't recognize an interrupt until it&lt;BR /&gt;&amp;gt; finishes it's&lt;BR /&gt;&amp;gt; present instruction. I've also put a variety of values into the BMT&lt;BR /&gt;&amp;gt; register to no avail.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; Has anyone else fought this problem and reached a solution?&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; Paul&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; --------------------------------------------------------------------&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;--&lt;BR /&gt;Brett Swimley&lt;BR /&gt;Sr. Design Engineer&lt;BR /&gt;Advanced Electronic Designs&lt;BR /&gt;406-585-8892&lt;/DIV&gt;&lt;DIV&gt;brett DOT swimley AT aedinc DOT net&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;--------------------------------------------------------------------&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;Jan 12, 2006, 5:51 AM&lt;/DIV&gt;&lt;DIV&gt;Post #3 of 11 (69 views)&lt;BR /&gt;Copy Shortcut&lt;BR /&gt;&amp;nbsp;RE: [ColdFire] MCF5208 Access errors... [In reply to]&amp;nbsp; Can't Post&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;--------------------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;Paul&lt;BR /&gt;Most of the CF cores have access control registers that can be used to&lt;BR /&gt;trap access attempts to non-existent memory. It has been quite a while&lt;BR /&gt;since I looked at the 5200 series chips, so I don't remember what they&lt;BR /&gt;have for ACRs. If you configure the chip through the CACR to inhibit&lt;BR /&gt;access to memory that is not configured by the ACRs, you get an&lt;BR /&gt;exception rather than a hang.&lt;/DIV&gt;&lt;DIV&gt;From a more global prospective, if you can't trust all the applications&lt;BR /&gt;that will be loaded into your target, you should probably be looking for&lt;BR /&gt;a chip with an MMU and an OS with protection domains. This will prevent&lt;BR /&gt;an errant process from stepping on the rest of the system. I would&lt;BR /&gt;suggest the V4e chipsets (5471 etc...). As for OS selection, our OS&lt;BR /&gt;(vxWorks) does not yet have MMU support for the coldfire architecture.&lt;BR /&gt;I'd be reluctant to recommend a competitors product but I'm sure someone&lt;BR /&gt;out there will.&lt;/DIV&gt;&lt;DIV&gt;Rich Carter&lt;BR /&gt;Wind River Systems&lt;BR /&gt;603-897-2071&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;gt; -----Original Message-----&lt;BR /&gt;&amp;gt; From: On Behalf Of Paul Breed&lt;BR /&gt;&amp;gt; Sent: Wednesday, January 11, 2006 5:16 PM&lt;BR /&gt;&amp;gt; To: Carter, Richard&lt;BR /&gt;&amp;gt; Subject: [ColdFire] MCF5208 Access errors...&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; I am in the process of porting to the 5208.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; I'm currently having problems with access errors, any other&lt;BR /&gt;&amp;gt; coldfire I've ever worked on would generate an access error&lt;BR /&gt;&amp;gt; trap if you accessed unmapped memory.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; (For example it is a Netburner rule that memory around 0 will&lt;BR /&gt;&amp;gt; not be valid so Null pointer accesses will generate traps.)&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; The 5208 does not trap it just hangs.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; This is a problem for us, because we do not directly control&lt;BR /&gt;&amp;gt; the code that runs on our modules. (our customers write their&lt;BR /&gt;&amp;gt; own code) so that if a customer makes a coding error and&lt;BR /&gt;&amp;gt; overflows a stack or references a Null pointer the system&lt;BR /&gt;&amp;gt; will just hang, and it looks like a bug in our hardware.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; I got a response from Freescale today that is disturbing...&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt;The way the internal buses work on the 5208 (and this will&lt;BR /&gt;&amp;gt; be the same &amp;gt;on most of our parts going forward), the bus&lt;BR /&gt;&amp;gt; monitor that you are &amp;gt;looking at will really only count for&lt;BR /&gt;&amp;gt; accesses in the internal register &amp;gt;space. Once an access is&lt;BR /&gt;&amp;gt; passed on to one of the slave ports like the &amp;gt;FlexBus,&lt;BR /&gt;&amp;gt; SDRAMC, or SRAM, the bus monitor isn't really in the picture&lt;BR /&gt;&amp;gt; &amp;gt;anymore. So the bus monitor is really only going to&lt;BR /&gt;&amp;gt; terminate hung &amp;gt;accesses in the internal register space&lt;BR /&gt;&amp;gt; (0xF0000000-0xFFFFFFFF).&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt;It sounds like you are accessing space within the FlexBus&lt;BR /&gt;&amp;gt; memory area &amp;gt;that isn't mapped to a chip select, right? I&lt;BR /&gt;&amp;gt; just tried this on a board &amp;gt;myself and there doesn't seem to&lt;BR /&gt;&amp;gt; be any way to gracefully recover except &amp;gt;for a reset. I'm&lt;BR /&gt;&amp;gt; talking to the design team now about changing this for&lt;BR /&gt;&amp;gt; &amp;gt;future devices and possibly even fixing it on the 5208/7 and&lt;BR /&gt;&amp;gt; 523x and &amp;gt;537x parts if there are respins on any of those parts.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; I've tried to setup the debug breakpoint monitoring stuff to&lt;BR /&gt;&amp;gt; catch these, but that does not seem to work either.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; On a 5272 if I setup the debug breakpoint to trap on access&lt;BR /&gt;&amp;gt; to some memory range, then it generates a debug trap if the&lt;BR /&gt;&amp;gt; specified range is mapped, and an access error if the&lt;BR /&gt;&amp;gt; specified range is unmapped.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; On the 5208 the debug breakpoint trap generates a debug trap&lt;BR /&gt;&amp;gt; if the memory is mapped, and just hangs if it is not mapped.&lt;BR /&gt;&amp;gt; This makes me thing that the debug break point logic happens&lt;BR /&gt;&amp;gt; at the end of the bus cycle.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; I've also tried to setup a core fault interrupt register, and&lt;BR /&gt;&amp;gt; it does not seem to work.&lt;BR /&gt;&amp;gt; This makes sense as the CPU can't recognize an interrupt&lt;BR /&gt;&amp;gt; until it finishes it's present instruction. I've also put a&lt;BR /&gt;&amp;gt; variety of values into the BMT register to no avail.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; Has anyone else fought this problem and reached a solution?&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; Paul&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; --------------------------------------------------------------------&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;Jan 12, 2006, 7:31 AM&lt;/DIV&gt;&lt;DIV&gt;Post #4 of 11 (68 views)&lt;BR /&gt;Copy Shortcut&lt;BR /&gt;&amp;nbsp;Re: [ColdFire] MCF5208 Access errors... [In reply to]&amp;nbsp; Can't Post&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;--------------------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;Paul -&lt;/DIV&gt;&lt;DIV&gt;We had one other thought here.&lt;/DIV&gt;&lt;DIV&gt;I'm not familiar with the 5208, but is there a chance you could get a&lt;BR /&gt;workaround going with a Watchdog timeout? Or, does the processor hang&lt;BR /&gt;to the point where even the Watchog doesn't trip?&lt;/DIV&gt;&lt;DIV&gt;Good luck,&lt;/DIV&gt;&lt;DIV&gt;Brett&lt;/DIV&gt;&lt;DIV&gt;Paul Breed wrote:&lt;/DIV&gt;&lt;DIV&gt;&amp;gt; I am in the process of porting to the 5208.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; I'm currently having problems with access errors,&lt;BR /&gt;&amp;gt; any other coldfire I've ever worked on would generate an access error&lt;BR /&gt;&amp;gt; trap&lt;BR /&gt;&amp;gt; if you accessed unmapped memory.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; (For example it is a Netburner rule that memory around 0 will not be&lt;BR /&gt;&amp;gt; valid so&lt;BR /&gt;&amp;gt; Null pointer accesses will generate traps.)&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; The 5208 does not trap it just hangs.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; This is a problem for us, because we do not directly control the&lt;BR /&gt;&amp;gt; code that runs on our modules. (our customers write their own code)&lt;BR /&gt;&amp;gt; so that if a customer makes a coding error and overflows a stack or&lt;BR /&gt;&amp;gt; references a Null pointer the system will just hang, and it looks like&lt;BR /&gt;&amp;gt; a bug in our&lt;BR /&gt;&amp;gt; hardware.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; I got a response from Freescale today that is disturbing...&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt;The way the internal buses work on the 5208 (and this will be the same&lt;BR /&gt;&amp;gt; &amp;gt;on most of our parts going forward), the bus monitor that you are&lt;BR /&gt;&amp;gt; &amp;gt;looking at will really only count for accesses in the internal register&lt;BR /&gt;&amp;gt; &amp;gt;space. Once an access is passed on to one of the slave ports like the&lt;BR /&gt;&amp;gt; &amp;gt;FlexBus, SDRAMC, or SRAM, the bus monitor isn't really in the picture&lt;BR /&gt;&amp;gt; &amp;gt;anymore. So the bus monitor is really only going to terminate hung&lt;BR /&gt;&amp;gt; &amp;gt;accesses in the internal register space (0xF0000000-0xFFFFFFFF).&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt;It sounds like you are accessing space within the FlexBus memory area&lt;BR /&gt;&amp;gt; &amp;gt;that isn't mapped to a chip select, right? I just tried this on a board&lt;BR /&gt;&amp;gt; &amp;gt;myself and there doesn't seem to be any way to gracefully recover except&lt;BR /&gt;&amp;gt; &amp;gt;for a reset. I'm talking to the design team now about changing this for&lt;BR /&gt;&amp;gt; &amp;gt;future devices and possibly even fixing it on the 5208/7 and 523x and&lt;BR /&gt;&amp;gt; &amp;gt;537x parts if there are respins on any of those parts.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; I've tried to setup the debug breakpoint monitoring stuff to catch&lt;BR /&gt;&amp;gt; these, but&lt;BR /&gt;&amp;gt; that does not seem to work either.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; On a 5272 if I setup the debug breakpoint to trap on access to some&lt;BR /&gt;&amp;gt; memory range,&lt;BR /&gt;&amp;gt; then it generates a debug trap if the specified range is mapped,&lt;BR /&gt;&amp;gt; and an access error if the specified range is unmapped.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; On the 5208 the debug breakpoint trap generates a debug trap if the&lt;BR /&gt;&amp;gt; memory is mapped,&lt;BR /&gt;&amp;gt; and just hangs if it is not mapped. This makes me thing that the debug&lt;BR /&gt;&amp;gt; break point logic happens at&lt;BR /&gt;&amp;gt; the end of the bus cycle.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; I've also tried to setup a core fault interrupt register, and it does&lt;BR /&gt;&amp;gt; not seem to work.&lt;BR /&gt;&amp;gt; This makes sense as the CPU can't recognize an interrupt until it&lt;BR /&gt;&amp;gt; finishes it's&lt;BR /&gt;&amp;gt; present instruction. I've also put a variety of values into the BMT&lt;BR /&gt;&amp;gt; register to no avail.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; Has anyone else fought this problem and reached a solution?&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; Paul&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&lt;BR /&gt;Brett Swimley&lt;BR /&gt;Sr. Design Engineer&lt;BR /&gt;Advanced Electronic Designs&lt;BR /&gt;406-585-8892&lt;/DIV&gt;&lt;DIV&gt;brett DOT swimley AT aedinc DOT net&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;--------------------------------------------------------------------&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&lt;/DIV&gt;&lt;P&gt;Message Edited by Dietrich on &lt;SPAN class="date_text"&gt;04-01-2006&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;11:40 AM&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Message Edited by Dietrich on &lt;SPAN class="date_text"&gt;04-04-2006&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;09:40 PM&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 01 Apr 2006 06:33:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5208-Access-errors/m-p/130880#M782</guid>
      <dc:creator>Dietrich</dc:creator>
      <dc:date>2006-04-01T06:33:58Z</dc:date>
    </item>
    <item>
      <title>Re: MCF5208 Access errors...</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5208-Access-errors/m-p/130881#M783</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;FONT color="#ff0000"&gt;This message contains an entire topic ported&amp;nbsp;from the WildRice - Coldfire forum.&amp;nbsp; Freescale has received the approval from the WildRice administrator on seeding the Freescale forum with messages.&amp;nbsp; The original message and all replies are in this single message. We have seeded this new forum with selected information that we expect will be of value as you search for answers to your questions.&amp;nbsp;&lt;/FONT&gt; &lt;FONT color="#ff0000"&gt;Freescale assumes no responsibility whatsoever with respect to Posted Material.&amp;nbsp; For additional information, please see the &lt;A href="http://www.freescale.com/files/abstract/help_page/TERMSOFUSE.html" rel="nofollow" target="_blank"&gt;&lt;FONT color="#000000"&gt;Terms of Use - Message Boards and Community Forums&lt;/FONT&gt;&lt;/A&gt;.&amp;nbsp; Thank You and Enjoy the Forum!&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&lt;HR /&gt;Jan 12, 2006, 8:01 AM&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Post #5 of 11 (67 views)&lt;BR /&gt;Copy Shortcut&lt;BR /&gt;&amp;nbsp;Re: [ColdFire] MCF5208 Access errors... [In reply to]&amp;nbsp; Can't Post&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;--------------------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;Brett,&lt;/DIV&gt;&lt;DIV&gt;I noticed a similar issue with the 547x. Accesses to invalid memory&lt;BR /&gt;addresses would hang the processor for ~30 seconds on our 547x running at&lt;BR /&gt;133/266MHz. The issue was resolved by configuring the XLB arbiter address&lt;BR /&gt;tenure timeout and data tenure timeout to values smaller than the defaults.&lt;BR /&gt;To trap these invalid accesses I enabled the XLB arbiter interrupt on either&lt;BR /&gt;an address tenure timeout or a data tenure timeout.&lt;/DIV&gt;&lt;DIV&gt;Ken&lt;/DIV&gt;&lt;DIV&gt;&amp;gt;Would the 547/8x series of processors have the same issue?&lt;BR /&gt;--------------------------------------------------------------------&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;Jan 12, 2006, 9:13 AM&lt;/DIV&gt;&lt;DIV&gt;Post #6 of 11 (64 views)&lt;BR /&gt;Copy Shortcut&lt;BR /&gt;&amp;nbsp;RE: [ColdFire] MCF5208 Access errors... [In reply to]&amp;nbsp; Can't Post&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;--------------------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;All previous 52xx cores would allow you to enable the bus time out&lt;BR /&gt;monitor and then generate&lt;BR /&gt;a access error trap if you timed out. The 5208 is set up differently.&lt;/DIV&gt;&lt;DIV&gt;The manual seems to indicate that you can set up an interrupt to&lt;BR /&gt;happed if the bus times out,&lt;BR /&gt;alas I've been unable to make that work with the CPU, if I point the ethernet&lt;BR /&gt;at a bad area I get an interrupt, but not if I point the core CPU.&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;I can recover witht he watchdog, but it just tells me something happened,&lt;BR /&gt;not what and where like the access error trap.&lt;/DIV&gt;&lt;DIV&gt;Paul&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;At 05:51 AM 1/12/2006, you wrote:&lt;BR /&gt;&amp;gt;Paul&lt;BR /&gt;&amp;gt;Most of the CF cores have access control registers that can be used to&lt;BR /&gt;&amp;gt;trap access attempts to non-existent memory. It has been quite a while&lt;BR /&gt;&amp;gt;since I looked at the 5200 series chips, so I don't remember what they&lt;BR /&gt;&amp;gt;have for ACRs. If you configure the chip through the CACR to inhibit&lt;BR /&gt;&amp;gt;access to memory that is not configured by the ACRs, you get an&lt;BR /&gt;&amp;gt;exception rather than a hang.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt;From a more global prospective, if you can't trust all the applications&lt;BR /&gt;&amp;gt;that will be loaded into your target, you should probably be looking for&lt;BR /&gt;&amp;gt;a chip with an MMU and an OS with protection domains. This will prevent&lt;BR /&gt;&amp;gt;an errant process from stepping on the rest of the system. I would&lt;BR /&gt;&amp;gt;suggest the V4e chipsets (5471 etc...). As for OS selection, our OS&lt;BR /&gt;&amp;gt;(vxWorks) does not yet have MMU support for the coldfire architecture.&lt;BR /&gt;&amp;gt;I'd be reluctant to recommend a competitors product but I'm sure someone&lt;BR /&gt;&amp;gt;out there will.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;Rich Carter&lt;BR /&gt;&amp;gt;Wind River Systems&lt;BR /&gt;&amp;gt;603-897-2071&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt; -----Original Message-----&lt;BR /&gt;&amp;gt; &amp;gt; From: On Behalf Of Paul Breed&lt;BR /&gt;&amp;gt; &amp;gt; Sent: Wednesday, January 11, 2006 5:16 PM&lt;BR /&gt;&amp;gt; &amp;gt; To: Carter, Richard&lt;BR /&gt;&amp;gt; &amp;gt; Subject: [ColdFire] MCF5208 Access errors...&lt;BR /&gt;&amp;gt; &amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt; I am in the process of porting to the 5208.&lt;BR /&gt;&amp;gt; &amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt; I'm currently having problems with access errors, any other&lt;BR /&gt;&amp;gt; &amp;gt; coldfire I've ever worked on would generate an access error&lt;BR /&gt;&amp;gt; &amp;gt; trap if you accessed unmapped memory.&lt;BR /&gt;&amp;gt; &amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt; (For example it is a Netburner rule that memory around 0 will&lt;BR /&gt;&amp;gt; &amp;gt; not be valid so Null pointer accesses will generate traps.)&lt;BR /&gt;&amp;gt; &amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt; The 5208 does not trap it just hangs.&lt;BR /&gt;&amp;gt; &amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt; This is a problem for us, because we do not directly control&lt;BR /&gt;&amp;gt; &amp;gt; the code that runs on our modules. (our customers write their&lt;BR /&gt;&amp;gt; &amp;gt; own code) so that if a customer makes a coding error and&lt;BR /&gt;&amp;gt; &amp;gt; overflows a stack or references a Null pointer the system&lt;BR /&gt;&amp;gt; &amp;gt; will just hang, and it looks like a bug in our hardware.&lt;BR /&gt;&amp;gt; &amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt; I got a response from Freescale today that is disturbing...&lt;BR /&gt;&amp;gt; &amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt; &amp;gt;The way the internal buses work on the 5208 (and this will&lt;BR /&gt;&amp;gt; &amp;gt; be the same &amp;gt;on most of our parts going forward), the bus&lt;BR /&gt;&amp;gt; &amp;gt; monitor that you are &amp;gt;looking at will really only count for&lt;BR /&gt;&amp;gt; &amp;gt; accesses in the internal register &amp;gt;space. Once an access is&lt;BR /&gt;&amp;gt; &amp;gt; passed on to one of the slave ports like the &amp;gt;FlexBus,&lt;BR /&gt;&amp;gt; &amp;gt; SDRAMC, or SRAM, the bus monitor isn't really in the picture&lt;BR /&gt;&amp;gt; &amp;gt; &amp;gt;anymore. So the bus monitor is really only going to&lt;BR /&gt;&amp;gt; &amp;gt; terminate hung &amp;gt;accesses in the internal register space&lt;BR /&gt;&amp;gt; &amp;gt; (0xF0000000-0xFFFFFFFF).&lt;BR /&gt;&amp;gt; &amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt; &amp;gt;It sounds like you are accessing space within the FlexBus&lt;BR /&gt;&amp;gt; &amp;gt; memory area &amp;gt;that isn't mapped to a chip select, right? I&lt;BR /&gt;&amp;gt; &amp;gt; just tried this on a board &amp;gt;myself and there doesn't seem to&lt;BR /&gt;&amp;gt; &amp;gt; be any way to gracefully recover except &amp;gt;for a reset. I'm&lt;BR /&gt;&amp;gt; &amp;gt; talking to the design team now about changing this for&lt;BR /&gt;&amp;gt; &amp;gt; &amp;gt;future devices and possibly even fixing it on the 5208/7 and&lt;BR /&gt;&amp;gt; &amp;gt; 523x and &amp;gt;537x parts if there are respins on any of those parts.&lt;BR /&gt;&amp;gt; &amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt; I've tried to setup the debug breakpoint monitoring stuff to&lt;BR /&gt;&amp;gt; &amp;gt; catch these, but that does not seem to work either.&lt;BR /&gt;&amp;gt; &amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt; On a 5272 if I setup the debug breakpoint to trap on access&lt;BR /&gt;&amp;gt; &amp;gt; to some memory range, then it generates a debug trap if the&lt;BR /&gt;&amp;gt; &amp;gt; specified range is mapped, and an access error if the&lt;BR /&gt;&amp;gt; &amp;gt; specified range is unmapped.&lt;BR /&gt;&amp;gt; &amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt; On the 5208 the debug breakpoint trap generates a debug trap&lt;BR /&gt;&amp;gt; &amp;gt; if the memory is mapped, and just hangs if it is not mapped.&lt;BR /&gt;&amp;gt; &amp;gt; This makes me thing that the debug break point logic happens&lt;BR /&gt;&amp;gt; &amp;gt; at the end of the bus cycle.&lt;BR /&gt;&amp;gt; &amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt; I've also tried to setup a core fault interrupt register, and&lt;BR /&gt;&amp;gt; &amp;gt; it does not seem to work.&lt;BR /&gt;&amp;gt; &amp;gt; This makes sense as the CPU can't recognize an interrupt&lt;BR /&gt;&amp;gt; &amp;gt; until it finishes it's present instruction. I've also put a&lt;BR /&gt;&amp;gt; &amp;gt; variety of values into the BMT register to no avail.&lt;BR /&gt;&amp;gt; &amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt; Has anyone else fought this problem and reached a solution?&lt;BR /&gt;&amp;gt; &amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt; Paul&lt;BR /&gt;&amp;gt; &amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt;&lt;BR /&gt;&amp;gt; &amp;gt; --------------------------------------------------------------------&lt;BR /&gt;--------------------------------------------------------------------&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;Jan 12, 2006, 9:32 AM&lt;/DIV&gt;&lt;DIV&gt;Post #7 of 11 (64 views)&lt;BR /&gt;Copy Shortcut&lt;BR /&gt;&amp;nbsp;Re: [ColdFire] MCF5208 Access errors... [In reply to]&amp;nbsp; Can't Post&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;--------------------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;Ken -&lt;/DIV&gt;&lt;DIV&gt;Thanks for the info. I will look into this and see if this resolves my&lt;BR /&gt;issue.&lt;/DIV&gt;&lt;DIV&gt;Regards,&lt;/DIV&gt;&lt;DIV&gt;Brett&lt;/DIV&gt;&lt;DIV&gt;Ken Johnson wrote:&lt;/DIV&gt;&lt;DIV&gt;&amp;gt;Brett,&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;I noticed a similar issue with the 547x. Accesses to invalid memory&lt;BR /&gt;&amp;gt;addresses would hang the processor for ~30 seconds on our 547x running at&lt;BR /&gt;&amp;gt;133/266MHz. The issue was resolved by configuring the XLB arbiter address&lt;BR /&gt;&amp;gt;tenure timeout and data tenure timeout to values smaller than the defaults.&lt;BR /&gt;&amp;gt;To trap these invalid accesses I enabled the XLB arbiter interrupt on either&lt;BR /&gt;&amp;gt;an address tenure timeout or a data tenure timeout.&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;Ken&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&lt;BR /&gt;&amp;gt;&amp;gt;Would the 547/8x series of processors have the same issue?&lt;BR /&gt;&amp;gt;&amp;gt;&lt;BR /&gt;&amp;gt;&amp;gt;&lt;BR /&gt;&amp;gt;--------------------------------------------------------------------&lt;BR /&gt;&lt;BR /&gt;Brett Swimley&lt;BR /&gt;Sr. Design Engineer&lt;BR /&gt;Advanced Electronic Designs&lt;BR /&gt;406-585-8892&lt;/DIV&gt;&lt;DIV&gt;brett DOT swimley AT aedinc DOT net&lt;/DIV&gt;&lt;DIV&gt;--------------------------------------------------------------------&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;Jan 12, 2006, 9:45 AM&lt;/DIV&gt;&lt;DIV&gt;Post #8 of 11 (65 views)&lt;BR /&gt;Copy Shortcut&lt;BR /&gt;&amp;nbsp;Re: [Listserv] [ColdFire] MCF5208 Access errors... [In reply to]&amp;nbsp; Can't Post&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;--------------------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;You could always add an external bus monitor&lt;BR /&gt;implemented in a PLD... for a lot more money&lt;BR /&gt;than what was saved in the die area used by&lt;BR /&gt;on-chip external bus monitor. Personally, I&lt;BR /&gt;think removing it from MMU-less parts was a&lt;BR /&gt;mistake, because it complicates development&lt;BR /&gt;and would incite me to look at competitor's&lt;BR /&gt;part. On the other hand, other MCF52xx have&lt;BR /&gt;the BM only monitoring external accesses, so&lt;BR /&gt;addressing an unused location within the&lt;BR /&gt;register space would also hang the processor.&lt;BR /&gt;Aaargh! What's up Freescale, this used to&lt;BR /&gt;work just fine in the 683xx days!&lt;/DIV&gt;&lt;DIV&gt;Marc&lt;BR /&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Jan 12, 2006, 2:26 PM&lt;/DIV&gt;&lt;DIV&gt;Post #9 of 11 (62 views)&lt;BR /&gt;Copy Shortcut&lt;BR /&gt;&amp;nbsp;Re: [ColdFire] MCF5208 Access errors... [In reply to]&amp;nbsp; Can't Post&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;--------------------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;I believe I have a partial work around.&lt;BR /&gt;I map chipselect to the unused areas and the&lt;BR /&gt;use the chipselect to trigger an external interrupt to capture the location.&lt;/DIV&gt;&lt;DIV&gt;This keeps the chip from hanging, reading for an area that is not&lt;BR /&gt;actively decoded&lt;BR /&gt;has unpredictable results, but it should be caught immediately when the&lt;BR /&gt;interrupt goes off.&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;Another note for those working with the 5208, for the first time&lt;BR /&gt;the chipselects are restricted to specific address ranges.&lt;/DIV&gt;&lt;DIV&gt;Make sure you read the notes in&lt;/DIV&gt;&lt;DIV&gt;6.2.1 RAMBAR&lt;BR /&gt;18.4.5 SDRAMC&lt;BR /&gt;17.3.2.1 Flexbus&lt;/DIV&gt;&lt;DIV&gt;The information is not in the body of the text but as a separate note.&lt;/DIV&gt;&lt;DIV&gt;Paul&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;--------------------------------------------------------------------&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;Jan 12, 2006, 10:16 PM&lt;/DIV&gt;&lt;DIV&gt;Post #10 of 11 (62 views)&lt;BR /&gt;Copy Shortcut&lt;BR /&gt;&amp;nbsp;Re: [ColdFire] MCF5208 Access errors... [In reply to]&amp;nbsp; Can't Post&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;--------------------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;I've done a bunch more work on the access error stuff.&lt;BR /&gt;Results and comments below:&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;My 5208 Nominal Memory Map&lt;BR /&gt;0x00000000 to 0x3FFFFFFF not used&lt;BR /&gt;0x40000000 to 0x41FFFFFF Mapped to SDRAM&lt;BR /&gt;0x41FFFFFF to 0x7FFFFFFF not used&lt;BR /&gt;0x80000000 to 0x80003FFF Internal RAM via Rambar&lt;BR /&gt;0x80004000 to 0xBFFFFFFF not used&lt;BR /&gt;0xC0000000 to 0xC01FFFFF Mapped to Flash&lt;BR /&gt;0xC0200000 to 0xFC000000 not used&lt;BR /&gt;0xFC000000 to 0xFFFFFFFF maped into CPU registers&lt;/DIV&gt;&lt;DIV&gt;The problem with this is that the FlexBus areas 0x0 to 0x3FFFFFFF and&lt;BR /&gt;0xC0200000 to 0xDFFFFFFF will cause the processor to hang when accessing these&lt;BR /&gt;areas. So I thought if I could map these areas to a CS and then detect these&lt;BR /&gt;accesses I would be able to live with that.&lt;/DIV&gt;&lt;DIV&gt;To test this I tried to fix the lowest gap area.&lt;BR /&gt;CS1 was assigned the range 0 to 3FFFFFFF to map unused lower flexbus area.&lt;BR /&gt;Note that CS1 was not used externally and could be assigned to be GPIO, I&lt;BR /&gt;am only using the automatic TA generation facilities of CS1.&lt;BR /&gt;To watch over this lower flexbus area the the debug trap system was&lt;BR /&gt;setup to watch this range with:&lt;/DIV&gt;&lt;DIV&gt;WDEBUG( 7, 0 );&lt;BR /&gt;WDEBUG( 6, 0xff7f );&lt;BR /&gt;WDEBUG( 0x0D,0 );&lt;BR /&gt;WDEBUG( 0x0C,0x3FFFFFFF );&lt;BR /&gt;WDEBUG( 7, 0x80002008 );&lt;/DIV&gt;&lt;DIV&gt;Where WDEBUG is a macro that writes to the debug registers described in&lt;BR /&gt;the users manual chapter 26.&lt;/DIV&gt;&lt;DIV&gt;I also set up the bus monitor:&lt;/DIV&gt;&lt;DIV&gt;SetIntc((long)&amp;amp;XBSFaultHandeler, 62, 7, 7 );&lt;BR /&gt;sim.scm1.bmt=0x0C;&lt;BR /&gt;sim.scm2.scmisr=3;&lt;BR /&gt;sim.scm2.cfier=1;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;Then we set up the following deviant cases, not perfect, but&lt;BR /&gt;representative of the&lt;BR /&gt;kinds of faults one sees:&lt;BR /&gt;.text&lt;BR /&gt;.EQU BADADDRESS, 0xFBFFFFF0&lt;/DIV&gt;&lt;DIV&gt;.global Fault1&lt;BR /&gt;.global Fault2&lt;BR /&gt;.global Fault3&lt;BR /&gt;.global Fault4&lt;BR /&gt;.global Fault5&lt;BR /&gt;.global FaultValue&lt;BR /&gt;DoNormalReturn:&lt;BR /&gt;rts&lt;/DIV&gt;&lt;DIV&gt;FaultValue:&lt;BR /&gt;move.l #BADADDRESS,%d0&lt;BR /&gt;move.l %d0,%d1&lt;BR /&gt;rts&lt;/DIV&gt;&lt;DIV&gt;Fault1:&lt;BR /&gt;move.l BADADDRESS,%d0&lt;BR /&gt;nop&lt;BR /&gt;rts&lt;/DIV&gt;&lt;DIV&gt;Fault2:&lt;BR /&gt;move.l %d0,BADADDRESS&lt;BR /&gt;nop&lt;BR /&gt;rts&lt;/DIV&gt;&lt;DIV&gt;Fault3:&lt;BR /&gt;move.l #BADADDRESS,%d0&lt;BR /&gt;move.l %d0,%a7&lt;BR /&gt;rts&lt;/DIV&gt;&lt;DIV&gt;Fault4:&lt;BR /&gt;move.l #BADADDRESS,%d0&lt;BR /&gt;move.l %d0,%a7&lt;BR /&gt;nop&lt;BR /&gt;jsr DoNormalReturn&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;Fault5:&lt;BR /&gt;jmp BADADDRESS&lt;BR /&gt;nop&lt;BR /&gt;rts&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;Results:&lt;BR /&gt;Fault Memory address tested for all 5 fault modes.&lt;/DIV&gt;&lt;DIV&gt;0 All ok&lt;BR /&gt;0x3FFFFFF0 All OK&lt;BR /&gt;0x42000000 All OK&lt;BR /&gt;0x7FFFFFF0 All OK&lt;BR /&gt;0x80004000 All OK&lt;BR /&gt;0x8FFFFFF0 All OK&lt;BR /&gt;0x90000000 All Ok&lt;BR /&gt;0xBFFFFFF0 All Ok&lt;BR /&gt;0xC0200000 Missed all faults but #5, result is a hang&lt;BR /&gt;0xDFFFFFF0 Missed all faults, hung for all&lt;BR /&gt;0xE0000000 Missed fault#3 as I expect A7 was decremented into Flexbus space.&lt;BR /&gt;0xE0000010 All Ok&lt;BR /&gt;0xFBFFFFF0 Case #1,#2 failed with write or read to improper area, all other ok&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;I deemed the test a success if it generated one of the following:&lt;BR /&gt;Access error trap&lt;BR /&gt;Debug trap&lt;BR /&gt;Bus monitor interrupt.&lt;/DIV&gt;&lt;DIV&gt;So in the present state it looks like the only problem are is the flexbus area&lt;BR /&gt;from 0xC0200000 to 0xDFFFFFFF&lt;/DIV&gt;&lt;DIV&gt;On Friday I will try tieing an unused chip select to an interrupt line&lt;BR /&gt;and see if I can catch the lions portion of this area.&lt;/DIV&gt;&lt;DIV&gt;While not the ideal solution it looks like it is workable until Freescale&lt;BR /&gt;figures out how to catch access traps on the 5208.&lt;/DIV&gt;&lt;DIV&gt;Paul&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;--------------------------------------------------------------------&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;Jan 13, 2006, 11:11 AM&lt;/DIV&gt;&lt;DIV&gt;Post #11 of 11 (60 views)&lt;BR /&gt;Copy Shortcut&lt;BR /&gt;&amp;nbsp;Re: [ColdFire] MCF5208 Access errors... [In reply to]&amp;nbsp; Can't Post&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;--------------------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;This should be my final post on this subject....&lt;BR /&gt;It won't make a lot of sense unless you also read last nights post on&lt;BR /&gt;this subject.&lt;/DIV&gt;&lt;DIV&gt;I have a configuration that catches all five of my test fault cases for&lt;BR /&gt;all addresses....&lt;/DIV&gt;&lt;DIV&gt;The Rambar, and SDRAMC cases are caught by the core fault detection interrupt.&lt;/DIV&gt;&lt;DIV&gt;The Flex bus is caught two ways....&lt;/DIV&gt;&lt;DIV&gt;For access in the 0 to 3FFF FFFF range&lt;BR /&gt;I assign a chipselect in this region and tie it to an IRQ line that I&lt;BR /&gt;setup to be negative edge sensitive.&lt;BR /&gt;Thus any access there will be terminated, but will immediately cause&lt;BR /&gt;an interrupt.&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;For the C000 0000 to EFFF FFFF range I do the following:&lt;BR /&gt;1)I set up my flash chipselects to cover the entire region.&lt;BR /&gt;2)I use the debug breakpoint trap hardware to detect any accesses&lt;BR /&gt;in the region that is supposed to be unmapped.&lt;/DIV&gt;&lt;DIV&gt;In my present test case I'm only using flexbus CS0, in the future if&lt;BR /&gt;I'm actually going to use additional flexbus chipselects, I need to&lt;BR /&gt;bunch them together&lt;BR /&gt;and then use one additional CS to map the unused region with the&lt;BR /&gt;debug trap stuff&lt;BR /&gt;still providing the protection.&lt;/DIV&gt;&lt;DIV&gt;I've tested this scheme on the 5208 EVB board with the CS1 (the unused RAM CS)&lt;BR /&gt;tied to IRQ4 for the protection described.&lt;/DIV&gt;&lt;DIV&gt;It caught all 5 fault cases for all the address corner cases I&lt;BR /&gt;described in yesterday evenings mail.&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;Paul&lt;/DIV&gt;&lt;P&gt;Message Edited by Dietrich on &lt;SPAN class="date_text"&gt;04-01-2006&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;11:39 AM&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Message Edited by Dietrich on &lt;SPAN class="date_text"&gt;04-04-2006&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;09:39 PM&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 01 Apr 2006 06:35:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF5208-Access-errors/m-p/130881#M783</guid>
      <dc:creator>Dietrich</dc:creator>
      <dc:date>2006-04-01T06:35:56Z</dc:date>
    </item>
  </channel>
</rss>

