www.ti.com
acklD
rsv
prio
tt
1010 destID sourcelD
Reserved
srcTID
Reserved
Doorbell Reg #
rsv
Doorbell bit
CRC
PHY
LOG
TRA
LOG
TRA
PHY
5
3
2
2
4
8
8
8
8
9
2
1
4
16
16
32
16
4
2
10
info (msb)
8
info (lsb)
8
SRIO Functional Description
for any desired purpose; see the RapidIO Interconnect Specification, Section 3.1.4, Type 10 Packet
Formats (Doorbell Class), for information about the info field. A processing element that receives a
doorbell transaction takes the packet and puts it in a doorbell message queue within the processing
element. This queue may be implemented in hardware or in local memory. This behavior is similar to that
of typical message passing mailbox hardware. The local processor is expected to read the queue to
determine the sending processing element and the info field, and determine what action to take.
The DOORBELL functionality is user-defined, but this packet type is commonly used to initiate DSP core
(CPU) interrupts. A DOORBELL packet is not associated with a particular data packet that was previously
transferred, so the info field of the packet must be configured to reflect the DOORBELL bit to be serviced
for the correct TID (Transfer Information Descriptor) information to be processed.
Figure 26. Doorbell Operation
The DOORBELL packet’s 16-bit INFO field indicates which DOORBELL register interrupt bit to set. There
are four DOORBELL registers, each currently with 16 bits, allowing 64 interrupt sources or circular buffers
(see
Table 23
). Each bit can be assigned to any core as described below by the Interrupt Condition
Routing Registers. Additionally, each status bit is user-defined for the application. For instance, it may be
desirable to support multiple priorities with multiple TID circular buffers per core if control data uses a high
priority (for example, priority = 2), while data packets are sent on priority 0 or 1. This allows the control
packets to have preference in the switch fabric and arrive as quickly as possible. Since it may be required
to interrupt the CPU for both data and control packet processing separately, separate circular buffers are
used, and DOORBELL packets need to distinguish between them for interrupt servicing. If any reserved
bit in the DOORBELL info field is set, an error response is sent.
Table 23. Examples of DOORBELL_INFO Designations (See
Figure 26
)
info Field Segments
Value Written To
DOORBELL_INFO
Associated
Mapped To This
Doorbell
Doorbell
Field Of
Doorbell Interrupt
Doorbell Interrupt
Reserved
Reg #
rsv
Bit
LSUn_REG5
Routing Bits
Status Bit
000000000b
00b
0b
0000b
0000h
DOORBELL0_ICRR[3:0]
DOORBELL0_ICSR[0]
000000000b
00b
0b
1001b
0009h
DOORBELL0_ICRR2[7:4]
DOORBELL0_ICSR[9]
000000000b
01b
0b
0111b
0027h
DOORBELL1_ICRR[31:28]
DOORBELL1_ICSR[7]
000000000b
01b
0b
1100b
002Ch
DOORBELL1_ICRR2[19:16]
DOORBELL1_ICSR[12]
000000000b
10b
0b
0101b
0045h
DOORBELL2_ICRR[23:20]
DOORBELL2_ICSR[5]
000000000b
10b
0b
1111b
004Fh
DOORBELL2_ICRR2[31:28]
DOORBELL2_ICSR[15]
000000000b
11b
0b
0110b
0066h
DOORBELL3_ICRR[27:24]
DOORBELL3_ICSR[6]
000000000b
11b
0b
1011b
006Bh
DOORBELL3_ICRR2[15:12]
DOORBELL3_ICSR[11]
Serial RapidIO (SRIO)
64
SPRUE13A – September 2006
Submit Documentation Feedback