MOTOROLA DSP56366

Freescale Semiconductor, Inc.
Chip Errata
DSP56366 Digital Signal Processor
Mask: 2J26D
Freescale Semiconductor, Inc...
General: To prevent the use of instructions or sequences of instructions that do not operate correctly,
use the “lint563” program to identify such cases and use alternative sequences of instructions. This
program is available in the Motorola DSP Tools CLAS package.
Silicon Errata
Errata
Errata Description
Number
Description (added before 2/18/1996):
Applies
to Mask
2J26D
When the DMA performs external memory accesses with priority higher than the
core and both continuous mode and interrupt enable bits are set in the channel’s
control register, then the DMA interrupt might not occur if the core performs
external memory access immediately after the enabling (DE = 1) of the DMA
channel.
ES14
Workaround: In this scenario any of the following alternatives can be used:
a. Do not set continuous mode.
b. Use dynamic DMA-core priority.
c. Guarantee that the core performs at least two instructions fetched from
internal memory immediately after setting of the DE.
Description (added 4/16/1996):
If the DMA channel performs non-zero wait state data accesses to/from external
memory and the DMA interrupt is enabled, a false interrupt may occur in addition
to the correct one.
ES21
Workaround: Ensure that the channel’s DTD status bit in the DSTR register is set
before jumping to the interrupt service routine (i.e., the interrupt is correct only
when DTD is set).
Example:
ORG P:I_DMA2
JSSET #M_DTD2,X:M_DSTR,ISR_ ; ISR_ is interrupt service
routine
; label for DMA channel 2
Motorola, SPS, Wireless Division
366CE2J26D_0_0
6501 William Cannon Drive West,
78735-8598
ForAustin,
More Texas
Information
On This Product,
Go to: www.freescale.com
NG 11/12/01 pg. 1 of 25
 1997 -2001 Motorola
2J26D
Freescale Semiconductor, Inc.
Chip Errata
DSP56366 Digital Signal Processor
Mask:2J26D
Errata
Number
Applies
to Mask
Errata Description
Freescale Semiconductor, Inc...
Description (added 3/3/ 98):
ES42
2J26D
When a Direct Memory Access (DMA) channel is in Line mode (i.e., the DMA
Transfer Mode is DTM = 010) with address modes defined by DMA Three
Dimensional mode D3D = 0 and DMA = 10010x (i.e., the DMA Counter (DCO) is
in mode A), and the DCO value is greater than $FFF, then the DMA does not
function properly. This address mode implies “no update” at the destination and “no
update” or “post increment by 1” mode at the source.
Workaround:
Use Block Transfer mode (i.e., DTM = 000). For the DCO and DMA Address Mode
(DAM) settings described in this erratum, the Line Transfer mode of DMA is
identical to its Block Transfer mode, so this combination is redundant. In fact, a
block containing only one line is still a block.
Description (added 3/3/1997):
If the DMA channel and the core access the same 1/4 K internal X data, Y data, or
program memory page, and the DMA interrupt is enabled, a false interrupt may
occur in addition to the correct one.
ES47
Workaround: Ensure that the channel’s DTD status bit in the DSTR is set before
jumping to the Interrupt Service Routine (i.e., the interrupt is correct only when
DTD is set).
Example:
ORG P:I_DMA0
JSSET #M_DTD0,X:M_DSTR,ISR_; ISR_ is the Interrupt Service
; Routine label for DMA channel 0
DSP56366 Errata
 1997 -2001, Motorola
366CE2J26D_0_0
For More
Information On This Product,
Go to: www.freescale.com
NG 11/12/01 pg. 2 of 25
2J26D
Freescale Semiconductor, Inc.
Chip Errata
DSP56366 Digital Signal Processor
Mask:2J26D
Errata
Number
Applies
to Mask
Errata Description
Description (added 1/27/98):
2J26D
Freescale Semiconductor, Inc...
When a DMA channel is configured using its DMA Control Register (DCR) in the
following way:
•
•
•
ES54
•
Line Transfer mode is selected (DTM[2:0] = 010)
Non-Three-Dimensional Address mode is selected (D3D = 0)
Destination Address Offset Register DOR1 or DOR3 is selected
(DAM[5:3] = 001 or 011)
No Source Address Offset is selected (DAM[2:0] = 100 or 101)
The DMA transfer does not function as intended.
Workaround:
Select Destination Address Offset Register DOR0 or DOR2 by setting
DAM[5:3] = 000 or 010.
DSP56366 Errata
 1997 -2001, Motorola
