RapidIO Doorbell
MSC8144E Reference Manual, Rev. 3
Freescale Semiconductor
16-87
There are many ways in which software can interact with the doorbell controllers. One method of
initializing the inbound doorbell controller follows:
1.
Initialize the doorbell queue dequeue pointer address registers IDQDPAR (see
page 16-195) and IDQEPAR (see page 16-196) and the doorbell queue enqueue pointer
address register (DQEPAR). These registers must be initialized to the same value for
proper operation. They also must be queue size aligned.
2.
Clear the status register (IDSR; see page 16-194).
3.
Set the doorbell enable bit IDMR[DE] along with the other control parameters (doorbell
queue size, doorbell-in-queue threshold, and various interrupt enables) in the doorbell
mode register (IDMR; see Table 16-124, IDMR Field Descriptions, on page 16-192).
Another method follows:
1.
The doorbell controller receives a doorbell. If the inbound doorbell controller is enabled
(IDMR[DE] =1) and the doorbell queue is not full, then the doorbell is accepted.
2.
The doorbell controller stores the 16-bit information field and the RapidIO source and
destination IDs in local memory using the value of the doorbell queue enqueue pointer
address register (DQEPAR).
3.
When the memory write completes, the enqueue pointer is incremented to point to the
next doorbell queue entry in local memory.
4.
If another doorbell arrives before all previous doorbell memory writes complete and the
RapidIO priority of the doorbell is equal to or lower than the priority of all previous
doorbells, the doorbell controller processes the doorbell and generates a memory write
to the appropriate doorbell queue entry. If the priority of the new doorbell is higher than
that of the previous doorbell memory writes that have not completed, the doorbell
controller generates a retry.
5.
An inbound doorbell interrupt is generated to the local processor because the number of
doorbells in the queue is greater than or equal to the configured doorbell-in-queue
threshold (IDMR[DIQ_THRESH) and this event is enabled to generate the interrupt
(IDMR[DIQIE]).
6.
Software determines that the doorbell-in-queue event caused the interrupt by detecting
that the doorbell-in-queue interrupt bit is set in the doorbell status register
(IDSR[DIQI]).
7.
Software processes the doorbell queue entry to which the doorbell queue dequeue
pointer address register (DQDPAR) is pointing.
8.
Software increments the dequeue pointer address register (DQDPAR) by setting the
doorbell increment bit (IDMR[DI]).
9.
Software determines whether there are more doorbells to process by reading the queue
empty bit (IDSR[QE]). If the queue is not empty, the previous two steps are repeated.
Содержание MSC8144E
Страница 1: ...MSC8144E Reference Manual Quad Core Media Signal Processor MSC8144ERM Rev 3 July 2009 ...
Страница 40: ...MSC8144E Reference Manual Rev 3 xl Freescale Semiconductor Contents 26 5 12 8 RNG Output FIFO 26 186 ...
Страница 48: ...MSC8144E Reference Manual Rev 3 xlviii Freescale Semiconductor ...
Страница 86: ...MSC8144E Reference Manual Rev 3 1 38 Freescale Semiconductor Overview ...
Страница 167: ...OCE Event and JTAG Test Access Port Signals MSC8144E Reference Manual Rev 3 Freescale Semiconductor 3 59 ...
Страница 168: ...MSC8144E Reference Manual Rev 3 3 60 Freescale Semiconductor External Signals ...
Страница 242: ...MSC8144E Reference Manual Rev 3 5 26 Freescale Semiconductor Reset ...
Страница 314: ...MSC8144E Reference Manual Rev 3 8 24 Freescale Semiconductor General Configuration Registers ...
Страница 414: ...MSC8144E Reference Manual Rev 3 10 14 Freescale Semiconductor MSC8144E SC3400 DSP Subsystem ...
Страница 452: ...MSC8144E Reference Manual Rev 3 11 38 Freescale Semiconductor Internal Memory Subsystem ...
Страница 520: ...MSC8144E Reference Manual Rev 3 12 68 Freescale Semiconductor DDR SDRAM Memory Controller ...
Страница 884: ...MSC8144E Reference Manual Rev 3 17 44 Freescale Semiconductor RapidIO Interface Dedicated DMA Controller ...
Страница 1070: ...MSC8144E Reference Manual Rev 3 21 28 Freescale Semiconductor Timers ...