This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Interrupt signal Bypass in GICv2

Hi all,

ARM® Generic Interrupt Controller - Architecture version 2.0

In GICv2 (2.3.1 Interrupt signal bypass, and GICv2 bypass disable --- Page 2-27)

it is mentioned that CPU interface optionally includes Interrupt signal bypass. i have read that concept but i have few doubts regarding that are confusing me a little bit.

1. When we are using separate module for handling the Interrupts in a system, what is the necessary of interrupt signal bypass.?

2. In what scenario do we have to / does the signalling of the interrupt by the interface is disabled.?

3. what is the interrupt source of this Legacy Interrupt Signal..?

4. In what scenario does the GIC functionality gets disabled and the Legacy Interrupt signal is Signalled..?

5 .Does this Legacy interrupt Signal pass through distributor block.?

6. Does the distributor decide the Group0/Group1 type of that Legacy Interrupt signal..?

7. For Bypass Interrupt Signal how is the processor is going to acknowledge and where it is going to write the End of Interrupt Status..?

8. If legacy Interrupt signal is signalled to the processor and processor is processing that interrupt, in this mean time is there any chance that CPU Interface can be enabled..?

Questions what ever i have asked are as per my understanding, Please correct me if I am wrong.

Thanks in advance,

Rakesh.

  • 1/2) It's expected that most of the time the GIC will be used to managed interrupts.  However, there might times when you don't want to use the GIC. 

    For example, when the system first starts up.  Fully configuring the GIC might be more than what you want to do at an early stage of boot, but you still need some interrupts. Bypass gives system designers a way of driving the interrupt inputs of the cores, without needing the GIC to be set up.

    3) It could be anything, it's just an input signal after all.  It could be driven directly by a peripheral or from the output of some other (simpler?) interrupt controller.

    Assuming you were making use of bypass at all (remember - it's optional), what drives bypass comes from why you're using bypass in the first place.

    4) Something like system start-up, where the GIC hasn't yet been set up.

    5) Maybe/sort of.  The architecture doesn't dictate implementation.  Taking CoreLink GIC-400 as an example, the legacy interrupts are inputs to the GIC-400:

    CoreLink GIC-400 Generic Interrupt Controller Technical Reference Manual: A.3. Interrupt signals

    6) Not during by-pass.  More generally, when using by-pass things like group and priority are pretty meaningless.  They are how the GIC internally deals with interrupts.  The point of by-pass is that we're, well, by-passing it.

    7) That ends up being system specific.  The kind of situations where by-pass are used are when you'd also likely be running SoC/board specific firmware.  So it's not as bigger deal that how it works isn't standardized.

    8) Yes.  But given that software deals with interrupts, and software is also responsible for configuring the GIC, this is basically a software problem.