beautypg.com

Receive side, Overview, Eceive – Rainbow Electronics DS31256 User Manual

Page 85: 2 receive side, 1 overview

background image

DS31256

85 of 181

9.2 Receive Side

9.2.1 Overview

The receive DMA uses a scatter-gather technique to write packet data into main memory. The host keeps
track of and decides where the DMA should place the incoming packet data. There are a set of
descriptors that get handed back and forth between the DMA and the host. Through these descriptors the
host can inform the DMA where to place the packet data and the DMA can tell the host when the data is
ready to be processed.

The operation of the receive DMA has three main areas, as shown in

Figure 9-1

,

Figure 9-2

, and

Table 9-B

. The host writes to the free-queue descriptors informing the DMA where it can place the

incoming packet data. Associated with each free data buffer location is a free packet descriptor where the
DMA can write information to inform the host about the attributes of the packet data (i.e., status
information, number of bytes, etc.) that it outputs. To accommodate the various needs of packet data, the
host can quantize the free data buffer space into two different buffer sizes. The host sets the size of the
buffers through the receive large buffer size (RLBS) and the receive small buffer size (RSBS) registers.

Register Name:

RLBS

Register Description: Receive Large Buffer Size Select
Register Address:

0790h

Bit

# 7 6 5 4 3 2 1 0

Name LBS7 LBS6 LBS5 LBS4 LBS3 LBS2 LBS1 LBS0
Default

0 0 0 0 0 0 0 0

Bit

# 15 14 13 12 11 10 9 8

Name n/a n/a

n/a

LBS12 LBS11 LBS10 LBS9 LBS8

Default

0 0 0 0 0 0 0 0

Note: Bits that are underlined are read-only; all other bits are read-write.

Bits 0 to 12/Large Buffer Select Bit (LBS0 to LBS12)

0000000000000 (0000h) = buffer size is 0 Bytes

1111111111100 (1FFCh) = buffer size is 8188 Bytes



Register Name:

RSBS

Register Description: Receive Small Buffer Size Select
Register Address:

0794h

Bit

# 7 6 5 4 3 2 1 0

Name SBS7 SBS6 SBS5 SBS4 SBS3 SBS2 SBS1 SBS0
Default

0 0 0 0 0 0 0 0

Bit

# 15 14 13 12 11 10 9 8

Name n/a n/a

n/a

SBS12 SBS11 SBS10 SBS9 SBS8

Default

0 0 0 0 0 0 0 0

Note: Bits that are underlined are read-only; all other bits are read-write.

Bits 0 to 12/Small Buffer Select Bit (SBS0 to SBS12)

0000000000000 (0000h) = buffer size is 0 Bytes

1111111111100 (1FFCh) = buffer size is 8188 Bytes