www.ti.com
msglen
msgseg/
xmbox
mbox
letter
4
4
2
2
Single Segment
Mailbox 0 ... 63
Multi-Segment
Mailbox 0 ... 4
SOURCEID = SourceID allowed access if secure queue
Mailbox = Allowed mailbox for this mapping register
(Mask-able)
0b000000 - Mailbox 0
0b000001 - Mailbox 1
0b000010 - Mailbox 2
...
0b111111 - Mailbox 63
Letter = Allowed letter for this mapping register (Mask-able)
Segment Mapping = 0b0 - Single Segment (all six bits of Mailbox valid)
= 0b1 - Multi-segment (only 2 lsbs of Mailbox valid)
Promiscuous = 1, Full Access to the Queue for any SourceID
Queue ID = 0000 - 1111, corresponding Queue0 - Queue15
tt (Transport type) - 0b0 = matches the 8 lsb of the SOURCEID
0b1 = matches the full 16 bits of the SOURCEID
SRIO Functional Description
This allows the letter and mailbox fields to instead allow four concurrent single-segment messages to
sixty-four possible mailboxes (256 total locations) for a source and destination pair. The mailbox mapper
directs the inbound messages to the appropriate queue based on a pre-programmed routing table. It
bases the decision on the SOURCEID, MSGLEN, MBOX, LETTER, and XMBOX fields of the RapidIO
packet.
Figure 16
illustrates the look-up tables required for programmable mapping of the mailbox to queue. There
are 32 programmable mapping entries. Each mapping entry consists of two registers, RXU_MAP_Ln and
RXU_MAP_Hn. Each entry stores the queue number associated with the message’s intended
mailbox/letter. If a mailbox/letter is not supported or does not have a mapping table entry, the message is
discarded and an ERROR response sent. The mapping entries can explicitly call out a mailbox and letter
combination, or alternatively, the mask fields can be used to grant multiple mailbox/letter combinations
access to a queue using the same table entry. A masking value of 0 in the mailbox or letter mask fields
indicates that the corresponding bit in the mailbox or letter field will not be used to match for this queue
mapping entry. For example, a mailbox mask of all zeros would allow a mapping entry to be used for all
incoming mailboxes.
The mapping table entry also provides a security feature to enable or disable access from specific external
devices to local mailboxes. The SOURCEID field indicates which external device has access to the
mapping entry and corresponding queue. A compare is performed between the sourceID of the incoming
message packet and each relevant mailbox/letter table mapping entry SOURCEID field. If they do not
match, an ERROR response is sent back to the sender, and the transaction is logged in the Logical Layer
Error Management capture registers, which sets an interrupt, as discussed in
Section 4.3
. A Promiscuous
bit allows this security feature to be disabled. When the PROMISCUOUS bit is set, full access to the
mapping entry from any SOURCEID is allowed. Note that when the PROMISCUOUS bit is set, the
mailbox/letter and corresponding mask bits are still in effect. When the PROMISCUOUS bit is cleared, it
equals a mask value of 0xFFFF, and only the matching SOURCEID is allowed access to the mailbox.
Each table entry also indicates if it used for single or multi-segment message mapping. Single segment
message mapping entries utilize all six bits of the mailbox and corresponding mask fields. Multi-segment
uses only the 2 LSBS. The number of simultaneous supported multi-segment messages is determined by
the number of dedicated RX queues as discussed further below. It is recommended to dedicate a
multi-segment mapping entry for each supported simultaneous letter. Essentially, letter masks should be
avoided for multi-segment mapping to reduce excessive retries. Note that it is possible to configure the
table entries such that incoming single segment and multi-segment messages are directed to the same
queue. To avoid this condition, properly program the mapping table entries.
Figure 16. Queue Mapping Table (Address Offset: 0x0800 - 0x08FC)
42
Serial RapidIO (SRIO)
SPRU976 – March 2006
Submit Documentation Feedback