![Marvell PXA300 Скачать руководство пользователя страница 302](http://html.mh-extra.com/html/marvell/pxa300/pxa300_developers-manual_1734615302.webp)
69rlq62d-f714peg4 * Memec (Headquar
ter
s) - Unique
Tec
h,
Insight,
Impact
MAR
VELL CONFIDENTIAL,
UNDER ND
A# 12101050
69rlq62d-f714peg4 * Memec (Headquar
ter
s) - Unique
Tec
h,
Insight,
Impact
MAR
VELL CONFIDENTIAL,
UNDER ND
A# 12101050
69r
lq62d-f714peg4 * Memec (Headquar
ters) - Unique
T
ech, Insight, Impact * UNDER ND
A# 12101050
MAR
VELL CONFIDENTIAL - UNA
UTHORIZED DISTRIB
UTION OR USE STRICTL
Y PR
OHIBITED
PXA300 Processor and PXA310 Processor
Vol. I: System and Timer Configuration Developers Manual
Doc. No. MV-TBD-00 Rev. A
CONFIDENTIAL
Copyright © 12/13/06 Marvell
Page 302
Document Classification: Proprietary Information
December 13, 2006
Not approved by Document Control. For review only.
11.3.3
Transferring Data
The on-chip peripherals connected to the DMA via the peripheral bus operate as flowthrough transfers (For
details, refer to
). Although the source or destination of a DMA transfer is usually a peripheral
intended to be used as a source or sink of DMA data, the DMAC can transfer data to or from any memory
location through memory-to-memory moves.
11.3.3.1
Servicing Internal Peripherals
The processor has two types of internal peripherals: the peripheral-bus peripherals and the system- bus
peripherals. Peripherals such as AC ’97, MSL, and UART are examples of peripheral bus peripherals. The Data
Flash Controller is the only system bus peripheral that does not have it's own DMA Controller and it uses the
system DMA controller. The DMAC provides DMA requests to channel map registers (DRCMRx) that contain
five bits of channel number for each of the possible DMA requests. These possible peripheral requests are
mapped to 32 available channels. If the on-chip peripheral address resides in the DSADRx register, the
DCMDx[FLOWSRC] bit must be set to allow the processor to wait for the request before it initiates the transfer.
If the on-chip peripheral address resides in the DTADRx register, then the DCMDx[FLOWTRG] bit must be set.
If DCMDx[ENDIRQEN] is set, a DMA interrupt is requested at the end of the last cycle associated with the byte
that caused DCMDx[LEN] to decrement to zero.
11.3.3.1.1
Servicing Internal Peripherals Using Flowthrough DMA Read Cycles
A flowthrough DMA read begins when an on-chip peripheral sends a request to a channel in the DMAC while
the channel is running. The number of bytes to be transferred is specified using DCMDx[LEN]. The following
process begins when the request is recognized:
1. The DMAC prompts the memory controller to read the required number of bytes addressed by DSADRx
into a 32-byte buffer in the DMAC.
2. The DMAC transfers the data to the peripheral device addressed in DTADRx[31:0]. The DCMDx[WIDTH]
specifies the width of the internal peripheral to which the transfer is being made.
3. At the end of the transfer, DSADRx is increased and DCMDx[LEN] is decreased by the smaller of
DCMDx[LEN] and DCMDx[SIZE].
Use the following settings for the DMAC register bits for a flowthrough DMA read from an internal peripheral:
DSADRx[SRCADDR] = memory address
DTADRx[TRGADDR] = internal peripheral address
DCMDx[INCSRCADDR] = 1
DCMDx[INCTRGADDR] = 0
DCMDx[FLOWSRC] = 0
DCMDx[FLOWTRG] = 1
11.3.3.1.2
Servicing Internal Peripherals Using Flowthrough DMA Write Cycles
A flowthrough-DMA write begins when an on-chip peripheral sends a request to a channel in the DMAC while
the channel is running. The number of bytes to be transferred is specified using DCMDx[SIZE]. When the
request is recognized, the following process begins:
1. The DMAC processes the request by transferring the required number of bytes from the peripheral device
addressed by DSADRx[31:0] into a DMAC buffer.