Hard Processor System Technical Reference Manual: Agilex™ 5 SoCs

ID 814346
Date 4/01/2024
Public
Document Table of Contents

5.8.7.6.3. Programming Flow for Generating Slave Interrupt Request

This section describes the programming flow for generating the slave interrupt request.

  1. The application must set the SLV_INTR_REQ[SIR] bit to 1’b1 and the SLV_INTR_REQ [SIR_CTRL] field to 2‘b00 to enable the slave controller to send the SIR-IBI. The application must ensure that SLV_EVENT_STATUS[SIR_EN] bit is set to 1 (enabled by the master) before programming SLV_INTR_REQ [SIR] bit.
  2. If the interrupt is enabled, the application must wait for the IBI completion status interrupt INTR_STATUS[IBI_UPDATED_STS] and then read the SLV_INTR_REQ[IBI_STS] field to check if the IBI got accepted by the master. If the master responds with NACK, then the controller reattempts the SIR automatically until the master accepts (ACK) the SIR or until the master disables the SIR event through DISEC CCC.
  3. Alternatively, the application can poll the SLV_INTR_REQ[SIR] bit to 0 and then read the SLV_INTR_REQ[IBI_STS] field to check if the IBI got accepted by the master.
  4. If the SLV_INTR_REQ[IBI_STS] field indicates that the IBI request is not attempted, the application can request SIR again if the favorable conditions (for more information, see the description of SLV_INTR_REQ[IBI_STS]) are met.
Note: For secondary master configuration, do not set the SIR and MR bits together. Either SIR or MR must be issued only after the previously requested IBI is complete (SLV_INTR_REQ[SIR] = 0 and SLV_INTR_REQ[MR] = 0).
Figure 200. Flow Diagram for Slave Interrupt Request (SIR) Generation
Note: If the SLV_INTR_REQ[IBI_STS] indicates ‘Not Attempted’ due to the disabling of the SIR event by the master for an SIR request, the application must poll for the SLV_EVENT_STATUS[SIR_EN] field to be set before reattempting the SIR request.