ARM Technical Support Knowledge Articles

Questions on PL081 TransferSize value

Applies to: PL08x DMAC (DM & SM)

Scenario

(1)
In the case where the DMAC is the flow controller,  if I set Burst size (same for both source and destination)
to 128 and width is word, then, should I set TransferSize to 512 i.e. 128*4, bytes or 128 (items of burst)?

(2)
Whether Unit of TransferSize is bytes or items of burst, why is TransferSize needed at all?
If I use Burst size, I think the size of the transfer is determined, though it is fixed by the Burst size. 
Or, if I decide to use TransferSize, then the Burst size is not need.

Answer

(1)
The TransferSize is the number of <source width> transfers to perform
when the DMAC is the flow controller. So, in your example, the
TransferSize is 128; the total number of bytes transferred will be 128 x
4 = 512.

(2)
This all depends on whether the DMAC is the Flow Controller or not.

TransferSize is only used when the DMAC is the flow controller. In this
case, the DMAC needs to know how much data to transfer when the DMACBREQ
signal is asserted by the peripheral. If the DMAC is NOT the flow
controller, i.e flow is controlled by the peripheral, how much data is
transferred at any assertion of DMACBREQ is given by the SBSize and
DBSize parameters.

Rate this article

[Bad]
|
|
[Good]
Disagree? Move your mouse over the bar and click

Did you find this article helpful? Yes No

How can we improve this article?

Link to this article
Copyright © 2011 ARM Limited. All rights reserved. External (Open), Non-Confidential