Inter-Processor Interrupts

Versal Adaptive SoC Technical Reference Manual (AM011)

Document ID
AM011
Release Date
2023-10-05
Revision
1.6 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) and includes CPUs as listed in the Host Transaction Attributes Summary Table (this includes the PMC, RPU, APU, and PL). 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.

There are a maximum of ten agents and eight sets of message buffers. Two of the agents do not have message passing buffers. Three of the agents are hardwired: PSM, PMC, and PMC_NOBUF. The other agents are assigned by their SMID.

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