RE: wdebug instruction causes XLB slave error acknowledge interrupt on MCF547X.

"Seymour David-RA2693" <[email protected]> Tue, 7 Apr 2009 14:52:43 -0600
Newsgroups gmane.comp.hardware.motorola.microcontrollers.coldfire
Message-ID <FE151544B54DB0428FFA9AE99C27A121028D1072@az33exm22.fsl.freescale.net>
This is a multi-part message in MIME format.

------_=_NextPart_001_01C9B7C3.39389697
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi Chris,
I did a simple test using the M5474EVB Lite board running dBUG ROM
monitor:
dBUG> di 20000
00020000: 2C80                 MOVE.L    D0,(A6)
00020002: 0002                 DC.W      0x0002
00020004: 0000                 DC.W      0x0000
00020006: 0000                 DC.W      0x0000
00020008: 267C 0002 0000       MOVEA.L   #0x00020000,A3
0002000E: 4E71                 NOP
00020010: FBD3 4E71            WDEBUG    (A3)
00020014: 4E71                 NOP
00020016: 4E71                 NOP
00020018: 4E71                 NOP
0002001A: 4E71                 NOP
0002001C: 4E71                 NOP
0002001E: 4E4F                 TRAP      #0x0F
00020020: 4E71                 NOP
00020022: 4E71                 NOP
00020024: 4E71                 NOP
=20
I set the PC to 0x20008 and issued "go" command.
Watching PSTCLK with oscope, it is running be default.  After executing
the above code, it is low.
So I'm seeing it work OK.
Regards,=20
David=20
=20
David E Seymour

http://www.freescale.com/coldfire

=20

________________________________

From: [email protected] [mailto:[email protected]]
On Behalf Of nop head
Sent: Tuesday, April 07, 2009 9:27 AM
To: Seymour David-RA2693
Subject: [ColdFire] wdebug instruction causes XLB slave error
acknowledge interrupt on MCF547X.


I want to disable the PST signals, when not debugging, to reduce RF
emissions. I used the following code successfully in an MCF537X project,
but when I use it on a V4 processor I get an interrupt from the XLB
arbiter.

csr_data       dc.w    0010110010000000b       ;CSR
                   dc.w    2,0,0                   ;PCD
...
                lea     csr_data,a0
                dc.w    1111101111010000b     ;wdebug.l a0
                dc.w    0000000000000011b

My assembler doesn't support wdebug, hence the hand coded dc.w stuff.
All the code does is set the PCD bit in the BDM CSR register.

The fault address is csr_data + 4, i..e. half way through the data. The
fault is a slave error acknowledge. The data is correctly aligned on a
four byte boundary and is certainly accessible by normal instructions.

Anybody know what is going on here?

TIA, Chris

[email protected] Send a post to the list.
[email protected] Join the list. [email protected]
Join the list in digest mode. [email protected] Leave the
list.

