Hard Processor System Technical Reference Manual: Agilex™ 5 SoCs

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

4.2.4.1. Types of Interrupts

GIC-600 supports the following types of interrupts:
  • Software Generated Interrupts (SGI)—SGIs are inter-processor interrupts, that is, interrupts generated from one core and sent to other cores. Each core in the system processes an SGI independently of the other cores. The priority of an SGI, and other settings, are also independent for each core. SGIs are generated by writing to system registers in the CPU interface of the core that generates the interrupt. SGI signals are edge. Up to 16 SGIs can be recorded for each target core, where each SGI has a different INTID in the range ID0-ID15.
  • Private Peripheral Interrupts (PPI)—PPIs are typically used for peripherals that are tightly coupled to a particular core. Interrupts that are connected to the PPI inputs associated with one core, are only sent to that core. Each core processes a PPI independently of other cores. The settings of a PPI are also independent for each core. Each PPI has an INTID that identifies its source. A PPI is unique to one core. However, the PPIs to other cores can have the same INTID. Up to 12 PPIs can be recorded for each target core, where each PPI has a different INTID in the range ID16-ID31. PPI signals are active-LOW level-sensitive by default. However, you can set a PPI signal to be either level-sensitive or edge-triggered using GICR_ICFGR1. The following table shows the PPI IDs.
    Table 78.  Private Peripheral Interrupts (PPI) IDs
    PPI ID Description
    22 Debug Communications Channel (DCC) interrupt
    23 Performance Monitoring Unit (PMU) counter overflow interrupt
    24 Cross Trigger Interface (CTI) interrupt
    25 Virtual maintenance interrupt
    26 Non-secure EL2 physical timer
    27 EL1 virtual timer
    28 Non-secure EL2 virtual timer
    29 Secure EL1 physical timer
    30 Non-secure EL1 physical timer
  • Shared Peripheral Interrupts (SPI)—GIC-600 in HPS supports 544 Shared Peripheral interrupts. The SPIs can be programmed to either target a particular core or to any core. SPIs can be either wired interrupts or can be generated by writing to a specific register inside the GIC-600 through the subordinate interface. The first SPI has an ID number of 32. You can configure whether each SPI is triggered on a rising edge or is active-HIGH level-sensitive SPIs that are typically used for peripherals that are not tightly coupled to a specific core.