366CE2J26D_0_0
For More
Information On This Product,
Go to: www.freescale.com
NG 11/12/01 pg. 3 of 25
Freescale Semiconductor, Inc.
Chip Errata
DSP56366 Digital Signal Processor
Mask:2J26D
Errata
Number
Applies
to Mask
Errata Description
Description (added 5/13/98):
2J26D
Freescale Semiconductor, Inc...
When software disables a DMA channel (by clearing the DE bit of the DCR)
, the DTD status bit of the channel may not be set if any of the following
events occur:
a. Software disables the DMA channel just before a conditional transfer
stall (Described by App B-3.5.1,UM).
b. Software disables the DMA channel at the end of the block transfer (that
is after the counter is loaded with its initial value and transfer of the last
word of the block is completed).
As a result, the Transfer Done interrupt might not be generated.
Workaround:
Avoid using the instruction sequence causing the conditional transfer stall
(See DSP56300 UM, App B-3.5.1 for description) in fast interrupt service
routines. Every time the DMA channel needs to be disabled by software, the
following sequence must be used :
ES84
bclr
#DIE,x:M_DCR
; not needed if DIE is cleared
bclr
#DE,x:M_DCR
; instead of two instructions above, one ’movep’ instruction may be
used
; to clear DIE and DE bits
movep
#DCR_Dummy_Value,x:M_DCR
bclr
#DE,x:M_DCR
nop
nop
Here, the DCR_Dummy_value is any value of the DCR register that complies
with the following requirements:
•
•
•
DE is set;
DIE is set if Transfer Done interrupt request should be generated
and cleared otherwise;
DRS[4:0] bits must encode a reserved DMA request source (see the
following list of reserved DRS values);
List of reserved DRS[4:0] values (per device):
•
DSP56302, DSP56309, DSP56303, DSP56304, DSP56362 — 10101-
•
•
•
DSP56305 — 11011
DSP56301 — 10011-11011
DSP56307 — 10111-11111
11111
DSP56366 Errata
 1997 -2001, Motorola
366CE2J26D_0_0
For More
Information On This Product,
Go to: www.freescale.com
NG 11/12/01 pg. 4 of 25
Freescale Semiconductor, Inc.
Chip Errata
DSP56366 Digital Signal Processor
Mask:2J26D
Errata
Number
Applies
to Mask
Errata Description
Description (added 6/25/98)/Modified 4/19/99:
2J26D
A deadlock occurs during DMA transfers if all the following conditions exist:
Freescale Semiconductor, Inc...
1. DMA transfers data between internal memory and external memory through port
A.
2. DMA and the core access the same internal 0.25K memory module.
3. One of the following occurs:
a. The bus arbitration system is active, i.e., BG is changing, not tied to ground.
ES90
b. Packing mode (bit 7 in the AAR[3 - 0] registers) is active for DMA transfers on
Port A.
Workaround:
One of the following, but workarounds 2, and 3 are valid ONLY to section 3 a of the
errata - i.e. not valid if packing mode is used, and workaround 4 is valid only to
section 3 b of the errata - i.e., not valid if bus arbitration is active.
1. Use intermediate internal memory on which there is no contention with the core.
2. Tie BG to ground, or have an external arbiter that asserts BG even if BR is not
asserted.
3. Set the BCR[BRH] bit, whenever BR must be active.
4. Avoid using packing mode.
DSP56366 Errata
 1997 -2001, Motorola
366CE2J26D_0_0
For More
Information On This Product,
Go to: www.freescale.com
NG 11/12/01 pg. 5 of 25
Freescale Semiconductor, Inc.
Chip Errata
DSP56366 Digital Signal Processor
Mask:2J26D
Errata
Number
Applies
to Mask
Errata Description
2J26D
Description (added 8/10/98):
Enabling any DMA channel by software for transferring a block of data (TM=011
in the channel control register) might not work properly.
Freescale Semiconductor, Inc...
Workaround:
Triggering of a channel for block transfer by software can be replaced by triggering
of the DMA channel for block transfer by a peripheral (e.g. Timer, SCI etc.) that is
not used while the block of data should be transferred by DMA. This can be done as
follows:
1. Set the DSR, DDR and DCO registers of the DMA channel according to the
application case.
2. Transfer mode of the DMA channel (in the DCR register) should be set to TM =
000 or TM = 100 (See Section 8.1.5.3, 563xx UM).
ES94
3. DMA Request Source of the DMA channel should be set according to the chosen
peripheral, which should trigger the DMA channel (see Section 8.1.5.6 56300 UM
and "DMA Request Sources" Table in the CORE CONFIGURATION item of the
563xx UM).
4. All others fields of the DCR register, except the DE bit, should be set according
to the application case.
5. Configure the peripheral to assert its DMA request line;
6. Set DE bit of the DCR register.
Example 1:
Assuming that the SCI is not used while the block of #DCO3 words is transferred
by DMA channel 3, the SCI Transmit Data (TDRE = 1, DRS[4:0] = 01111) trigger
can be used instead of a software trigger for channel 3.
1. Initialize DMA channel registers
movep
movep
movep
bset
#DSR3,x:M_DSR3
#DDR3,x:M_DDR3
#DCO3,x:M_DCO3
#0,x:M_PCRE
Now when the DMA channel is enabled, a transfer of the block begins.
DSP56366 Errata
 1997 -2001, Motorola
