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
148
Section 7: DMA
Document
1250_1125-UM100CB-R
Figure 23: DMA Buffer
shows a data buffer as used by the ethernet and serial interfaces (Data Mover buffers are the same
but the alignment restrictions are removed). Three parameters describe a data buffer:
There are an additional two parameters that describe the data in buffers:
Packet
Start
Address
Offset
in bytes
size (in cache blocks)
Length in bytes
Aligned
to 32
byte block
Aligned
to 32
byte block
Table 88: Data Buffer Parameters
Start address
The start address of a data buffer is the 40 bit physical address at which the buffer starts. In the
ethernet and serial port DMA engines it must be cache block aligned, so the lowest five bits of the
address must be zero. The Data Mover buffers can have arbitrary alignment.
The Ethernet MAC DMA engines in parts where system_revision indicates PERIPH_REV3, or later,
have an additional mode that allows arbitrary alignment.
Size
The size of the data buffer is given in cache blocks, i.e. the buffer must be a multiple of 32 bytes in
size. Prior to PERIPH_REV3, if a transmit channel is configured in two block fetch mode (by setting
the tbx_en bit in the
dma_config0
register) the buffer size must be a multiple of 64 bytes The
maximum size buffer is 512 blocks (16 KBytes). The Data Mover does not use the size field, the buffer
length matches the length parameter described below.
Owner
The data buffer is either owned by one of the DMA controllers or by the system software. Ownership
is not explicit, each DMA controller has a count of the number of descriptors it owns and will use all
buffers pointed to from those descriptors. Software needs to keep track of the buffers and must update
the count when passing ownership. (When software writes to the counter the value written will be
added to the existing count, the software does not need to do a read-modify-write operation).
Table 89: Data Parameters
Length
This is the length in bytes of the valid packet data in the buffer. The length may be greater than the
current buffer size, in which case the packet spans multiple buffers. If the packet spans multiple
descriptors then the length field in the first descriptor is used, and the length given in the subsequent
descriptors is ignored. The maximum packet size for interface DMA engines is 16 KB-1, the maximum
size for the Data Mover is 1 MB.
Offset
This is the offset in bytes of the start of the data. The offset can be between 0 and 31 bytes. If a packet
spans multiple buffers, the offset is only applied to the first buffer. The offset can be used to align the
header of the packet more conveniently. For example a packet with a 14 byte ethernet header could
be started with an offset of 2 bytes to align the IP header to a 64 bit doubleword boundary. Alternatively
the offset may be used to easily add or strip an encapsulation header.
Содержание BCM1125
Страница 18: ...BCM1250 BCM1125 BCM1125H User Manual 10 21 02 Broadcom Corporation Page xviii Document 1250_1125 UM100CB R ...
Страница 28: ...BCM1250 BCM1125 BCM1125H User Manual 10 21 02 Broadcom Corporation Page xxviii Document 1250_1125 UM100CB R ...
Страница 515: ...BCM1250 BCM1125 BCM1125H User Manual 10 21 02 Broadcom Corporation Page vii Index Document 1250_1125 UM100CB R ...