Public Version
www.ti.com
IPC Mailbox Basic Programming Model
3. Write 1 in the MAILBOX.MAILBOX_IRQENABLE_1[0] NEWMSGENABLEUUMB0 bit to enable
interrupts to the IVA2.2 subsystem when a new message is received in mailbox 0.
4. Write 1 in the MAILBOX.MAILBOX_IRQENABLE_0[2] NEWMSGENABLEUUMB1 bit to enable
interrupts to the MPU subsystem when a new message is received in mailbox 1.
5. Enable interrupts in the corresponding subsystems.
14.4.5.1 Sending a Message (Polling Method)
To send a message using the polling method, the MPU or IVA2.2 subsystem follows these steps:
1. The MPU subsystem (or IVA2.2 subsystem) determines if the message queue of mailbox 0 (or mailbox
1 for the IVA2.2 subsystem) is full by reading the MAILBOX.MAILBOX_FIFOSTATUS_0[0]
FIFOFULLMB bit (or the MAILBOX.MAILBOX_FIFOSTATUS_1[0] FIFOFULLMB bit for the IVA2.2
subsystem).
2. If the MAILBOX.MAILBOX_FIFOSTATUS_0[0] FIFOFULLMB bit (or the
MAILBOX.MAILBOX_FIFOSTATUS_1[0] FIFOFULLMB bit for the IVA2.2 subsystem) is 0, mailbox 0
(or mailbox 1 for the IVA2.2 subsystem) has a message slot available to store a new message; go to
step 4.
3. If the MAILBOX.MAILBOX_FIFOSTATUS_0[0] FIFOFULLMB bit (or the
MAILBOX.MAILBOX_FIFOSTATUS_1[0] FIFOFULLMB bit for the IVA2.2 subsystem) is 1, mailbox 0
(or mailbox 1 for the IVA2.2 subsystem) is full; go back to step 1.
4. The MPU subsystem (or IVA2.2 subsystem) can send a message by writing it into the
MAILBOX.MAILBOX_MESSAGE_0 register (or the MAILBOX.MAILBOX_MESSAGE_1 register for the
IVA2.2 subsystem).
14.4.5.2 Sending a Message (Interrupt Method)
To send a message using the interrupt method, the MPU or IVA2.2 subsystem follows these steps:
1. To avoid continuous interruption, the MPU subsystem (or the IVA2.2 subsystem) must determine if
mailbox 0 (or mailbox 1 for the IVA2.2 subsystem) is full by reading the
MAILBOX.MAILBOX_FIFOSTATUS_0[0] FIFOFULLMB bit (or the
MAILBOX.MAILBOX_FIFOSTATUS_1[0] FIFOFULLMB bit for the IVA2.2 subsystem).
2. If mailbox 0 (or mailbox 1 for the IVA2.2 subsystem) is full, the MPU subsystem (or the IVA2.2
subsystem) can enable the queue-not-full interrupt by setting the
MAILBOX.MAILBOX_IRQENABLE_0[1] NOTFULLENABLEUUMB0 bit (or the
MAILBOX.MAILBOX_IRQENABLE_1[3] NOTFULLENABLEUUMB1 bit for the IVA2.2 subsystem), and
perform another task before an interrupt occurs; go to step 4).
3. If mailbox 0 (or mailbox 1 for the IVA2.2 subsystem) is not full, the MPU can go back to step 1 and wait
for mailbox 0 (or mailbox 1 for the IVA2.2 subsystem) to fill, or the MPU can send a message, if
necessary, by writing in the MAILBOX.MAILBOX_MESSAGE_0 register (or the
MAILBOX.MAILBOX_MESSAGE_1 register for the IVA2.2 subsystem).
4. After receiving an interrupt, the MPU subsystem (or the IVA2.2 subsystem) enters the ISR and reads
the MAILBOX.MAILBOX_IRQSTATUS_0[1] NOTFULLSTATUSUUMB0 bit (or the
MAILBOX.MAILBOX_IRQSTATUS_1[3] NOTFULLSTATUSUUMB1 bit for the IVA2.2 subsystem) to
determine if mailbox 0 (or mailbox 1 for the IVA2.2 subsystem) is not full and thus send its message.
The MPU subsystem writes the message in the MAILBOX.MAILBOX_MESSAGE_0 register (or the
MAILBOX.MAILBOX_MESSAGE_1 register for the IVA2.2 subsystem).
The MPU subsystem (or the IVA2.2 subsystem) then acknowledges the interrupt by writing 1 in the
MAILBOX.MAILBOX_IRQSTATUS_0[1] NOTFULLSTATUSUUMB0 bit (or the
MAILBOX.MAILBOX_IRQSTATUS_1[3] NOTFULLSTATUSUUMB1 bit for the IVA2.2 subsystem).
NOTE:
To send several messages, a subsystem or processor must determine if the message
queue of mailbox m has enough available slots by checking the
MAILBOX.
[2:0] NBOFMSGMB bit field before writing all of the
messages in this mailbox (see
, Mailbox Register Manual, for more information).
2655
SWPU177N – December 2009 – Revised November 2010
Interprocessor Communication
Copyright © 2009–2010, Texas Instruments Incorporated
Содержание OMAP36 Series
Страница 174: ...174 List of Tables SWPU177N December 2009 Revised November 2010 Copyright 2009 2010 Texas Instruments Incorporated ...
Страница 692: ...692 MPU Subsystem SWPU177N December 2009 Revised November 2010 Copyright 2009 2010 Texas Instruments Incorporated ...
Страница 1084: ...1084 IVA2 2 Subsystem SWPU177N December 2009 Revised November 2010 Copyright 2009 2010 Texas Instruments Incorporated ...
Страница 1990: ...1990 2D 3D Graphics Accelerator SWPU177N December 2009 Revised November 2010 Copyright 2009 2010 Texas Instruments Incorporated ...
Страница 2334: ...2334 Memory Subsystem SWPU177N December 2009 Revised November 2010 Copyright 2009 2010 Texas Instruments Incorporated ...
Страница 2700: ...2700 Memory Management Units SWPU177N December 2009 Revised November 2010 Copyright 2009 2010 Texas Instruments Incorporated ...
Страница 2868: ...2868 HDQ 1 Wire SWPU177N December 2009 Revised November 2010 Copyright 2009 2010 Texas Instruments Incorporated ...
Страница 2974: ...2974 UART IrDA CIR SWPU177N December 2009 Revised November 2010 Copyright 2009 2010 Texas Instruments Incorporated ...
Страница 3054: ...3054 Multichannel SPI SWPU177N December 2009 Revised November 2010 Copyright 2009 2010 Texas Instruments Incorporated ...
Страница 3462: ...3462 MMC SD SDIO Card Interface SWPU177N December 2009 Revised November 2010 Copyright 2009 2010 Texas Instruments Incorporated ...
Страница 3508: ...3508 General Purpose Interface SWPU177N December 2009 Revised November 2010 Copyright 2009 2010 Texas Instruments Incorporated ...
Страница 3584: ...3584 Initialization SWPU177N December 2009 Revised November 2010 Copyright 2009 2010 Texas Instruments Incorporated ...
Страница 3648: ...3648 Debug and Emulation SWPU177N December 2009 Revised November 2010 Copyright 2009 2010 Texas Instruments Incorporated ...