366CE2J26D_0_0
For More
Information On This Product,
Go to: www.freescale.com
NG 11/12/01 pg. 6 of 25
Freescale Semiconductor, Inc.
Chip Errata
DSP56366 Digital Signal Processor
Mask:2J26D
Errata
Number
Applies
to Mask
Errata Description
2J26D
2. Enable DMA channel
Freescale Semiconductor, Inc...
movep
#$867a40,x:M_DCR3
;; enable DMA channel 3,
;; block transfer mode,
;; DRS[4:0] = 01111
Example 2 :
Assuming that Timer 0 is not used while a block of #DCO3 words is to be
transferred by DMA channel 3, the Timer0 (TCF0 = 1, DRS[4:0] = 10000) trigger
can be used instead of a software trigger for channel 3.
1. Initialize DMA channel registers
movep #DSR3,x:M_DSR3
movep #DDR3,x:M_DDR3
movep #DCO3,x:M_DCO3
2. Initialize Timer 0
ES94
cont.
movep
#$0,x:M_TCSR0
movep
movep
#$0,x:M_TLR0
#$0,x:M_TCPR0
;;no prescaling, inv=0, mode 0,
;; no interrupt, reload is disabled
;;initialize load reg.
;;initialize compare reg.
3. Generate DMA channel trigger
- option 1
movep
#$A48254,x:M_DCR3
transfer
;; enable DMA channel 3, block
;; mode, DE isn’t disabled at end of
;; transfer, triggered by Timer0
(TCF0=1)
bset
nop
nop
bclr
#M_TE,x:M_TCSR0
;; enable timer
#M_TE,x:M_TCSR0
;; disable timer
- option 2
movep
#$848254,x:M_DCR3
transfer
;; enable DMA channel 3, block
;; mode, DE is disabled at the end of
;; the transfer, triggered by Timer0
;; (TCF0=1)
bset
nop
nop
bclr
DSP56366 Errata
 1997 -2001, Motorola
#M_TE,x:M_TCSR0
;; enable timer
#M_TE,x:M_TCSR0
;; disable timer
366CE2J26D_0_0
For More
Information On This Product,
Go to: www.freescale.com
NG 11/12/01 pg. 7 of 25
Freescale Semiconductor, Inc.
Chip Errata
DSP56366 Digital Signal Processor
Mask:2J26D
Errata
Number
Applies
to Mask
Errata Description
- option 3
2J26D
Freescale Semiconductor, Inc...
bset
#M_TE,x:M_TCSR0
movep
#$848254,x:M_DCR3
transfer
bclr
#M_TE,x:M_TCSR0
;; enable timer
;; enable DMA channel 3, block
;; mode, DE is disabled at the end of
;; the transfer, triggered by Timer0
;; (TCF0=1)
;; disable timer
Following are the differences between these three options:
option 1 : The DMA channel should be enabled only for the first block transfer. An
additional block transfers can be triggered by the following sequence:
bset
nop
nop
bclr
ES94
cont.
#M_TE,x:M_TCSR0
;; enable timer
#M_TE,x:M_TCSR0
;; disable timer
Note:
Execution of this sequence can be interrupted because the DMA channel is triggered
after the TE bit of the TCSR0 register is set. The TE bit must be cleared no later than
33554430 DSP clock cycles after it is set. Otherwise, an undesirable trigger for the
DMA channel is generated. The DMA channel must be disabled every time when
Timer 0 is used for another purpose.
option 2 : The whole sequence must be used every time when a block transfer is to
be triggered.
Note:
Execution of this sequence may be interrupted because the DMA channel is
triggered after the TE bit of the TCSR0 register is set. The TE bit must be cleared
no later than 33554430 DSP clock cycles after is is set. Otherwise, an undesirable
trigger for the DMA channel is generated.
option 3: The whole sequence must be used every time a block transfer is to be
triggered.
DSP56366 Errata
 1997 -2001, Motorola
