What is the maximum number of outstanding MSIs in the GIC-600 ITS?
Information in this article applies to:
GIC-600 Generic Interrupt Controller
What is the maximum number of outstanding MSIs in the GIC-600 ITS ?
The functionality of the Interrupt Translation Service (ITS) means that there is a dependency between writes to the GITS_TRANSLATER register and reads to memory.
Each write to the GITS_TRANSLATER register generates a Message Signaled Interrupt (MSI). How does the ITS slave interface send the write response BRESP? What is the maximum number of outstanding MSIs in the ITS?
The ITS ACE-Lite slave port sends the BRESP as soon as it can. The maximum number of outstanding MSIs depends on how you set the bypass switch configuration option:
If you do not use the bypass switch configuration option, the ITS can service up to four MSIs at the same time.
If those four slots are used, the ITS applies back-pressure on the slave port until the MSIs are translated and sent to the Distributor.
If you use the bypass switch configuration option and set the full_bypass_tacker to 1, the ITS adds a configurable number of extra slots. The configurable number of extra slots is up to 16.
These extra slots can send BRESP as soon as the ACE protocol allows it. However, processing these MSIs does not start until these MSIs get into the existing four slots.
When the slots are full, the ITS must use a master port to access memory before the ITS can accept more MSIs on the slave port.