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 Reply Children
No data