Intel
®
81341 and 81342—Application DMA Unit
Intel
®
81341 and 81342 I/O Processors
Developer’s Manual
December 2007
482
Order Number: 315037-002US
5.4.1
Scatter Gather Transfers
The Application DMA can be used to perform typical scatter gather transfers. This
consists of programming the chain descriptors to gather data which may be located in
non-contiguous blocks of memory. The chain descriptor specifies the destination
location such that once all data has been processed, the data is contiguous in memory.
shows how the destination pointers can gather data.
5.4.2
Synchronizing a Program to Chained Operation
Any operation involving the ADMA can be synchronized to a program executing on the
Intel XScale
®
processor through the use of processor interrupts. The ADMA generates
an interrupt to the Intel XScale
®
processor under certain conditions. They are:
1. [Interrupt & Continue] The ADMA completes processing a chain descriptor and the
ADMA Next Descriptor Address Register (ANDAR) is non-zero. When the Interrupt
Enable bit within the ADMA Descriptor Control Register (ADCR) is set, an interrupt
is generated to the Intel XScale
®
processor. This interrupt is for synchronization
purposes. The ADMA sets the End Of Transfer Interrupt flag in the ADMA Channel
Status Register (ACSR). Since it is not the last chain descriptor in the list, the
ADMA starts to process the next chain descriptor without requiring any processor
interaction.
2. [End of Chain] The ADMA completes processing a chain descriptor and the ADMA
Next Descriptor Address Register is zero specifying the end of the chain. When the
Interrupt Enable bit within the ADCR is set, an interrupt is generated to the Intel
XScale
®
processor. The ADMA sets the End Of Chain Interrupt flag in the ACSR.
3. [Error] An error condition occurs (refer to
Section 5.14, “Error Conditions” on
for Application DMA error conditions) during a transfer. The ADMA halts
operation on the current chain descriptor and not proceed to the next chain
descriptor.
Each chain descriptor can independently set the Interrupt Enable bit in the Descriptor
Control word. This bit enables an independent interrupt once a chain descriptor is
processed. This bit can be set or clear within each chain descriptor. Control of interrupt
generation within each descriptor aids in synchronization of the executing software with
ADMA operation.