User Manual
BCM1250/BCM1125/BCM1125H
10/21/02
B r o a d c o m C o r p o r a t i o n
Document
1250_1125-UM100CB-R
Section 7: DMA Page
149
The DMA descriptor contains these parameters for each data buffer. A descriptor consists of two 64 bit double-
words, dscr_a and dscr_b, that are stored in memory at consecutive locations aligned to a 16 byte boundary.
shows a descriptor. It can point to up to two buffers. The offset is only used at the start of a packet
and normally applies to buffer A (since a new packet will always start a new descriptor). However, if the
offset_b bit is set the offset is applied to the first B buffer in a packet (no offset is applied on buffer A so it will
completely fill before the offset is applied at the start of buffer B). In addition to the fields describing the data
the descriptor contains per-packet options that are passed to the interface, and status flags that can be written
back into the descriptor by the interface. The options and status for the ethernet descriptors are summarized
in
Section: “Option and Flag Bits for Ethernet MACs” on page 171
, those for the serial interface are
summarized in
Section: “Control and Flag Bits for Synchronous Serial Interface” on page 174
. The DMA
engines access the descriptors in cacheable-coherent memory, they must also be mapped this way in the
CPU.
Figure 24: DMA Descriptor
The descriptor also has three control bits. If the INT bit is set then the DMA channel will raise an interrupt when
it has completed processing of the descriptor. The second control bit indicates if the buffer B details are valid,
if this bit is clear the descriptor only has one associated buffer and the buffer B details are ignored (they are
preserved when the status information is written back in to the descriptor, so could be used by software to store
state information). The third control bit allows the offset field to be applied to the B buffer rather than the A
buffer.
shows a packet spanning three buffers. The start of the packet is offset from the start
of the first buffer. Following the last byte in the first buffer the packet continues to fill the entire second buffer.
Note that the offset is not applied in the continuation buffer. The packet ends in the third buffer, again the offset
is not used. The packet length (which is only put in the DMA descriptor associated with the first buffer) is the
sum of the length used in the first buffer (i.e. the number of bytes from the offset to the end of the buffer), the
full length of the second buffer, and the length used in the third buffer (i.e. the number of bytes from the buffer
start to the end of the valid data).
Status
Size
Buffer A
Start Address
Buffer A
Offset
63
0
Packet
Size
Buffer B
Start Address
Buffer B
Options
DSCR.A
DSCR.B
Length
+0
+8
49
39
5 4
48
40
I
N
T
V
a
l
i
d
50
O
F
F
B
51