2. RapidIO Ports > Flow Control
CPS-1848 User Manual
38
June 2, 2014
Formal Status
This document is confidential and is subject to an NDA.
Integrated Device Technology
2.4
Flow Control
The CPS-1848 supports a variety of flow control functions. Receiver- and transmitter-controlled flow control are the most basic
RapidIO flow control functions. One of these functions is always active on a link. In receiver-controlled flow control, the receiver
tells the transmitter when it cannot accept a packet due to a lack of resources by issuing a retry. The transmitter then resumes
packet transfer with a packet of higher priority than the one that was retried, if such a packet is available, and retries (or
resends) the original packet at a later time, perhaps with increased priority.
Transmitter-controlled flow control is the default mode of each port. In this mode, the transmitter only sends packets which the
receiver can accept. The choice between receiver- and transmitter-controlled flow control is made automatically as part of
and Lane Initialization Sequence
. The flow control mode that is active on a link is reported in the RX_FC field of the
. For more information on receiver and transmitter-controlled flow control, see Part 6 of the
RapidIO Specification (Rev. 2.1).
2.4.1
Transmitter- and Receiver-Controlled Flow Control Programming Model
Transmitter- and receiver-controlled flow control decide which packets to send based on a packet’s priority. The CPS-1848
supports the four standard RapidIO priorities numbered 0 to 3 where 3 is the highest priority. The CPS-1848 also supports the
Critical Request Flow (CRF) bit which extends the number of priorities supported from four to eight.
Table 5: Multicast Programming Examples – Direct Programming Model
Example
Register
Offset
Value
Multicast DestID 0x01 to ports 4, 5, 6 and 7 on
all ports using multicast mask 0x27.
Broadcast Multicast Mask Register {0..39}
0xF3009C
0x000000F0
Broadcast Device Route Table Register {0..255}
0xE00004
0x00000067
Reprogram Multicast Mask 0x20 to send to only
ports 10, 11, and 12.
Broadcast Multicast Mask Register {0..39}
0xF30080
0x00001C00
Multicast DestID 0x05 to ports 6, 7, 8 and 9
using multicast mask 3 on port 6 and mask 4 on
port 7, 8, and 9. Multicast will only occur for
packets received by ports 6, 7, 8 and 9.
Port {0..17} Multicast Mask Register {0..39}
0xF3860C
0x000003C0
Port {0..17} Device Route Table Register
0xE16014
0x00000043
Port {0..17} Multicast Mask Register {0..39}
0xF38710
0x000003C0
Port {0..17} Device Route Table Register
0xE17014
0x00000044
Port {0..17} Multicast Mask Register {0..39}
0xF38810
0x000003C0
Port {0..17} Device Route Table Register
0xE18014
0x00000044
Port {0..17} Multicast Mask Register {0..39}
0xF38910
0x000003C0
Port {0..17} Device Route Table Register
0xE19014
0x00000044
Transmitter-controlled flow control can be disabled on a port using the TX_FLOW_CTL_DIS bit in the
Port {0..17} Operations Register
.