Functional Description
MSC8144E Reference Manual, Rev. 3
Freescale Semiconductor
17-15
17.2.6
Limitations and Restrictions
This section addresses some of the limitations and restrictions of the dedicated DMA controller
and is intended to help software maximize the DMA performance and avoid DMA programming
errors.
The limitations of the dedicated DMA controller are the following:
Due to the limited number of buffers that the DMA controller can use, stride sizes less
than 64 bytes should be avoided. Maximum utilization is obtained from strides greater
than or equal to 256 bytes. However, small stride sizes can be used for scatter-gather
functions.
Coherent reads or writes are broken up into cache line accesses in the DMA.
The DMA controller restrictions are as follows:
Setting the source or destination priority level (STFLOWLVL or DTFLOWLVL) to a
value of three (0b11) is considered a programming error.
All interface capabilities from where descriptors are being fetched must support read sizes
of 32 bytes or greater.
If MRn[SAHE] is set, the source interface transfer size capability must be greater than or
equal to MRn[SAHTS]. The source address must be aligned to a size specified by SAHTS.
If MRn[DAHE] is set, the destination interface transfer size capability must be greater
than or equal to MRn[DAHTS]. The destination address must be aligned to the size
specified by DAHTS.
Destination striding is not supported if MRn[DAHE] is set and source striding is not
supported if MRn[SAHE] is set.
If the DMA is programmed to send SWRITEs over RapidIO, the programmer must ensure
that the destination address is double-word aligned and that the byte count is a
double-word multiple.
If the DMA is programmed to send messages over RapidIO, the programmer must ensure
that the message length (BCRn[BC]) is 8, 16, 32, 64, 128, or 256 bytes. This can be
achieved by setting the byte count register (BCR) to a power of 2 value equal to 8 or
greater.
Striding does not work if the destination transaction type is MESSAGE
(DATR[DWRITETTYPE] = 0x0110) because messages have no memory addresses. As
well, destination address hold should be disabled (MRn[DAHE] is cleared) unless the
destination address hold transfer size indicates an 8-byte message (MRn[DAHTS] =
0x11). Software is responsible for disabling striding and DAHE, in this case, and for
ensuring that the bandwidth control is large enough to support the desired message size.
Failure to adhere to these restrictions results in undefined behavior.
Summary of Contents for MSC8144E
Page 1: ...MSC8144E Reference Manual Quad Core Media Signal Processor MSC8144ERM Rev 3 July 2009 ...
Page 48: ...MSC8144E Reference Manual Rev 3 xlviii Freescale Semiconductor ...
Page 86: ...MSC8144E Reference Manual Rev 3 1 38 Freescale Semiconductor Overview ...
Page 168: ...MSC8144E Reference Manual Rev 3 3 60 Freescale Semiconductor External Signals ...
Page 242: ...MSC8144E Reference Manual Rev 3 5 26 Freescale Semiconductor Reset ...
Page 314: ...MSC8144E Reference Manual Rev 3 8 24 Freescale Semiconductor General Configuration Registers ...
Page 414: ...MSC8144E Reference Manual Rev 3 10 14 Freescale Semiconductor MSC8144E SC3400 DSP Subsystem ...
Page 452: ...MSC8144E Reference Manual Rev 3 11 38 Freescale Semiconductor Internal Memory Subsystem ...
Page 520: ...MSC8144E Reference Manual Rev 3 12 68 Freescale Semiconductor DDR SDRAM Memory Controller ...
Page 1070: ...MSC8144E Reference Manual Rev 3 21 28 Freescale Semiconductor Timers ...