BCM1250/BCM1125/BCM1125H
User Manual
10/21/02
B r o a d c o m C o r p o r a t i o n
Page
154
Section 7: DMA
Document
1250_1125-UM100CB-R
U
NALIGNED
B
UFFER
D
ESCRIPTOR
FORMAT
FOR
E
THERNET
DMA
The alignment restrictions in the standard DMA descriptors may be hard to work with in some existing systems
and when a lot of scatter/gather operations are done to form packets for transmission. The DMA engine in the
Ethernet/Packet Fifo Interface on parts with system revision indicating PERIPH_REV3 or greater supports a
third descriptor format that allows arbitrary alignment of the start and end of buffers. The descriptors are slightly
modified to support this and there are a number of restrictions.
shows the descriptor
format for the standard and unaligned buffer formats (a full definition is in
). The
changes and restrictions are:
•
A buffer pointers always use the offset field (i.e. are a full 40 bit physical address).
•
The size of the A buffer is specified in bytes in bits 21:8 of the dscr_b (where the buffer B address is in the
standard format). Note that the descriptor field must be set to the size of the data plus the low 5 bits of the
start address, so the maximum buffer size for arbitrary alignment is 16K-32 bytes.
•
The a_size field is not used and can therefore always be used for the optional extra status information.
•
No B Buffers are available.
•
Only Ring mode can be used.
•
The Packet Length, Status, Interrupt and Options fields work as in the standard mode.
The descriptor format is selected separately for each DMA channel. The unaligned mode is particularly useful
for the transmit descriptors when packet manipulations are performed, but the standard mode may be more
useful for the receive side where there is more control of the buffer locations and advantage can be taken of
A and B buffers.
Figure 28: Standard and Unaligned Buffer DMA Descriptors
Status
Size (lines)
Buffer A Start Address
Buffer A
Offset
63
0
Packet
Size (lines)
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
Packet
Size
Buffer A
Options
DSCR.B
Length
+8
Status
(optional
Start Address
Buffer A
DSCR.A
+0
I
N
T
R
s
r
v
Standard
Unaligned
Buffer
Standard
Unaligned
Buffer
(optional
status)
status)
(bytes)
8
21
Reserved
R
s
r
v