366CE2J26D_0_0
For More
Information On This Product,
Go to: www.freescale.com
NG 11/12/01 pg. 8 of 25
Freescale Semiconductor, Inc.
Chip Errata
DSP56366 Digital Signal Processor
Mask:2J26D
Errata
Number
Applies
to Mask
Errata Description
2J26D
Note:
Freescale Semiconductor, Inc...
ES94
cont.
Execution of the first two instructions of the sequence must be uninterruptable. The
TE bit of the TCSR0 register must be cleared no later than 33554430 DSP clock
cycles after it is set. Otherwise, an undesirable trigger for the DMA channel is
generated.
Another peripheral can be used for this purpose, but taking into consideration its
specific features.
Description (added 8/15/98):
ES95
If more than a single DMA channel is enabled while the DSP stays in the
WAIT processing state, and triggering one of the DMA channels causes an
exit from the WAIT state (See A-6.115, UM), triggering another DMA
channel might cause improper DMA operation.
Workaround:
Assure that only a single DMA channel can be triggered during DSP WAIT
state. If the application cannot guarantee this, other DMA channels should
be disabled before the WAIT processing state is entered and then reenabled
after WAIT state is exited.
Description: (added 11/24/98):
An improper operation may occur when all the following conditions apply:
•
•
ES104
2J26D
•
The DMA channel is in a mode that does not automatically clear the DE bit at
the end of the block (DTM[2:0] = 1xx in DCR).
This channel is disabled by software (by clearing DE in DCR) while it is triggered for a new transfer.
The previous operation is not yet completed.
Workaround:
The DMA channel should be disabled only when it is not triggered for a new
transfer, i.e. when the DACT bit in the DSTR register is cleared.
Note: To perform this operation most efficiently, all other DMA channels should
be disabled.
DSP56366 Errata
 1997 -2001, Motorola
366CE2J26D_0_0
For More
Information On This Product,
Go to: www.freescale.com
NG 11/12/01 pg. 9 of 25
2J26D
Freescale Semiconductor, Inc.
Chip Errata
DSP56366 Digital Signal Processor
Mask:2J26D
Errata
Number
Applies
to Mask
Errata Description
Description (added 4/19/99, revised 4/30/99):
ES114
2J26D
A DMA channel may operate improperly when the address mode of this channel
is defined as three-dimensional (D3D=1) and DAM[5:0] = 1xx 1 10 or DAM[5:0]
= 01xx 10 (i.e., triple counter mode is E).
Freescale Semiconductor, Inc...
Workaround:
Use the triple counter modes C(DAM[1:0]=00) or D(DAM[1:0]=01) instead of the
E(DAM[1:0]=10) mode.
Description (added 4/19/99):
When a DMA channel (called channel A) is disabled by software clearing the
channel’s DCR[DE] bit, the DTD bit may not get set, and the DMA end of the block
interrupt may not happen if one of the following occurs:
1. There is another channel (channel B) executing EXTERNAL accesses, and the
DE bit of channel A is being cleared by software at the end of the channel B word
transfer - if channel B is in Word transfer mode, or at the end of the channel B line
transfer - if channel B is in Line Transfer mode, or at the end of the channel B block
transfer - if channel B is in Block transfer mode.
ES115
2. This channel (A) is executing EXTERNAL accesses, and the DE bit of this
channel (A) is being cleared by software at the end of the channel B word transfer if channel B is in Word transfer mode, or at the end of the channel B line transfer if channel B is in Line transfer mode.
Workaround:
kAvoid executing a DMA external access when any DMA channel should be
disabled. This can be done as follows. Every time the DMA channel needs to be
disabled by software, the following sequence must be used:
;; initialize an unused DMA channel "C"
movep
#DSR_swflag, x:M_DSRC
;; here DSR_swflag is an
;; unused X, Y or P memory
;; location, should
;; be initialized to
;; $800000
;; M_DSRC - address of the
;; channel C DSR register.
DSP56366 Errata
 1997 -2001, Motorola
366CE2J26D_0_0
For More
Information On This Product,
Go to: www.freescale.com
NG 11/12/01 pg. 10 of 25
2J26D
Freescale Semiconductor, Inc.
Chip Errata
DSP56366 Digital Signal Processor
Mask:2J26D
Errata
Number
Applies
to Mask
Errata Description
Description (added 7/27/99):
2J26D
When disabling DAX interrupts in the XCTR register (or disabling the DAX)
exactly when the DAX interrupt is pending at the DSP core, an unknown interrupt
vector may be generated.
Freescale Semiconductor, Inc...
Workaround:
The user should first turn off DAX interrupt requests by clearing DAL0 and DAL1
bits in the IPRP register, then issue 6 NOP instructions, then clear interrupt enable
bits in the XCTR register (or disable DAX), issue another 6 NOP instructions, and
finally re-enable the DAL0 and DAL1 bits on IPRP as shown in the following
example:
ES119
;; Clear the relevant bits in the IPRP register
BCLR
#M_DAL0,x:M_IPRP
BCLR
#M_DAL1,x:M_IPRP
;; Issue 6 NOP instructions
NOP
NOP
NOP
NOP
NOP
NOP
;; Clear the interrupt enable bits in the XCTR register
BCLR
#M_XBIE,x:M_XCTR
BCLR
#M_XUIE,x:M_XCTR
BCLR
#M_XDIE,x:M_XCTR
;; Issue 6 NOP instructions
NOP
NOP
NOP
NOP
NOP
NOP
;; Restore the required DAX interrupt level
BSET
#M_DAL0,x:M_IPRP
BSET
#M_DAL1,x:M_IPRP
DSP56366 Errata
 1997 -2001, Motorola
