5-6 Intel® PXA255 Processor Developer’s Manual
DMA Controller
7. The channel waits for the next request or continues with the data transfer until the
DCMD[LENGTH] reaches zero.
8. The DDADR[STOP] is set to a 1 and the channel stops.
Figure5-3 summarizes typical No-Descriptor Fetch Mode operation.
5.1.4.2 Descriptor Fetch Mode
In Descriptor Fetch Mode, the DMAC registers ar e loaded fr om DMA des cript ors in main m emory.
Multiple DMA descriptors can be chained together in a list . This al lows a DMA chann el to trans fer
data to and from a number of locations that are not contiguous. The descriptor’s protocol design
allows descriptors to be added efficientl y to the descriptor list of a running DMA stream.
A typical Descriptor Fetch M od e (DC S R [ NO DESCFETCH] = 0) operation follows:
1. The channel is in an uninitialized state after reset.
2. The software writes a descriptor address (a ligned to a 16-byte boundary) to the DDADR
register.
3. The software writes a 1 to the DCSR[RUN] bit.
4. The DMAC fetches the four-word descript or (as sum ing tha t the mem or y is alr ea dy set up wi th
the descriptor chain) from the memory indicated by DDADR.
5. The four-word DMA descriptor, al igned on a 16-byte boundary in main memory, loads the
following registers:
Figure 5-3. No-Descriptor Fetch Mode Channel State
DCSR[RUN]=0,
DCSR[NODESCFETCH]=1,
DSADR,DTADR,
DCMD programmed
Uninitialized
Valid
RESET
(Hardware or Sleep)
not running
(running)
Wait
for
request Transferring
Data
Stopped
descriptor Error
Channel
RUN=1
DCMD[LENGTH] 0
& DCMD[FLOWSRC] = 0
& DCMD[FLOWTRG] = 0
DDADR[STOP] = 1
DDADR[STOP] = 1
DCMD[FLOWSRC] xor
DCMD[FLOWTRG] = 1
DCMD[FLOWSRC] &
DCMD[FLOWTRG] = 0
Request Asserted
DDADR[STOP] = 0
DCMD[FLOWSRC] xor
DCMD[FLOWTRG] = 1
No
descriptor
fetch RUN=0
RUN=0