![NXP Semiconductors SAFE ASSURE Qorivva MPC5601P Reference Manual Download Page 388](http://html.mh-extra.com/html/nxp-semiconductors/safe-assure-qorivva-mpc5601p/safe-assure-qorivva-mpc5601p_reference-manual_1721898388.webp)
Chapter 18 Enhanced Direct Memory Access (eDMA)
MPC5602P Microcontroller Reference Manual, Rev. 4
388
Freescale Semiconductor
18.5.2.2
eDMA Error Status Register (EDMA_ESR)
The EDMA_ESR provides information concerning the last recorded channel error. Channel errors can be
caused by a configuration error (an illegal setting in the transfer control descriptor or an illegal priority
register setting in fixed arbitration mode) or an error termination to a bus master read or write cycle.
A configuration error is caused when the starting source or destination address, source or destination
offsets, minor loop byte count, and the transfer size represent an inconsistent state. The addresses and
offsets must be aligned on 0-modulo-transfer_size boundaries, and the minor loop byte count must be a
multiple of the source and destination transfer sizes. All source reads and destination writes must be
configured to the natural boundary of the programmed transfer size respectively.
In fixed arbitration mode, a configuration error is caused by any two channel priorities being equal within
a group, or any group priority levels being equal among the groups. For either type of priority
configuration error, the ERRCHN field is undefined. All channel priority levels within a group must be
unique and all group priority levels among the groups must be unique when fixed arbitration mode is
enabled.
If a scatter/gather operation is enabled upon channel completion, a configuration error is reported if the
scatter/gather address (DLAST_SGA) is not aligned on a 32-byte boundary. If minor loop channel linking
is enabled upon channel completion, a configuration error is reported when the link is attempted if the
TCD.CITER.E_LINK bit does not equal the TCD.BITER.E_LINK bit. All configuration error conditions
except scatter/gather and minor loop link error are reported as the channel is activated and assert an error
interrupt request if enabled. When properly enabled, a scatter/gather configuration error is reported when
the scatter/gather operation begins at major loop completion. A minor loop channel link configuration
error is reported when the link operation is serviced at minor loop completion.
If a system bus read or write is terminated with an error, the data transfer is immediately stopped and the
appropriate bus error flag is set. In this case, the state of the channel’s transfer control descriptor is updated
by the eDMA engine with the current source address, destination address, and minor loop byte count at the
point of the fault. If a bus error occurs on the last read prior to beginning the write sequence, the write
executes using the data captured during the bus error. If a bus error occurs on the last write prior to
switching to the next read sequence, the read sequence executes before the channel is terminated due to
the destination bus error.
The occurrence of any type of error causes the eDMA engine to stop the active channel, and the appropriate
channel bit in the eDMA error register to be asserted. At the same time, the details of the error condition
are loaded into the EDMA_ESR. The major loop complete indicators, setting the transfer control
descriptor DONE flag and the possible assertion of an interrupt request, are
not
affected when an error is
detected. After the error status has been updated, the eDMA engine continues to operate by servicing the
next appropriate channel. A channel that experiences an error condition is not automatically disabled. If a
channel is terminated by an error and then issues another service request before the error is fixed, that
channel executes and terminates with the same error condition.