Packet descriptors, Figure 9-3. receive descriptor example, Table 9-c. receive descriptor address storage – Rainbow Electronics DS31256 User Manual
Page 90: 2 packet descriptors
![background image](/manuals/281447/90/background.png)
DS31256
90 of 181
9.2.2 Packet Descriptors
A contiguous section of up to 65,536 quad dwords that make up the receive packet descriptors resides in
main memory. The receive packet descriptors are aligned on a quad dword basis and can be placed
anywhere in the 32-bit address space through the receive descriptor base address (
). A data
buffer is associated with each descriptor. The data buffer can be up to 8188 Bytes long and must be a
contiguous section of main memory. The host can set two different data buffer sizes through the receive
large buffer size (RLBS) and the receive small buffer size (RSBS) registers (Section
). If an
incoming packet requires more space than the data buffer allows, packet descriptors are link-listed
together by the DMA to provide a chain of data buffers.
shows an example of how three
descriptors were linked together for an incoming packet on HDLC channel 2.
shows a similar
example. Channel 9 only required a single data buffer and therefore only one packet descriptor was used.
Packet descriptors can be either free (available for use by the DMA) or used (currently contain data that
needs to be processed by the host). The free-queue descriptors point to the free-packet descriptors. The
done-queue descriptors point to the used-packet descriptors.
Table 9-C. Receive Descriptor Address Storage
REGISTER NAME
ADDRESS
Receive Descriptor Base Address 0 (lower word)
RDBA0
0750h
Receive Descriptor Base Address 1 (upper word)
RDBA1
0754h
Figure 9-3. Receive Descriptor Example
Free Descriptor
Base + 00h
Channel 2 First Buffer Descriptor
Base + 10h
Base + 20h
Free Descriptor
Base + 30h
Free Descriptor
Base + 40h
Base + 50h
Free Descriptor
Base + 60h
Base + 70h
Free Descriptor
Base + 80h
Free Descriptor
Base + FFFD0h
Free Descriptor
Base + FFFF0h
Channel 9 Single Buffer Descriptor
Channel 2 Second Buffer Descriptor
Channel 2 Last Buffer Descriptor
Free-Queue Descriptor Address
Done-Queue Descriptor Pointer
Maximum of 65,536
Descriptors