Inter-Processor Interrupts - AM011

Versal Adaptive SoC Technical Reference Manual (AM011)

Document ID
AM011
Release Date
2025-03-11
Revision
1.7 English

The inter-processor interrupts (IPI) enable one processor or other transaction host to interrupt another processor. The source agent is identified by its system management ID (SMID). The source agent optionally writes to a request message buffer and the destination agent optionally writes to a response message buffer. The communications process uses the IPI interrupt register structure, the system interrupt structure, and the IPI message buffers.

In a typical situation, the source agent writes a 32-byte request message and then triggers an interrupt to the destination agent. The destination agent reads the request message and, optionally writes a response message. There are eight sets of 32-byte message/response buffers for each agent (16 total buffers per agent) for a total of 128 IPI message buffers. Each source-destination pair must establish their own message-passing communication protocols. These message buffers are access protected by the LPD_XPPU protection unit and IPI logic.

When the interrupt is serviced, the destination agent clears its status interrupt bit. This bit is observed by the source agent's observation register. This is an accumulation of the status interrupt bits from each of the destination agents. The source agent processor can have more than one active outstanding interrupt and message passing activity.

The IPI interrupt registers are access protected by the LPD_XPPU protection unit and IPI registers.

Message Passing

A processor sends a 32-byte message to another processor as shown in the following figure. The reason for the interrupt and the interpretation of the message must be prearranged in software between the source and destination agents (processors). The value of the message buffer does not affect the hardware.

Figure 1. IPI Message Passing