------_=_NextPart_001_01C9B7C3.39389697
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dus-ascii">
<META content=3D"MSHTML 6.00.2900.3492" name=3DGENERATOR></HEAD>
<BODY>
<DIV dir=3Dltr align=3Dleft><SPAN class=3D544164820-07042009><FONT =
color=3D#0000ff=20
size=3D2>Hi Chris,</FONT></SPAN></DIV>
<DIV dir=3Dltr align=3Dleft><SPAN class=3D544164820-07042009><FONT =
color=3D#0000ff=20
size=3D2>I did a simple test using the M5474EVB Lite board running dBUG =
ROM=20
monitor:</FONT></SPAN></DIV>
<DIV dir=3Dltr align=3Dleft><SPAN class=3D544164820-07042009><FONT =
color=3D#0000ff=20
size=3D2>dBUG&gt; di 20000<BR>00020000:=20
2C80&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;=20
MOVE.L&nbsp;&nbsp;&nbsp; D0,(A6)<BR>00020002:=20
0002&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;=20
DC.W&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x0002<BR>00020004:=20
0000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;=20
DC.W&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x0000<BR>00020006:=20
0000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;=20
DC.W&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x0000<BR>00020008: 267C 0002=20
0000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOVEA.L&nbsp;&nbsp;=20
#0x00020000,A3<BR>0002000E:=20
4E71&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;=20
NOP<BR>00020010: FBD3=20
4E71&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
WDEBUG&nbsp;&nbsp;&nbsp; (A3)<BR>00020014:=20
4E71&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;=20
NOP<BR>00020016:=20
4E71&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;=20
NOP<BR>00020018:=20
4E71&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;=20
NOP<BR>0002001A:=20
4E71&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;=20
NOP<BR>0002001C:=20
4E71&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;=20
NOP<BR>0002001E:=20
4E4F&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;=20
TRAP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #0x0F<BR>00020020:=20
4E71&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;=20
NOP<BR>00020022:=20
4E71&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;=20
NOP<BR>00020024:=20
4E71&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;=20
NOP</FONT></SPAN></DIV>
<DIV dir=3Dltr align=3Dleft><SPAN class=3D544164820-07042009><FONT =
color=3D#0000ff=20
size=3D2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=3Dltr align=3Dleft><SPAN class=3D544164820-07042009><FONT =
color=3D#0000ff=20
size=3D2>I set the PC to 0x20008 and issued "go" =
command.</FONT></SPAN></DIV>
<DIV dir=3Dltr align=3Dleft><SPAN class=3D544164820-07042009><FONT =
color=3D#0000ff=20
size=3D2>Watching PSTCLK with oscope, it is running be default.&nbsp; =
After=20
executing the above code, it is low.</FONT></SPAN></DIV>
<DIV dir=3Dltr align=3Dleft><SPAN class=3D544164820-07042009><FONT =
color=3D#0000ff=20
size=3D2>So I'm seeing it work OK.</FONT></SPAN></DIV>
<DIV dir=3Dltr align=3Dleft><SPAN class=3D544164820-07042009><FONT =
color=3D#0000ff=20
size=3D2>Regards, </FONT></SPAN></DIV>
<DIV dir=3Dltr align=3Dleft><SPAN class=3D544164820-07042009><FONT =
color=3D#0000ff=20
size=3D2>David </FONT></SPAN></DIV>
<DIV>&nbsp;</DIV>
<DIV align=3Dleft><FONT size=3D2>David E Seymour</FONT><FONT =
size=3D2></DIV>
<DIV align=3Dleft>
<P><U><FONT color=3D#0000ff size=3D2><A=20
href=3D"http://www.freescale.com/coldfire">http://www.freescale.com/coldf=
ire</A></U></FONT><FONT=20
size=3D2></P></FONT></FONT></DIV>
<DIV>&nbsp;</DIV><BR>
<DIV class=3DOutlookMessageHeader lang=3Den-us dir=3Dltr align=3Dleft>
<HR tabIndex=3D-1>
<FONT face=3DTahoma size=3D2><B>From:</B> [email protected]=20
[mailto:[email protected]] <B>On Behalf Of </B>nop=20
head<BR><B>Sent:</B> Tuesday, April 07, 2009 9:27 AM<BR><B>To:</B> =
Seymour=20
David-RA2693<BR><B>Subject:</B> [ColdFire] wdebug instruction causes XLB =
slave=20
error acknowledge interrupt on MCF547X.<BR></FONT><BR></DIV>
<DIV></DIV>I want to disable the PST signals, when not debugging, to =
reduce RF=20
emissions. I used the following code successfully in an MCF537X project, =
but=20
when I use it on a V4 processor I get an interrupt from the XLB=20
arbiter.<BR><BR>csr_data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
dc.w&nbsp;&nbsp;&nbsp; =
0010110010000000b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
;CSR<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
dc.w&nbsp;&nbsp;&nbsp;=20
2,0,0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
;PCD<BR>...<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
lea&nbsp;&nbsp;&nbsp;&nbsp;=20
csr_data,a0<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
dc.w&nbsp;&nbsp;&nbsp; 1111101111010000b&nbsp;&nbsp;&nbsp;&nbsp; =
;wdebug.l=20
a0<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;=20
dc.w&nbsp;&nbsp;&nbsp; 0000000000000011b<BR><BR>My assembler doesn't =
support=20
wdebug, hence the hand coded dc.w stuff. All the code does is set the =
PCD bit in=20
the BDM CSR register.<BR><BR>The fault address is csr_data + 4, i..e. =
half way=20
through the data. The fault is a slave error acknowledge. The data is =
correctly=20
aligned on a four byte boundary and is certainly accessible by normal=20
instructions.<BR><BR>Anybody know what is going on here?<BR><BR>TIA,=20
Chris<BR><BR>[email protected] Send a post to the list.=20
[email protected] Join the list. [email protected] =
Join the=20
list in digest mode. [email protected] Leave the =
list.</BODY></HTML>

[email protected]=09Send a post to the list.
[email protected]=09Join the list.
[email protected]=09Join the list in digest mode.
[email protected]=09Leave the list.
------_=_NextPart_001_01C9B7C3.39389697--