Hardware Reference Manual 249
Intel
®
IXP2800 Network Processor
Media and Switch Fabric Interface
The data in each partition is further broken up into elements, based on
MSF_Rx_Control[RBUF_Element_Size_#] (n = 0, 1, 2). There are three choices of element size
– 64, 128, or 256 bytes.
Table 89 shows the RBUF partition options. Note that the choice of element size is independent for
each partition.
The Microengine can read data from the RBUF to Microengine S_TRANSFER_IN registers using
the
msf[read] instruction, where the starting byte number is specified (which must be aligned to
4-byte units), and also the number of 32-bit words to read. The number in the instruction can be
either the number of 32-bit words, or the number of 32-bit word pairs, using the single- and double-
instruction modifiers, respectively. The data is pushed to the Microengine on the S_Push_Bus by
RBUF control logic:
msf[read, $s_xfer_reg, src_op_1, src_op_2, ref_cnt], optional_token
Table 88. Mapping of Received Data to RBUF Partitions
Number of
Partitions in
Use
Receive Data
Protocol
Data Use by Partition, Fraction of RBUF Used, Start Byte Offset (Hex)
Partition Number
012
1 SPI-4 only
SPI-4
All
Byte 0
n/a n/a
2 CSIX only
CSIX Data
3/4 of RBUF
Byte 0
CSIX Control
1/4 of RBUF
Byte 0x1800
n/a
3
Both SPI-4 and
CSIX
CSIX Data
1/2 of RBUF
Byte 0
SPI-4
3/8 of RBUF
Byte 0x1000
CSIX Control
1/8 of RBUF
Byte 0x1C00
Table 89. Number of Elements per RBUF Partition
RBUF_Partition Field RBUF_Element_Size_# Field
Partition Number
012
00 (1 partition)
00 (64 bytes) 128
Unused Unused01 (128 bytes) 64
10 (256 bytes) 32
01 (2 partitions)
00 (64 bytes) 96 32
Unused01 (128 bytes) 48 16
10 (256 bytes) 24 8
10 (3 partitions)
00 (64 bytes) 64 48 16
01 (128 bytes) 32 24 8
10 (256 bytes) 16 12 4