![](http://datasheet.mmic.net.cn/230000/79RC32438-200BB_datasheet_15568909/79RC32438-200BB_253.png)
IDT DMA Controller
Internal DMA Operation
79RC32438 User Reference Manual
9 - 7
November 4, 2002
Notes
Internal DMA Operation
All DMA operations are performed by reading DMA descriptors from memory. A DMA descriptor is read
from memory to determine control information when a DMA descriptor operation begins, and is written back
to memory with updated status information when a DMA descriptor operation completes. As shown in
Figure 9.4, a DMA descriptor consists of four words and must be word aligned.
1
The first word of a
descriptor contains general DMA control and status information, such as the COUNT field which holds the
number of bytes to transfer.
2
The three bit device command (DEVCMD) field is used to pass device specific
control information to a peripheral at the start of a DMA descriptor operation, and to record peripheral status
information at the end of a DMA descriptor operation. When a DMA descriptor operation begins, DEVCMD
is read from memory and transferred to the selected device. When a DMA descriptor operation completes,
updated status information is read from the selected device and written back to the DEVCMD field of the
DMA descriptor in memory. The device select (DS) field selects the peripheral device to be used during the
DMA descriptor operation. The encoding of this field for each of the ten DMA channels is shown in Table
9.2.
The second word of a DMA descriptor, the current address (CA) field, is initialized with the address of a
data buffer to which data DMAed from a peripheral is written, or from which data DMAed to a peripheral is
read. When a DMA descriptor operation begins, the starting address is loaded into a current address
register in the DMA controller. After each DMA data transfer, the current address register is modified by the
size of the data transfer. Thus, when a DMA descriptor operation completes, the CA field of the DMA
descriptor in memory contains the address of the next data quantity to be transferred had the DMA
descriptor operation not completed. For example, if CA is initialized to
x
and COUNT is initialized to
y
during
a DMA operation from a peripheral to memory, then the first data quantity from the peripheral would be
written to physical address
x
. Assuming the DMA descriptor operation runs until the COUNT field reaches
zero, the value of the CA field in memory when the DMA operation completes would be
x
+
y
.
The third word of a DMA descriptor, the device control and status (DEVCS) field, is used to pass device
specific control information to a peripheral at the start of a DMA descriptor operation, and to record periph-
eral status information at the end of a DMA descriptor operation. When a DMA descriptor operation begins,
Channel 6
0
1
2
3
0
1
2
3
0
1
2
3
0
1
2
3
Memory to Memory (Memory to Holding FIFO)
reserved
reserved
reserved
Memory to Memory (Holding FIFO to Memory)
reserved
reserved
reserved
PCI (PCI to Memory)
reserved
reserved
reserved
PCI (Memory to PCI)
reserved
reserved
reserved
Channel 7
Channel 8
Channel 9
1.
The address 0x0000_0000 is used to indicate the end of a DMA descriptor list. Therefore, a DMA descriptor
may begin at any word address except 0x0000_0000.
2.
The DMA controller supports zero length DMA operations (i.e., descriptors with the COUNT field equal to zero).
Zero length DMA operations result in the transfer of DEVCMD and DEVCS as well as the updating of the DMA
descriptor but cause no data to be transferred.
DMA Channel
Device Select
Device Description
Table 9.2 DMA Channels and Device Selects (Part 2 of 2)