Serial RapidIO (SRIO) User's Guide

www.ti.com
SRIO Functional Description
Figure 18. Mailbox to Queue Mapping Register Pair
Mailbox to Queue Mapping Register L n (RXU_MAP_L n )
31 30 29 24 23 22 21 16
LETTER_MASK MAILBOX_MASK LETTER MAILBOX
R/W-11 R/W-111111 R/W-00 R/W-000000
15 0
SOURCEID
R/W-0000h
Mailbox to Queue Mapping Register H n (RXU_MAP_H n )
31
Reserved
R-0
10 9 8 7 6 5 2 1 0
SEGMENT
Reserved TT Reserved QUEUE_ID PROMISCUOUS
MAPPING
R-0 R/W-01 R-00 R/W-0000 R/W-0 R/W-0
LEGEND: R/W = Read/Write; R = Read only; - n = Value after reset
The packet manager maintains the RX DMA state of free and used data buffers within the memory space.
It directs the data to specific addresses within the memory and maintains and updates the buffer
descriptor queues. There is a single buffer descriptor per RapidIO message. For example, single segment
messages have one buffer descriptor, as do multi-segment messages with up to 4K-byte payloads.
There can be multiple RX buffer descriptor queues per core. It is suggested that one queue be dedicated
to single segment messages and additional queues be dedicated to multi-segment messages. Each
multi-segment message queue can support only one incoming message at a time. Depending on the
application, it may be necessary to support multiple simultaneous segmentation and reassembly (SAR)
operations per core. In this case, a buffer descriptor queue is allocated for each desired simultaneous
message. The peripheral supports a total of 16 assignable RX queues and their associated RX DMA state
registers. Each of the queues can be assigned to single or multi-segment messages.
Table 16 and Table 17 describe the RX DMA State Registers.
Table 16. RX DMA State Head Descriptor Pointer (HDP) (Address Offset 600h–63Ch)
Bit Name Description
31–0 RX Queue Head RX Queue Head Descriptor Pointer: This field is the memory address for the first buffer descriptor
Descriptor Pointer in the channel receive queue. This field is written by the DSP core to initiate queue receive
operations and is zeroed by the port when all free buffers have been used. An error condition
results if the DSP core writes this field when the current field value is nonzero. The address must
be 32-bit word aligned.
Table 17. RX DMA State Completion Pointer (CP) (Address Offset 680h–6BCh)
Bit Name Description
31–0 RX Queue RX Queue Completion Pointer: This field is the memory address for the receive queue completion
Completion Pointer pointer. This register is written by the DSP core with the buffer descriptor address for the last buffer
processed by the DSP core during interrupt processing. The port uses the value written to
determine if the interrupt should be deasserted.
If a multi-segment buffer descriptor queue is not currently free, and an RX port receives another
multi-segment message that is destined for that queue, the RX CPPI sends a RETRY RESPONSE packet
(type 13) to the sender, indicating that an internal buffering problem exists. If a multi-segment buffer
descriptor queue is busy and there is another incoming multi-segment message with the same
SOURCEID, MAILBOX, and LETTER, an ERROR response is sent. This usually indicates that a TX
programming error has occurred, where duplicate segments or segments outside the MSGLEN were sent.
Upon successful reception of any message segment, the RX CPPI is responsible for sending a DONE
response to the sender.
46 Serial RapidIO (SRIO) SPRUE13A September 2006
Submit Documentation Feedback