GIC-600 ITS MSI Handling: Who Writes the INT Command in the Command Queue?

Hello, everyone!

I have a question regarding MSI handling in an environment where the GIC-600’s ITS is supported.
I understand that when an EventID is written to the GITS_TRANSLATER register by an external device, it triggers the ITS to return LPI IDs.
However, ITS then needs to issue a command to the Redistributor to set the corresponding bit in the LPI pending table for that ID.
This command (INT) is written to and executed via the command queue, correct? I have the following questions:

  1. I understand that the command queue is written by the OS on the PE. So how does the OS know to write the ITS command (INT)? Or is it not the case that the OS writes this command?

  2. If the answer to question 1 is that the command isn’t issued by the OS,
    does that mean the ITS is designed to automatically execute the INT command when a trigger occurs on the GITS_TRANSLATER register during its initialization?

Thank you

Parents
  • Thanks a lot!

    I have one more question.
    Is the translation operation of the ITS performed as part of the internal hardware operation of the GIC?
    During ITS initialization, the Device Table and Collection Table are allocated in memory, and infos are mapped.

    After the initialize, when ITS is received MSI and ITS transmittes LPI ID to the Redistributor,
    is this operation entirely handled by the hardware?

    Does the referencing the interrupt table occur without any software intervention?

Reply
  • Thanks a lot!

    I have one more question.
    Is the translation operation of the ITS performed as part of the internal hardware operation of the GIC?
    During ITS initialization, the Device Table and Collection Table are allocated in memory, and infos are mapped.

    After the initialize, when ITS is received MSI and ITS transmittes LPI ID to the Redistributor,
    is this operation entirely handled by the hardware?

    Does the referencing the interrupt table occur without any software intervention?

Children