Interrupt Routing flow in GICv3

Hi all,

GIC is quite an interesting topic and interrupt controller can also be said as an most important module in an SoC that routes interrupts to the Processor.

We know that there different interrupt types in GICv3 among which SPI (Shared Peripheral Interrupt) is one.

Coming to the point that, can someone tell me briefly (if possible small example) how exactly the routing process takes place in GIC. To be specific, I will write my questions in point wise:

  1. When SPI generated from the source is signalled to the Distributor then, what will be the actions performed by the distributor in sequential manner. (I mean Distributor has many registers right so, on receiving SPI, is it going to check first group or priority or its processor routing).
  2. Please consider one SPI and explain me the complete process (Distributor/Re-distributor/CPUInterface) that it undergoes during its routing to the processor.
  3. If an SPI is signalled to the distributor then who is going to set the Target Processor to handle that SPI. Does this configuration happen dynamically based on INTID or does it happen during System bootup time.

To be a bit clear, if SPI is signalled to distributor, what is the first step distributor has to do, and later on what and all the steps that could take place in the distributor.

I have gone through GICv3. I understood what a distributor/re-distributor does. But, I am eager to know how it exactly performs all those operations in a step by step manner.

I am just a beginner please help me out.

Thanks,

Rakesh.