366CE2J26D_0_0
For More
Information On This Product,
Go to: www.freescale.com
NG 11/12/01 pg. 11 of 25
Freescale Semiconductor, Inc.
Chip Errata
DSP56366 Digital Signal Processor
Mask:2J26D
Errata
Number
Applies
to Mask
Errata Description
Description (added 7/5/2000)
Freescale Semiconductor, Inc...
ES129
2J26D
If either HDM1 or HDM0 in the HCR register is set, the value of bits 6 and 5 of
the ICR register should reflect the value of HDM[1–0], respectively. Instead, both
ICR bits reflect DM1. The Host DMA functionality is correct, only the value read
from the ICR register is wrong.
Workaround:
To determine the Host DMA operating mode, read the HDM[2-0] bits in the HCR
register.
Description (added 7/5/2000):
2J26D
If the DMA writes to HTX, the HTDE status flag is not set immediately after the
data is transferred to the RXH:RXM:RXL registers. HTDE will be set only when
one of the following conditions occurs:
1) The external host accesses one of the HDI08 registers.
ES130
2) The 56300 core accesses one of the on-chip peripherals.
3) The DMA reads HRX.
No data is lost.
Workaround: There is none. This bug introduces more lattency in the assertion of
the next DMA transfer request.
Description (added 6/18/2001):
ES132
For operating frequencies above 90 MHz, if both the DMA channel and the core
simultaneously access the same 1/4K page of internal memory (X, Y or program),
improper DMA channel operation may occur.
Workaround:
Avoid simultaneous DMA and core accesses to the same 1/4 K page of internal
memory when operating at frequencies above 90 MHz.
DSP56366 Errata
 1997 -2001, Motorola
366CE2J26D_0_0
For More
Information On This Product,
Go to: www.freescale.com
NG 11/12/01 pg. 12 of 25
2J26D
Freescale Semiconductor, Inc.
Chip Errata
DSP56366 Digital Signal Processor
Mask:2J26D
Documentation Errata
Applies
to Mask
Errata Description
Description (revised 11/9/98):
2J26D
Freescale Semiconductor, Inc...
XY memory data move does not work properly under one of the following
two situations:
1. The X-memory move destination is internal I/O and the Y-memory
move source is a register used as destination in the previous adjacent move
from non Y-memory
2. The Y-memory move destination is a register used as source in the next
adjacent move to non Y-memory.
Here are examples of the two cases (where x:(r1) is a peripheral):
ED1
Example 1:
move #$12,y0
move x0,x:(r7) y0,y:(r3) (while x:(r7) is a peripheral).
Example 2:
mac
move
x1,y0,a x1,x:(r1)+
y0,y1
y:(r6)+,y0
Any of the following alternatives can be used:
a.
Separate these two consecutive moves by any other instruction.
b.
Split XY Data Move to two moves.
Pertains to: DSP56300 Family Manual, Section B-5 "Peripheral pipeline
restrictions.
Description (added 5/7/1996):
ED3
2J26D
A one-word conditional branch instruction at LA-1 is not allowed.
Pertains to: DSP56300 Family Manual, Appendix B, Section B.4.1.3
Description (added 10/13/1997):
2J26D
The following instructions should not start at address LA:
ED4
MOVE to/from Program space {MOVEM, MOVEP (only the P space
options)}
This is a documentation update to the Appendix B, DSP56300 Family
Manual.
DSP56366 Errata
 1997 -2001, Motorola
366CE2J26D_0_0
For More
Information On This Product,
Go to: www.freescale.com
NG 11/12/01 pg. 13 of 25
Freescale Semiconductor, Inc.
Chip Errata
DSP56366 Digital Signal Processor
Mask:2J26D
Applies
to Mask
Errata Description
Description (added 1/27/98):
Freescale Semiconductor, Inc...
ED7
2J26D
When activity passes from one DMA channel to another and the DMA
interface accesses external memory (which requires one or more wait
states), the DACT and DCH status bits in the DMA Status Register
(DSTR) may indicate improper activity status for DMA Channel 0
(DACT = 1 and DCH[2:0] = 000).
Workaround:
None.
Description (added 7/21/98):
ED15
2J26D
The DRAM Control Register (DCR) should not be changed while refresh
is enabled. If refresh is enabled only a write operation that disables refresh
is allowed.
Workaround:
First disable refresh by clearing the BREN bit, than change other bits in the
DCR register, and finally enable refresh by setting the BREN bit.
DSP56366 Errata
 1997 -2001, Motorola
366CE2J26D_0_0
For More
Information On This Product,
Go to: www.freescale.com
NG 11/12/01 pg. 14 of 25
Freescale Semiconductor, Inc.
Chip Errata
DSP56366 Digital Signal Processor
Mask:2J26D
Applies
to Mask
Errata Description
Description (added 1/7/1997; identified as Documentation Errata 2/1/99):
2J26D
Freescale Semiconductor, Inc...
When two consecutive LAs have a conditional branch instruction at LA-1
of the internal loop, the part does not operate properly. For example, the
following sequence may generate incorrect results:
ED28
DO #5, LABEL1
NOP
DO #4, LABEL2
NOP
MOVE (R0) +
BSCC _DEST
internal loop
NOP
LABEL2
NOP
LABEL1
NOP
NOP
_DEST NOP
NOP
RTS
; conditional branch at LA-1 of
; internal LA
; external LA
Workaround: Put an additional NOP between LABEL2 and LABEL1.
Pertains to: DSP56300 Family Manual, Appendix B, Section B-4.1.3, “At
LA-1.”
Description (added 11/9/98; identified as a Documentation errata 2/1/99):
2J26D
When returning from a long interrupt (by RTI instruction), and the first
instruction after the RTI is a move to a DALU register (A, B, X, Y), the
move may not be correct, if the 16-bit arithmetic mode bit (bit 17 of SR) is
changed due to the restoring of SR after RTI.
ED32
Workaround:
Replace the RTI with the following sequence:
movec
nop
rti
ssl,sr
Pertains to: DSP56300 Family Manual. Add a new section to Appendix
B that is entitled “Sixteen-Bit Compatibility Mode Restrictions.”
DSP56366 Errata
 1997 -2001, Motorola
366CE2J26D_0_0
For More
Information On This Product,
Go to: www.freescale.com
NG 11/12/01 pg. 15 of 25
Freescale Semiconductor, Inc.
Chip Errata
DSP56366 Digital Signal Processor
Mask:2J26D
Applies
to Mask
Errata Description
Description (added 12/16/98; identified as a Documentation errata 2/1/99): 2J26D
When Stack Extension mode is enabled, a use of the instructions BRKcc
or ENDDO inside do loops might cause an improper operation.
Freescale Semiconductor, Inc...
If the loop is non nested and has no nested loop inside it, the erratais
relevant only if LA or LC values are being used outside the loop.
Workaround:
If Stack Extension is used, emulate the BRKcc or ENDDO as in the
following examples. We split between two cases, finite loops and do
forever loops.
1) Finite DO loops (i.e. not DO FOREVER loops)
==============================================
BRKcc
Original code:
do #N,label1
.....
.....
do #M,label2
.....
.....
BRKcc
.....
.....
ED33
label2
.....
.....
label1
Will be replaced by:
do #N, label1
.....
.....
do #M, label2
.....
.....
Jcc
fix_brk_routine
.....
.....
DSP56366 Errata
 1997 -2001, Motorola
366CE2J26D_0_0
For More
Information On This Product,
Go to: www.freescale.com
NG 11/12/01 pg. 16 of 25
Freescale Semiconductor, Inc.
Chip Errata
DSP56366 Digital Signal Processor
Mask:2J26D
Applies
to Mask
Freescale Semiconductor, Inc...
Errata Description
nop_before_label2
nop
label2
.....
.....
label1
....
....
2J26D
; This instruction must be NOP.
fix_brk_routine
move #1,lc
jmp nop_before_label2
ENDDO
-----Original code:
do #M,label1
.....
.....
do #N,label2
.....
.....
ENDDO
.....
.....
ED33 cont.
label2
.....
.....
label1
Will be replaced by:
do #M, label1
.....
.....
do #N, label2
.....
.....
JMP
fix_enddo_routine
DSP56366 Errata
 1997 -2001, Motorola
366CE2J26D_0_0
For More
Information On This Product,
Go to: www.freescale.com
NG 11/12/01 pg. 17 of 25
Freescale Semiconductor, Inc.
Chip Errata
DSP56366 Digital Signal Processor
Mask:2J26D
Applies
to Mask
Errata Description
2J26D
nop_after_jmp
NOP ; This instruction must be NOP.
.....
.....
label2
Freescale Semiconductor, Inc...
.....
.....
label1
....
....
fix_enddo_routine
move #1,lc
move #nop_after_jmp,la
jmp nop_after_jmp
ED33 cont.
2) DO FOREVER loops
===================
BRKcc
----Original code:
do #M,label1
.....
.....
do forever,label2
.....
.....
BRKcc
.....
.....
label2
.....
.....
label1
DSP56366 Errata
 1997 -2001, Motorola
366CE2J26D_0_0
For More
Information On This Product,
Go to: www.freescale.com
NG 11/12/01 pg. 18 of 25
Freescale Semiconductor, Inc.
Chip Errata
DSP56366 Digital Signal Processor
Mask:2J26D
Applies
to Mask
Freescale Semiconductor, Inc...
Errata Description
Will be replaced by:
2J26D
do #M,label1
.....
.....
do forever,label2
.....
.....
JScc
fix_brk_forever_routine
note: JScc and not Jcc
.....
.....
ED33 cont.
nop_before_label2
nop
label2
.....
.....
label1
....
....
; <---
; This instruction must be NOP.
fix_brk_forever_routine
move ssh,x:<..> ; <..> is some reserved not used
address (for temporary data)
move #nop_before_label2,ssh
bclr #16,ssl
;
move #1,lc
rti
; <---- note: "rti" and not "rts" !
ENDDO
-----Original code:
do #M,label1
.....
.....
DSP56366 Errata
 1997 -2001, Motorola
366CE2J26D_0_0
For More
Information On This Product,
Go to: www.freescale.com
NG 11/12/01 pg. 19 of 25
Freescale Semiconductor, Inc.
Chip Errata
DSP56366 Digital Signal Processor
Mask:2J26D
Applies
to Mask
Errata Description
2J26D
do forever,label2
.....
.....
ENDDO
.....
.....
Freescale Semiconductor, Inc...
label2
.....
.....
label1
Will be replaced by:
ED33 cont.
do #M,label1
.....
.....
do forever,label2
.....
.....
JSR
fix_enddo_routine
; <--- note:
JSR and not JMP
nop_after_jmp
NOP ; This instruction should be NOP
.....
.....
label2
.....
.....
label1
....
....
fix_enddo_routine
nop
move #1,lc
bclr #16,ssl
move #nop_after_jmp,la
rti
; <--- note: "rti" and not "rts"
Pertains to: DSP56300 Family Manual, Section B-4.2, “General Do
Restrictions.”
DSP56366 Errata
 1997 -2001, Motorola
366CE2J26D_0_0
For More
Information On This Product,
Go to: www.freescale.com
NG 11/12/01 pg. 20 of 25
Freescale Semiconductor, Inc.
Chip Errata
DSP56366 Digital Signal Processor
Mask:2J26D
Errata Description
Description (added 1/5/99; identified as a Documentation errata 2/1/99):
Applies
to Mask
2J26D
When stack extansion is enabled, the read result from stack may be
improper if two previous executed instructions cause sequential read and
write operations with SSH. Two cases are possible:
Freescale Semiconductor, Inc...
Case 1:
For the first executed instruction: move from SSH or bit manipulation on
SSH (i.e. jclr, brclr, jset, brset, btst, bsset, jsset, bsclr, jsclr).
For the second executed instruction: move to SSH or bit manipulation on
SSH (i.e. jsr, bsr, jscc, bscc).
For the third executed instruction: an SSL or SSH read from the stack
result may be improper - move from SSH or SSL or bit manipulation on
SSH or SSL (i.e., bset, bclr, bchg, jclr, brclr, jset, brset, btst, bsset, jsset,
bsclr, jsclr).
ED34
Workaround:
Add two NOP instructions before the third executed instruction.
Case 2:
For the first executed instruction: bit manipulation on SSH (i.e. bset, bclr,
bchg).
For the second executed instruction: an SSL or SSH read from the stack
result may be improper - move from SSH or SSL or bit manipulation on
SSH or SSL (i.e., bset, bclr, bchg, jclr, brclr, jset, brset, btst, bsset, jsset,
bsclr, jsclr).
Workaround:
Add two NOP instructions before the second executed instruction.
Pertains to: DSP56300 Family Manual, Appendix B, add a new section
called “Stack Extension Enable Restrictions.” Cover all cases. Also, in
Section 6.3.11.15, add a cross reference to this new section.
DSP56366 Errata
 1997 -2001, Motorola
366CE2J26D_0_0
For More
Information On This Product,
Go to: www.freescale.com
NG 11/12/01 pg. 21 of 25
Freescale Semiconductor, Inc.
Chip Errata
DSP56366 Digital Signal Processor
Mask:2J26D
Applies
to Mask
Freescale Semiconductor, Inc...
Errata Description
Description (added 7/14/99):
ED38
2J26D
If Port A is used for external accesses, the BAT bits in the AAR3-0
registers must be initialized to the SRAM access type (i.e. BAT = 01) or to
the DRAM access type (i.e. BAT = 10). To ensure proper operation of Port
A, this initialization must occur even for an AAR register that is not used
during any Port A access. Note that at reset, the BAT bits are initialized to
00.
Pertains to: DSP56300 Family Manual, Port A Chapter (Chapter 9 in
Revision 2), description of the BAT[1 –0] bits in the AAR3 - AAR0
registers. Also pertains to the core chapter in device-specific user’s
manuals that include a description of the AAR3 - AAR0 registers with bit
definitions (usually Chapter 4).
DSP56366 Errata
 1997 -2001, Motorola
366CE2J26D_0_0
For More
Information On This Product,
Go to: www.freescale.com
NG 11/12/01 pg. 22 of 25
Freescale Semiconductor, Inc.
Chip Errata
DSP56366 Digital Signal Processor
Mask:2J26D
Applies
to Mask
Freescale Semiconductor, Inc...
Errata Description
Description (added 11/11/99):
When an instruction with all the following conditions follows a repeat
instruction, then the last move will be corrupted.:
1. The repeated instruction is from external memory.
2. The repeated instruction is a DALU instruction that includes 2 DAL
registers, one as a source, and one as destination (e.g. tfr, add).
3. The repeated instruction has a double move in parallel to the DALU
instruction: one move’s source is the destination of the DALU instruction
(causing a DALU interlock); the other move’s destination is the source of
the DALU instruction.
Example:
2J26D
rep #number
tfr x0,a x(r0)+,x0 a,y0 ; This instruction is from external memory
|__|_________|------|----------> This is condition 3 second part.
|_____________|----------> This is condition 3, first part - DALU interlock
ED40
In this example, the second iteration before the last, the "x(r0)+,x0" doesn’t
happen. On the first iteration before the last, the X0 register is fixed with
the "x(r0)+,x0", but the "tfr x0,a" gets the wrong value from the previous
iteration’s X0. Thus, at the last iteration the A register is fixed with "tfr
x0,a", but the "a,y0" transfers the wrong value from the previous iteration’s
A register to Y0.
Workaround:
1. Use the DO instruction instead; mask any necessary interrupts before the
DO.
2. Run the REP instructions from internal memory.
3. Don’t make DALU interlocks in the repeated instruction. After the
repeat make the move. In the example above, all the "move a,y0" are
redundant so it can be done in the next instruction:
rep #number
tfr x0,a
x(r0)+,x0
move a,y0
If no interrupts before the move is a must, mask the interrupts before the
REP. Pertains to: DSP56300 Family Manual, Rev. 2, Section A.3,
“Instruction Sequence Restrictions.”
DSP56366 Errata
 1997 -2001, Motorola
366CE2J26D_0_0
For More
Information On This Product,
Go to: www.freescale.com
NG 11/12/01 pg. 23 of 25
Freescale Semiconductor, Inc.
Chip Errata
DSP56366 Digital Signal Processor
Mask:2J26D
Applies
to Mask
Errata Description
Description (added 10/09/1997):
2J26D
Freescale Semiconductor, Inc...
If the stack extension is enabled, the instructions listed below
should not be placed as the next-to-last or as the last instruction of
a DO loop (i.e., should not appear at
LA-1 or LA).
The instructions are:
ED41
XY Memory Data Move (A-6.76)
X Memory Move (A-6.71)
Y Memory Move (A-6.73)
Long Memory Data Move (A-6.75)
Immediate Short Data Move (A-6.68)
Register to Register Data Move (A-6.69)
Address Register Update (A-6.70)
X Memory and Register Data Move (A-6.72)
Y Memory and Register Data Move (A-6.74)
Arithmetic Instructions that allow Parallel Moves listed above
IFcc and IFcc.U (A-6.41)
Workaround:
Insert a NOP or other instruction not listed above as the next-to-last
and last instructions in the DO loop.
Description (added on 3/22/2000)
2J26D
The DMA End-of-Block-Transfer interrupt cannot be used if DMA is
operating in the mode in which DE is not cleared at the end of the block
transfer (DTM = 100 or 101).
ED42
Pertains to:
DSP56300 Family Manual, Rev. 2, Section 10.4.1.2, “End-of-BlockTransfer Interrupt.” Also, Section 10.5.3.5, “DMA Control Registers
(DCR[5–0],” discussion of bits 21 – 19 (DTM bits).
Motorola and
are registered trademarks of Motorola, Inc.
OnCE is a trademark of Motorola, Inc.
NOTES
1. An over-bar (i.e., xxxx) indicates an active-low signal.
DSP56366 Errata
 1997 -2001, Motorola
366CE2J26D_0_0
For More
Information On This Product,
Go to: www.freescale.com
NG 11/12/01 pg. 24 of 25
Freescale Semiconductor, Inc.
Chip Errata
DSP56366 Digital Signal Processor
Mask:2J26D
2. The letters in the right column tell which DSP56366 mask numbers apply.
3. The Motorola DSP website has additional documentation updates that can be accessed at the following
URL:
http://www.motorola-dsp.com/
Freescale Semiconductor, Inc...
-end-
DSP56366 Errata
 1997 -2001, Motorola
366CE2J26D_0_0
For More
Information On This Product,
Go to: www.freescale.com
NG 11/12/01 pg. 25 of 25